第10章程序设计语言和编码软件编码:软件编码是设计的继续,是将设计转化为计算机能够理解的形式。对源程序质量的要求:程序语法正确程序逻辑正确程序可读性好影响程序质量的因素:程序设计语言程序设计风格开发队伍的整体素质软件编码软件编码程序设计语言程序设计语言的分类:程序设计语言高级语言低级语言面向过程的语言新型程序设计语言(Java)汇编语言机器语言软件编码程序设计语言的特性:1、心理特性:影响程序员心理的语言性能。2、工程特性:3、技术特性:简洁性:指人们必须记住的语言成分的数量,既要简洁,又要易读易懂。传统性:习惯于已掌握的语种。软件编码程序设计语言的特性:1、心理特性:影响程序员心理的语言性能。2、工程特性:3、技术特性:可移植性:可方便地从一个计算机环境移植到另一个计算机环境。开发工具的可利用性:利用工具可有效地缩短开发时间。软件的可重用性:编程语言可提供可重用的软件成分,如模块程序可通过源代码的剪贴、继承等方式重用已有软件。软件编码程序设计语言的特性:1、心理特性:影响程序员心理的语言性能。2、工程特性:3、技术特性:将软件设计转化为程序代码时,转化的质量往往受语言特性的影响,应根据项目的特性选择相应语言。软件编码选择程序设计语言的标准要综合考虑以下各方面因素来决定:1)从程序员方面考虑应选择一种程序员熟悉的语言。2)从用户方面考虑如果所开发的系统的维护工作是由用户来完成的,应选择一种既有利于系统功能实现,又是用户所熟悉的程序设计语言。软件编码3)从软件的可移植性方面考虑应选择一种标准化程度高,并且程序的可移植性好的语言实现设计。4)从应用领域方面考虑不同的语言有不同的适用范围,适合的程序设计语言所提供的环境有利于程序员实现功能,在一定程度上简化编程,且有利于后期的测试和维护工作。软件编码程序设计风格体现在四个方面:源程序文档化数据说明方法语句结构输入/输出方法软件编码1、源程序文档化:1)符号名的命名符号名即标识符,包括模块名、变量名、常量名、标号名、子程序名及数据区名缓冲区名等。原则:名字应精练且有意义。软件编码2)程序的注释序言性注释:通常置于每个程序模块的开头部分,给出程序的整体说明,引导读者正确理解程序。有些软件开发部门对序言性注释的内容作了严格的规定,要求程序员逐项写出相关内容。功能性注释:嵌在源程序中,用于描述其后的程序段或语句作用等。有关设计的说明也可以作为注释嵌入源程序内。软件编码书写功能性注释的原则:用于描述一段程序而不是每一条语句使用缩进和空行,使程序和注释易于区分注释要正确软件编码3)层次结构较好的层次结构使语句间的关系清晰,便于对程序的阅读和理解。为了达到较好的视觉组织效果,应灵活使用空格、空行和缩进。软件编码2、数据说明方法编写程序时应注意数据说明的风格,使得程序中的数据易于理解和维护。基本原则:1)数据说明的次序应规范化(从简单到复杂),使得数据属性容易查找,并且有利于测试、排错和维护;2)当多个变量使用一个说明语句时,变量名表应按字母排序;3)对于复杂的数据结构,应当使用注释说明程序实现时数据结构的固有特点。软件编码3、语句结构语句构造应力求简单、直接,易于理解,不要为片面追求效率而使程序复杂化。基本原则:(1)一行内只写一条语句。(2)程序的编写首先考虑清晰性,不要刻意追求技巧性。(3)合理利用空行、空格隔离符体现语句结构。(4)嵌套层次不要过深。软件编码4、输入和输出由于输入输出信息和用户紧密相关,输入和输出的方法和格式应当尽量方便用户的使用,避免因设计不当给用户带来麻烦,使用户因输入和输出的风格不好而拒绝接受整个系统。设计时需注意以下几点:(1)输入简单,并有简单明了的提示;(2)具有完备的出错检查和出错恢复功能,不能出现让用户摸不着头脑的问题,一切的问题都应由软件解决;(3)输入/输出格式的保持一致性。软件编码实例/*标题:print_queue()目的:按照作业申请先后顺序输出(在此以简单的输出代替作业处理)。主要算法:队列头开始,一次输出数据元素。接口:voidprint_queue(),函数参数,返回值类型空,调用creat_queue()函数,获取队头指针,依次输出。作者:fes复审者:fes复审日期:10/21/2007*/voidprint_queue()/*按队列元素先后顺序输出*/{noid*p;p=creat_queue();/*p指向队列头*/while(p!=NULL){printf(%d,p-data);/*输出当前结点数据值*/p=p-next;/*指向下一个指针*/}}软件编码实例/*主函数,依次调用creat_queue()和print_queue()函数,完成排队、输出功能*/voidmain()/*主程序*/{creat_queue();printf(打印作业的排队情况:);print_queue()}