hoc安全小组吧 关注:7贴子:115
  • 4回复贴,共1

模块化思想

只看楼主收藏回复

1L给软件工程师
2011年8月26日晚小组活动


IP属地:中国香港1楼2011-09-15 16:43回复

    目的:锻炼每位成员的模块化的思想,为以后小组程序开发创造基础意识。让每个成员体会模块化的思想。
    概念:模块化是将一个较为复杂的程序开发(事件),分为主事件和次要事件,再将每个事件分工给不同部门完成,从而达到化繁为简,并且能提高程序开发的效率。
    每个队员负责一部分工作。最后将每部分拼接在一起就是一个完整的工程。如果有其中一个部分没有合格,也将影响到整个工程的不合格。
    因为考虑到目前各个成员的知识水平暂无法达到以程序代码为语言表达和练习这个活动,故采用大家都能接受和理解的方式来让大家体会。


    IP属地:中国香港3楼2011-09-15 16:50
    回复

      二.来一次实战(伪代码实现程序写作)。
      通过以上的试验讲解,相信大家已经对模块化思想有所了解,下面,我们以伪代码的形式来一次模块化的演练。
      什么是伪代码?伪代码就是用接近于自然语言(或者就是自然语言)来描述一个程序的算法,从而达到任何语言的程序师都能看懂一个程序的效果。
      比如C语言中的
      if (x>y) printf("%d",x);
      用伪代码表示就是:
      if x>y 输出x
      这里为了照顾那些还没有开始学习程序的朋友,我们将伪代码再变一下,让它更接近自然语言,于是以上代码用我们定义的伪代码表示就是:
      如果x>y,则输出x的值
      好了,介绍完伪代码,为了方便,下面来介绍用我们刚刚自定义的伪代码来写程序模块的格式。
      函数名(参数)
      {
      操作语句(本讲可以就用自然语言描述即可)
      }
      如果我们要写一个比较x和y大小的函数,就可以是这样
      比较大小(x,y)(注:因为x,y的值由用户决定输入,所以将x,y以参数的形式输入)
      {
      如果x>y,则输出x,否则输出y
      }
      如果要调用这个函数用来比较大小,就可以用:比较大小(1,2)(比较1和2 的大小)
      好了,基本介绍完毕,现在我们来简单体验下以团队的形式用模块化思想写程序吧!
      需要:5名队员
      背景:现在你们5名队员已经是一个不错的开发团队了,你们开发了一款软件,为了从中获取利润,你们要求每一位该软件的使用者都需要先购买软件的使用权,购买之后,你们将给他一个注册号,对方使用注册号便能正常使用软件了。注册号常见的格式为:aaaa-bbbb-cccc-dddd(a,b,c,d这里均为数字)
      要求:现在有一位以1479为初始申请码的用户希望购买你们团队的这款软件的使用权,你们团队的策划已经将团队将要开发的工程项目做好了分工,5名队员,四位负责写生成注册号的模块,还有一位负责写整个工程的整体代码(如输出结果,将其他四位队员写成的模块结合在一起,调用其他模块实现功能,等等)。
      规定写生成注册号模块的四位队员的的模块函数名分别是注册码1(通过用户提供的初始申请码的第1位,通过自己的计算,得到一个四位数,作为aaaa的输出段),注册码2(通过用户提供的初始申请码的第2位,通过自己的计算,得到一个四位数,作为bbbb的输出段,后面一次类推),注册码3(输出cccc段),注册码4(输出ddddd段)。格式请参照上面比较大小函数模块的书写。
      负责写整个工程的整体代码的队员,函数名自定,通过调用前四位队员写的模块,使输出结果必须是一个完整的注册号。


      IP属地:中国香港5楼2011-09-15 16:51
      回复

        下面是一个例子:
        队员1的模块:
        注册码1(a)
        {
        输出a*1000+(a+1)*100+(a+2)*10+(a+3)
        }
        注册码2(b)
        {
        如果1000*sin(b)的结果是个4位数,则输出1000*sin(b)(这里都看做为整数)
        否则在得到1000*sin(b)的结果前填0,得到一个四位数然后输出
        }
        注册码3(c)
        {
        输出的四位数的第一位是c,第二位是10-c,然后第一位*第二位,如果结果是两位数,则作为第三位和第四位数字,然后输出
        否则,第三位数是0,第四位数是第一位*第二位
        }
        注册码4(d)
        {
        如果注册码1(d)+注册码2(d)+注册码3(d)的结果超出4位数,则取该数的前4位,否则直接输出该数
        }
        整个工程的主函数(key)注:key是用户提供的初始申请码
        {
        a=key的第一位数
        b=key的第二位数
        c=key的第三位数
        d=key的第四位数
        输出注册码1(a)-注册码2(b)-注册码3(c)-注册码4(d)
        }
        好了,基本的模块化理解就到这里,希望我的努力能给大家带来收获!


        IP属地:中国香港6楼2011-09-15 16:51
        回复


          IP属地:福建7楼2011-09-15 16:53
          回复