软件工程第5章程序编码.pptxVIP

  • 7
  • 0
  • 约9.02千字
  • 约 95页
  • 2021-09-27 发布于河北
  • 举报
;做为软件工程过程的一个阶段,程序编码是设计的继续。 程序设计语言的特性和程序设计风格会深刻地影响软件的质量和可维护性。 为了保证程序编码的质量,程序员必须深刻地理解、熟练地掌握并正确地运用程序设计语言的特性。此外,还要求源程序具有良好的结构性和良好的程序设计风格。;源程序的质量标准;结构化程序设计; 结构化程序设计的主要原则;语言中没有的控制结构,可用一段等价的程序段模拟,但要求该程序段在整个系统中前后一致。 严格控制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 该程序出现了多条GOTO语句,程序可读性较差。; 程序2 if ( A B ) and ( A C ) then write ( A ) else if ( A ? B ) and ( B C ) then write ( B ) else write ( C ) endif endif 该程序结构清晰、可读性好。;例2 用二分法求方程 f (x)=0 在区间[a..b]中的根的程序;程序1 f0 = f (a); f1 = f (b); if ( f0 * f1 = 0 ) { x0 = a; x1 = b; for ( i = 1;i = n;i++ ){ xm = ( x0+x1 ) / 2; fm = f (xm); if ( abs (fm) eps || abs (x1-x0) eps) goto finish; if ( f0 * fm 0 ) { x0 = xm; f0 = fm;} else x1 = xm; } ; finish:printf (“\n The root of this equation is %d\n”,xm ); } 该程序是单入口,两出口。正常出口是循环达到 n 次,非正常出口是循环中途控制转出到标号 finish 所在位置。不满足结构化要求!; 程序2 f0 = f (a); f1 = f (b); if ( f0 * f1 = 0 ) { x0 = a;x1 = b; for ( i = 1;i = n;i++ ) { //正常出口 xm = ( x0+x1) / 2;fm = f (xm); if (abs( fm )<eps || abs( x1-x0 )<eps) break; //非正常出口 if ( f0 * fm>0) { x0 = xm;f0 = fm;} else x1 = xm; } } 该程序仍然存在二个出口,不是结构化程序。; 程序3 f0 = f (a);f1 = f (b); 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( x1-x0 )<eps) finished = 1; if (finished == 0); if ( f0 * fm>0 ) { x0 = xm;f0 = fm;} else x1 = xm ; } } 引入布尔变量 finished,改 for 型循环为 while 型,将单入口多出口结构改为单入口单出口结构。是结构化程序!;

文档评论(0)

1亿VIP精品文档

相关文档