版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1/19,软件编码,2/19,内容,编码要求 程序设计语言的发展和选择 编码风格 软件效率 编程规范举例,3/19,一.编码要求,语法正确 源程序结构良好:可读性建立在良好的程序结构和编写风格上。 便于测试和排除故障 易于扩充,4/19,结构化程序设计方法,在编码中要求坚持以下原则: (1)使用语言中的顺序、选择、循环等有限的基本控制结构来表示程序逻辑。 (2)选用的控制结构只准许一个入口和一个出口。 (3)由程序语句组成容易识别的块,每块只有一个入口和一个出口。 (4)复杂结构应该用基本控制结构进行组合嵌套来实现。 (5)严格控制GOTO语句,仅在下列情形才可使用:用一个非结构化的程序设计语
2、言实现一个结构化的构造;在某种可以改善而不是损害程序可读性的情况下。 要求一定的编程格式 ,如程序行以锯齿排列,每个模块长度限制在一到两页中,且每行只有一条语句,程序中要加上必要的注释等。,然而并非所有的程序语言都完全适合于结构化程序设计。,5/19,二.程序设计语言的发展和选择,Fortran、Basic、COBOl等,历史悠久、应用广泛。,PASCAL、C、Ada等,有结构化控制结构,面向过程。,C、JAVA等面向对象。,把汇编语言翻译成机器语言的程序称为汇编程序,翻译的过程称为汇编。 编译方式,代码事先通过编译器生成机器语言代码,再由操作系统调度执行,如Delphi语言、C+语言等。 解
3、释方式,该方式并不事先生成目标程序,而是边解释边执行,如BASIC语言、脚本语言等。,6/19,程序设计语言的选择,适宜的程序语言不仅能减少编码的困难,还可以得到更容易阅读和维护的程序。 理论标准:具有理想的模块化机制、易于阅读和使用的控制结构及数据结构 ;具有完善、独立的编译机制 。 实用标准 :系统用户的要求 、工程的规模 、软件的运行环境 、可以得到的软件开发工具 、软件开发人员的知识 、软件的性能要求 、软件的应用领域 。 应该对各种要求和标准进行权衡 ,选择一种最适合的。,常见的程序设计语言(自学),7/19,采用有实际意义的符号名 有实际意义的名字能帮助理解和记忆。 例如 d =
4、s * t 与 distance = speed * time。 当然,符号的名字也不要过长,过长显然会增加打字量,一般以4-12个字符为宜。最好事先统一约定好。,三.编码风格,不要用过于相似的符号名 过于相似的名字容易引起误解或打字错误。如ell、emm、enn、emmn、ennn 等放在一 起很容易混淆;又如 positionx和positiony是仅仅末尾不相同的长标识符,如果编译程序只识别前八个字符就会出现错误,所以是不安全的。,1、标识符应按意取名,8/19,符号名中一般不要带有数字 字母o、l、z、s和数字0、1、2、5极易混淆,如no5s难与n0ss区分。,避免用关键字,同一符号
5、名不要有多种含义 如果一个符号在程序的不同段中表示不同的含义,则阅读时易于误解。,尽量照顾数学习惯 已知量用a、b、c,未知量用x、y、z等,如果它们对换一下就感到别扭和造成不必要的难以理解了。如 和,9/19,2.程序应加注释,序言性注释(置于模块的起始部分) 说明每个模块的用途、功能。说明模块的接口即调用形式、参数描述及从属模块的清单。 数据描述:指重要数据的名称、用途、限制、约束及其他信息。 开发历史:指设计者、审阅者姓名及日期,修改说明及日期。,10/19,功能性注释(嵌于源程序内部) 说明程序段,而不是每一行程序都要加注释。 说明程序段或语句的功能以及数据的状态,而不是程序的翻译。
6、使用空行或缩进或括号,以便很容易区分注释和程序。 修改程序也应修改注释。,11/19,序言性注释举例,/* Title: Function average Purpose: To calculate the average value of an array Sample Call: aver=average(score, n) Inputs: scorean array of float data n the number of the float data Return: the average value of score Functions Referenced: no Author:
7、 M.WRIGHT 10/30/95 Auditor: D.Carrie 11/2/95 */,例如,对求一组实数的平均值的C函数的序言性注释的例子。,float average(score, n) int n; float score; int i; float aver,sum = score0; for (i=1; in; i+) sum = sum + scorei; aver = sum/n; return(aver); ,12/19,3.数据说明,数据说明顺序应规范,使数据的属性更易于查找。 例如按常量说明、类型说明、全程量说明和局部量说明顺序。 一个语句说明多个变量时,各变量名按
8、字典序排列。 对于复杂的数据结构,要加注释,说明在程序实现时的特点。,13/19,4.语句构造,简单直接,不能为了追求效率而使代码复杂化。 为了便于阅读和理解,不要一行多个语句。 不同层次的语句采用缩进形式,使程序的逻辑结构和功能特征更加清晰。 要避免复杂的判定条件,避免多重的循环嵌套。 表达式中使用括号以提高运算次序的清晰度。 尽量使用公共过程或子程序去代替重复的功能代码段。 避免使用临时变量而使可读性下降。,14/19,5.输入和输出,输入操作步骤和输入格式尽量简单。 应检查输入数据的合法性、有效性,报告必要的输入状态信息及错误信息。 输入一批数据时,使用数据或文件结束标志,而不要用计数来
9、控制。 交互式输入时,提供可用的选择和边界值。 当程序设计语言有严格的格式要求时,应保持输入格式的一致性。 输出数据表格化、图形化。,15/19,四、软件效率,效率指处理机时间和存储空间的使用。 效率是一个性能要求,目标在需求分析给出。,提高程序效率的根本途径在于选择良好的设计方法、良好的数据结构与算法,而不是靠编程时对程序语句做调整。(效率是设计出来的)但编码风格也能对软件效率产生影响。,追求效率建立在不损害程序可读性或可靠性基础之上,要先使程序正确,再提高程序效率;先使程序清晰,再提高程序效率。,16/19,(1)写程序前先简化算术和逻辑的表达式。 (2)仔细研究嵌套的循环,以确定是否有语
10、句可以从内层往外移。 (3)尽量避免使用多维数组、指针和复杂的表。 (4)尽可能多地采用执行时间短的算术运算。 (5)尽量使同一表达式中的数据类型保持统一,尽量避免不同类型数据的比较运算,因为这样有可能导致程序运行出错。 (6)尽量使用有良好特性的编译程序,以自动生成高效目标代码。 (7)对所有输入/输出安排适当的缓冲区,以减少用于通信的额外开销。 (8)对变动频繁的数据最好采用动态存储。 (9)对二级存储器(如磁盘)应选用最简单的访问方法,并以信息组为单位进行访问。 (10)如果“超高效的”输入/输出很难被人理解,那么就不应采用这种方法。目的是提高人与计算机间通信的效率。,17/19,总之,要善于积累编程经验,培养和学习良好的编程风格,使编出的程序清晰易懂,易于测试和维护,从而提高软件的质量。,18/19,技巧的应用问题,DO 14 I = 1, N DO 14 J = 1, N 14 V(I, J) = (I/J) * (J/I),由于I和J是整型变量,当IJ时,(J/I)=0,仅当I=J时,(I/J)*(J/I)=1,所以这个程序使矩阵V成为一个单位矩阵。但读者却花了一番论证才终于搞清楚这段程序是干什么用的。若改写成,DO 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 麻纺生产设备维护保养细则
- DB11-T 2256-2024 城市轨道交通钢轨踏面维修技术规范
- 机器学习 课件 第8章 概率有向图模型
- 船舶代理试题及答案
- 某水泥厂节能技术规范
- 麻纺生产安全管理培训制度
- 某家具厂员工培训办法
- 化工厂危废处理
- 资金代管服务协议账户托管合同范本
- 2026年河南省中考真题历史试题(学生卷)
- 临床大面积下肢皮肤脱套伤伴全身多处骨折合并失血性休克患者护理
- 跨越电力线路施工规范详细解析
- 保险消保工作汇报
- 中国农业大学《电子电路基础》2023-2024学年第一学期期末试卷
- 医院科研诚信培训课件
- DB5107∕T 059-2018 莴笋周年绿色高效生产技术规范
- 企事业单位住房指标转让合同范本
- DB11-T 1014-2021 液氨使用与储存安全技术规范
- 知识点2、化学式和化合价-2022年浙江省中考科学一轮复习化学部分
- T 3034-2022化工过程安全管理导则知识培训
- DB13-T 5871-2023 矿山地质环境恢复治理工程资料管理规程
评论
0/150
提交评论