软件工程-编码实现.
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
名字
函数采用动作性的动词,后面可以跟着名词。 now=date.getTime(); putchar(‘/n’);
表达式和语句
用缩行显示程序的结构 for(n=0;n<100;field[n++]=‘\0’); *i=‘\0’; return(’\n’); 改为: for(n=0;n<100;n++) field[n]=‘\0’; *i=‘\0’; return(’\n’);
有限制的使用GOTO-1
用GOTO 语句实现提前退出 循环; While c1 do begin … if c2 then goto 20; … if c3 then goto 30; … end; 20: … Goto 40; 30: … 40: exit1:=false; exit2:=false; While(c1) and (not exit1) and (not exit2) do Begin … if c2 then exit1:=true; … if c3 then exit2:=true; … End If(exit1) then goto 20; If(exit2) then goto 30; 20:… Goto 40; 30:…. 40:
leap_year=((year%4==0)&&(y%100! =0))||(year%400==0);
表达式和语句
分解复杂的表达式 *x+=(*xp=(2*k<(n-m)?c[k+1]:d[k-])); 分解为: if(2*k<n-m) *xp=c[k+1]; else *xp=d[k--]; *x+=*xp;
有限制的使用GOTO-2
GOTO 语句用于出错处理 boolean push(item,index,stack,errflag) { int errflag,index; float item,stack[100]; if(index>=100) goto 10; errflag=0; index=index+1; stack[index]=item; return(errflag); 10: errflag=1; return(errflag); }
表达式和语句
用加括号的方式排除二义性。 特别是C语言,关系运算符比逻辑运算符优 先级高。 if(x&MASK==BITS) 可能理解为: if(x&(MASK==BITS)) 应为: if((x&MASK)==BITS)
表达式和语句
Leap_year=y%4==0&&y%100!=0||y %400==0 比较容易理解的应为:
名字
保持一致性 class UserQueue{ int noOfItemsInQ,frontOfT heQueue, queueCapacity; public: int noOfUserInQueue(){…} } (1)同一个词queue分别用了 Q、Queue、queue (2) 在类型UserQueue访问 queue.queueCapacity多余 可改为: class UserQueue{ int nitems, front, capacity; public: int nusers(){…} } queue.capacity++; n=queue.nusers();
一致性和习惯用法
使用一致的缩排和加括号风 格; if(month==FEB){ int day; nday=28; if(year%4==0) nday=29; if(day>nday) legal=FALSE; } 最好采用习惯用法; for(i=0;i<n;i++) array[i]=1.0;
编码实现
编码风格 编码语言的选择
编码风格
评判项目 结果名次 编码要求
清晰性 程序 1-2 输出 2
效率 内存数 3 语句数 3
开发时间
程序可读 性最佳
4
输出可读 性最佳
占内存最 少
1-2
4
1
4
5
1
5
2
2-3
2-3
语句数最 少
开发时间 最短
5
3
3
5
2
4
1
4
2-3
1
源自文库码风格
使用标准的控制结构 有限制的使用GOTO语句 实现源程序的文档化 满足运行工程学的输入输出风格
名字
名字-非形式的、简练的、 容易记忆的。 一个变量的作用于越大, 名字所携带的信息越多。 全局变量-使用具有说明性 的名字;并加以注释。 局部变量-用短名字; Npending=0;//current length of input quene 全局变量采用大写开头的变量 名。 如:Globle 常量用大写字母拼写。 如:CONSTANTS 变量的类型也应体现: 如:strTo,strFrom 字符串
表达式和语句
使用表达式的自然形式。 避免含有否定运算的条件表达式。 可以改变关系运算方向,变成肯定的。 如
if(!block_id<acblks)||!(block_id>=un blocks)) 改为 if((block_id>=actblks)||(block_id<un blocks))
使用标准的控制结构
单入口、单出口标准结构 if c then s; If c then s1 else s2; Case I of a: s1; b: s2; … n: sn; endcase While c do s; for i:=m to n do s; Repeat s until c;
有限制的使用GOTO-3
使用GOTO语句减少 重复程序段。 if p then a;b; else b; endif while q loop a;b; endloop if p then L1: a; … endif b; If q then goto l1;
实现源程序的文档化
有意义的变量名 适当的注释 标准的书写格式
使用字符形式的常量,不 要用整数。 if(c>=65&&c<=90) ….. 应为: if(c>=‘A’&&c<=‘Z’) …. 利用语言去计算大小。 如: