软件工程第五章 编码编码风格和程序复杂性.pptVIP

软件工程第五章 编码编码风格和程序复杂性.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程第五章编码编码风格和程序复杂性.ppt事业单位模拟考试试题

软件工程第5讲 编码 、编码风格和程序复杂性 第5讲 编码 、编码风格和程序复杂性5.1 编码的目的和任务5.2 编码风格5.3 程序复杂性度量 5.1 编码的目的n 目的¨ 把模块的过程性描述翻译为用选定的程序设计语言书写的源程序(源代码)。n 依据¨ 编码的主要依据是概要设计和详细设计说明文档。n 任务? 理解概要设计和详细设计说明书;? 遵循编码原则和风格进行翻译,形成源代码。编码模块的过程性描述源程序(不可执行的)(可执行的) n 编码中的问题? 编码中产生的问题大多数是由于设计的错误或缺陷引起的,程序的质量首先取决于设计的质量。但编码仍然对程序的可靠性、可读性、可测试性、可维护性、执行效率产生深远的影响。? 编码产生的源程序应该是正确、可靠,简明清晰,运行效率高。但是,保持程序的清晰就可能会降低程序的效率。? 编码与选择的程序设计语言/工具有密切的关系。 5.2 编码风 格? 编码风格 ( 程序设计风格 ProStyle)? 程序员习惯使用的编码方式。? 好的编码风格可以使编写的程序更容易阅读、更容易修改。? 早期的编码风格强调效率第一、占用内存少、包含的功能多。? 现在的编码风格则强调“清晰第一,效率第二”。? 现在的编码风格主要以可理解性、可修改性、可测试性为主要目标。 n 主要的编码风格? 有意义的命名? 清晰的表达式? 使用标准的控制结构? 限制使用GOTO语句? 清晰与效率? 实现源程序的文档化? 输入/输出 (1)有意义的命名? 一个名字用于标识这个对象时,应该带着说明其用途的一些信息。它应该是非形式的、简练的、容易记忆的,如果可能的话,最好是能够拼读的。? 全局变量/局部变量? 函数/过程(可采用名词或动宾结构)? 常量? 文件名/文件夹 ? 例如在C++中类的成员有如? 例如C语言中的名字命名下定义:? #define MAXLENTH 80? #define STEP 10class CTestView? char *strcpy(char*str1,char *str2){前缀“m_ ”表示是成员变量,用“g_”表示全局变量。? int search(char s[],charc)private:int m_iCounter;public:? voidpreorder(treenode*root)“i”表示整数数据类型void GetCounter() {returniCounter; }? 文件名如,studentlist}动宾结构 (2)清晰的表达式#include stdio.h#include math.hvoid main()? 清晰、简单地表达意图{float a,b,c,x,y,z,s,area;scanf(%f,%f,%f,a,b,c);x=a+b;y=a+c;z=b+c;if(xc yb za){ s=(a+b+c)/2;? 例,用C语言编程计算三角形的面积 :根据数学知识,若三直边a、b、c构成三角形,则必须满足条件:任意两边的之和大于第三边。area=sqrt(s*(s-a)*(s-b)*(s-c));printf(%f\n,area);}? 可以变为#include stdio.h#include math.hvoid main(){float a,b,c,s,area;scanf(%f,%f,%f,a,b,c);if(a+bc a+cb b+ca){ s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(%f\n,area);} (3)使用标准的控制结构? 遵循单入口、单出口原则。? 采用结构化程序设计所允许的基本控制结构。?if c then s;?if c then s1else s2;?While (c) do{ s};?switch(i){case s1:……?Do{ s}while (c);case s2:}?for(i=n;im; i++){s} ?例 把非结构化程序改为结构化程序。非结构化:While ( p ) do结构化:flag=true;While ( p and flag ) do{{g;g;if( not q )then flag=false;if(not q)then goto l;}}……l:……开始?问题思考:falsep?通过这个例子,同学们是否可以把二重循环或三重循环的这类结构转换为结构化的?gqfalse结束 ? 提倡从深层次循环中退出(4)限制使用GOTO语句while c1 do{s11;? 不允许转上,但可以转下while c2 do{s21;while c3 do{s31;if c4 goto label;s32;}s22;}s12;}label:……问题思考:这类结构如何

文档评论(0)

天星 + 关注
官方认证
文档贡献者

人人为我,我为人人。

版权声明书
用户编号:5342242001000034
认证主体四川龙斌文化科技有限公司
IP属地四川
统一社会信用代码/组织机构代码
91510100MA6ADW1H0N

1亿VIP精品文档

相关文档