软件工程编码.ppt
《软件工程编码.ppt》由会员分享,可在线阅读,更多相关《软件工程编码.ppt(71页珍藏版)》请在课桌文档上搜索。
1、结构化程序设计 程序设计风格 程序效率,程序编码,程序编码是设计的继续。程序员必须深刻理解、熟练掌握并正确地运用程序设计语言的特性。源程序具有良好的结构性和良好的程序设计风格。,结构化程序设计,在编写程序时,强调使用几种基本控制结构,通过组合嵌套,形成程序的控制结构。尽可能避免使用GOTO语句。在程序设计过程中,尽量采用自顶向下和逐步细化的原则,由粗到细,一步步展开。,结构化程序设计的主要原则,使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。选用的控制结构只准许有一个入口和一个出口。程序语句组成容易识别的块,每块只有一个入口和一个出口。复杂结构应该用基本控制结构进行组合嵌套来实现
2、。,严格控制GOTO语句,仅在下列情形才可使用:用一个非结构化的程序设计语言去实现一个结构化的构造。若不使用GOTO语句就会使程序功能模糊。在某种可以改善而不是损害程序可读性的情况下。,例1 打印A,B,C三数中最小者程序,程序1 if(A B)goto 120;if(B C)goto 110;100 write(C);goto 140;110 write(B);goto 140;120 if(A C)goto 130;goto 100;130 write(A);140 end,程序2 if(A B)and(A C)then write(A)else if(A B)and(B C)then w
3、rite(B)else write(C)endif endif,例2 用二分法求方程 f(x)0 在区间a.b中的根的程序,假设在闭区间a.b上函数 f(x)有唯一的一个零点,f0=f(a);f1=f(b);/程序1 if(f0*f1 0)x0=xm;f0=fm;else x1=xm;,finish:printf(“n The root of this equation is%dn”,xm);单入口,两出口正常出口是循环达到 n 次,非正常出口是循环中途控制转出到标号 finish 所在位置可读性好,f0=f(a);f1=f(b);/程序2 if(f0*f1=0)x0=a;x1=b;for(i
4、=1;i=n;i+)xm=(x0 x1)/2;fm=f(xm);if(abs(fm)eps|abs(x1x0)eps)break;if(f0*fm0)x0=xm;f0=fm;else x1=xm;,f0=f(a);f1=f(b);/程序3 if(f0*f1=0)x0=a;x1=b;i=1;finished=0;while(i=n&finished=0)xm=(x0 x1)2;fm=f(xm);if(abs(fm)eps|abs(x1x0)eps)finished=1;if(finished=0),if(f0*fm0)x0=xm;f0=fm;else x1=xm;引入布尔变量 finished,
5、改 for 型循环为 while 型,将单入口多出口结构改为单入口单出口结构。,自顶向下,逐步求精,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而翻译成一系列用某种程序设计语言写成的程序。,例,用筛选法求100以内的素数,筛选法就是从2到100中去掉2,3,9,10的倍数,剩下的就是100以内的素数。,main()/程序框架 建立2到100的数组A,其中Aii;-1 建立2到10的素数表 B,其中存放2 到10以内的素数;-2 若Aii是B 中任一数的倍数,则 剔除Ai;-3 输出A 中所有没有被剔除的数;-4,main()/*建立2到100的数组A,其中Aii*/for(i=2;i=
6、100;i+)Ai=i;/*建立2到10的素数表B,其中存放2到 10以内的素数*/B1=2;B2=3;B3=5;B4=7;/*若Aii是B 中任一数的倍数,则剔 除Ai*/for(j=1;j=4;j+)检查A 所有的数能否被Bj整除并将 能被整除的数从A 中剔除;-3.1,/*输出A 中所有没有被剔除的数*/for(i=2;i=100;i+)若Ai没有被剔除,则输出之-4.1对框架中的局部再做细化,得到整个程序。,main()/*建立2到100的数组A,其中Aii*/for(i=2;i=100;i+)Ai=i;/*建立2到10的素数表B,其中存放2到 10以内的素数*/B1=2;B2=3;B
7、3=5;B4=7;/*若Aii是B 中任一数的倍数,则剔除 Ai*/for(j=1;j=4;j+)/*检查A 所有的数能否被Bj整除并将能 被整除的数从A 中剔除*/,for(i=2;i=100;i+)if(AiBj*Bj=Ai)Ai=0;/*输出A 中所有没有被剔除的数*/for(i=2;i=100;i+)/*若Ai没有被剔除,则输出之*/if(Ai!=0)printf(“A%d%dn”,I,Ai);,自顶向下,逐步求精方法的优点,符合人们解决复杂问题的普遍规律。程序具有清晰的层次结构,程序容易阅读和理解,有利于编码、测试和集成每一步工作仅在上层节点的基础上做不多的设计扩展,便于检查有利于设
8、计的分工和组织工作。,程序设计风格,应该使程序具有良好的风格。源程序文档化 数据说明 语句结构 输入输出方法,源程序文档化,标识符的命名 安排注释 程序的视觉组织,符号名的命名,符号名即标识符,包括模块名、变量名、常量名、标号名、子程序名、数据区名以及缓冲区名等。这些名字应能反映它所代表的实际东西,应有一定实际意义。,名字不是越长越好,应当选择精炼的意义明确的名字。必要时可使用缩写名字,但这时要注意缩写规则要一致,并且要给每一个名字加注释。NEW.BALANCE.ACCOUNTS.PAYABLE NBALAP N,程序的注释,夹在程序中的注释是程序员与日后的程序读者之间通信的重要手段。注释决不
9、是可有可无的。一些正规的程序文本中,注释行的数量占到整个源程序的13到12,甚至更多。注释分为序言性注释和功能性注释。,序言性注释,它应当给出程序的整体说明,对于理解程序本身具有引导作用。有关项目包括:程序标题;,有关本模块功能和目的的说明;主要算法;接口说明:包括调用形式,参数描述,子程序清单;有关数据描述:重要的变量及其用途,约束或限制条件,以及其它有关信息;模块位置:在哪一个源文件中,或隶属于哪一个软件包;开发简历:,功能性注释,功能性注释嵌在源程序体中,用以描述其后的语句或程序段是在做什么工作例如,/*ADD AMOUNT TO TOTAL*/TOTAL=AMOUNTTOTAL不好。,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 编码

链接地址:https://www.desk33.com/p-235746.html