《信息系统分析与设计》课件2第5章 (2).ppt

上传人(卖家):momomo 文档编号:7862445 上传时间:2024-08-28 格式:PPT 页数:80 大小:326KB
下载 相关 举报
《信息系统分析与设计》课件2第5章 (2).ppt_第1页
第1页 / 共80页
《信息系统分析与设计》课件2第5章 (2).ppt_第2页
第2页 / 共80页
《信息系统分析与设计》课件2第5章 (2).ppt_第3页
第3页 / 共80页
《信息系统分析与设计》课件2第5章 (2).ppt_第4页
第4页 / 共80页
《信息系统分析与设计》课件2第5章 (2).ppt_第5页
第5页 / 共80页
点击查看更多>>
资源描述

1、第5章程序设计第第5章程章程 序序 设设 计计5.1开发工具的选择开发工具的选择 5.2程序设计风格程序设计风格 实验四实验四习题习题 第5章程序设计5.1开发工具的选择开发工具的选择5.1.1常用开发工具简介常用开发工具简介目前市场上可供选择的开发工具很多,不同的开发工具有各自的特点,且适合开发不同的应用系统,在使用时应根据需要选择。下面简单介绍一些常见的软件开发工具。第5章程序设计1.高级程序设计语言高级程序设计语言常用的程序设计语言有汇编语言和高级语言。汇编语言面向特定的计算机,可移植性差,与机器指令一一对应,程序编写工作量很大,十分繁琐。但是汇编语言编写的程序一般效率较高,而且可以直接

2、对计算机底层设备进行操作,在一些对效率要求较高或工业控制的开发项目中经常会用到,而管理信息系统中一般较少使用。第5章程序设计高级语言在20世纪60年代投入使用,是使用最广泛的程序设计语言,不同的高级语言适用的领域也不尽相同。例如,早期的高级语言FORTRAN主要用于科学计算;有些高级语言为商业数据处理而设计,例如COBOL语言。第5章程序设计随着面向对象技术的发展,传统的面向过程的高级语言大多引入了面向对象的语言成分,如C发展成为C+语言、Pascal发展为Object Pascal(Borland公司的Delphi开发环境使用该语言),同时又产生了一些新的完全的面向对象的程序设计语言,如Sm

3、allTalk、Java等。面向对象的程序设计语言是一类很有潜力的开发工具,支持面向对象的程序设计思想。第5章程序设计高级语言与汇编语言不同,它不依赖于特定的计算机,使用高级语言编写的程序可以在不同类型的计算机上使用,只要这种类型的计算机有该语言的编译程序,因此高级语言具有较好的可移植性。使用高级语言编写的程序,一条语句往往对应多条机器指令,因此编程工作量大为减少。高级语言形式上更接近自然语言,与汇编语言相比,程序的可读性和可理解性也更好。第5章程序设计传统的高级程序设计语言虽然功能强大,但其数据库操作能力很弱,直接使用高级语言实现数据库管理功能工作量很大。开发管理信息系统可以使用一些第三方数

4、据库软件包。不过,目前大部分高级语言编译器供应商提供的已不是单一的编译器,而是完整的开发环境,例如微软公司的Visual C+、Borland公司的Delphi等,它们已具备强大的数据库连接功能,且已成为信息系统常用的开发工具。第5章程序设计2.第四代语言第四代语言高级语言通常被称为第三代程序设计语言,是一种过程化的语言。编写程序时需要详细描述问题求解的过程,告诉计算机每一步应该怎么做。为了把程序员从繁重的编码中解放出来,出现了第四代程序设计语言4GL。4GL一般是非过程化的,具有以下一些特征:第5章程序设计(1)具有强大的数据管理能力,能对数据库进行有效的存取、查询和其他相关操作。(2)能提

5、供一组高效的、非过程化的命令,组成语言的基本语句。编程时用户只需用这些命令说明做什么,不必描述实现的细节。(3)能满足多功能、一体化的要求。为此,语言中除了必须含有控制程序逻辑与实现数据库操作的语句外,还应包含生成与处理报表、图形,以及实现数据运算和分析统计功能的各种语句,共同构成一个一体化的语言,以适应多种应用开发的需要。第5章程序设计最早的第四代语言是关系数据库的结构化查询语言SQL,它是ORACLE、DB2等数据库系统实现的基本语言,具有较强的数据操作能力。SQL语言在系统开发中一般不独立使用,而是嵌入在其他语言的程序中使用,帮助完成数据库的操作。目前常用的一些开发工具如Visual F

6、oxPro、Power Builder等都具有第四代语言的很多特点。另一类与第四代语言相似的开发工具,如Visual C+、Visual Basic、Delphi等,虽然使用传统的程序设计语言,但是它们提供了帮助用户生成各种程序框架的能力,可快速生成数据库应用程序。第5章程序设计4GL可以提高软件生产率,但选用4GL也存在一些潜在的危险。许多4GL的一个设计目标是端用户编程(End-User Programming),即由使用产品的人编程。如果允许用户使用4GL编写访问数据库的程序,可能会造成整个数据库的混乱。例如Visual FoxPro一类的开发工具,在我国很多非计算机专业人员都经过一些培

7、训,他们能够直接使用Visual FoxPro打开数据库文件修改数据。使用这一类开发工具时应该慎重。第5章程序设计3.数据库软件工具数据库软件工具管理信息系统开发中常使用的另一类开发工具是数据库软件工具产品。目前常见的数据库软件产品有两类:一类是文件型数据库管理系统,如Visual Foxpro、Access,另一类是大型数据库服务器。文件型数据库系统一般对异种数据库的访问以及网络环境的支持较差,不适宜开发客户/服务器模式的系统。第5章程序设计大型数据库服务器是指规模较大、功能较齐全的大型数据系统。目前较典型的系统有ORACLE、SYBASE、INGRES、INFOMIX、DB2、SQL Se

8、rver等。这类系统功能齐全,容量巨大,适合于大型综合类数据库系统的开发。这些数据库服务器一般在后台运行,完成数据库的管理,前台应用程序通过SQL语言向其提交数据库操作请求。这类系统一般配有专门的接口语言,可以允许各类常用的程序设计语言(称为宿主语言)如C语言等访问数据库内的数据。第5章程序设计4.客户客户/服务器与浏览器服务器与浏览器/Web服务器应用开发工具服务器应用开发工具根据开发工具所支持的应用程序运行模式的不同,可以将开发工具分为传统开发工具类、客户/服务器工具类、浏览器/Web服务器类等。当前大部分开发工具均支持客户/服务器应用系统的开发,例如微软Visual Studio系列开发

9、工具、Borland公司的Delphi、C+Builder等,可以根据需要选择。第5章程序设计这一类开发工具大部分不仅仅是程序设计语言的编译器,而且是一个完整的开发平台。特别是目前常用的Windows环境下的开发工具,提供了良好的可视化开发环境,可以方便地构造图形用户界面、连接各种类型的数据库,减少应用系统开发的工作量。不过当前这一类开发工具大部分与操作系统关系密切,系统可移植性较差。第5章程序设计浏览器/Web服务器模式的应用系统是随着Internet技术特别是万维网(WWW,World Wide Web)技术的发展而发展起来的,由于其前台直接使用Web浏览器,无需安装特殊的软件,使应用系统

10、的维护工作变得十分简单,因而应用范围越来越广。当前开发浏览器/Web服务器模式应用系统的技术有多种,如传统的CGI技术、Windows操作系统下的ASP、Linux环境下的PHP、基于Java技术的JSP等。第5章程序设计5.可视化开发技术可视化开发技术可视化开发是20世纪90年代软件界最大的热点之一。随着图形用户界面的兴起,用户界面在软件系统中所占的比例也越来越大,有的甚至高达60%70%。产生这一问题的原因是图形界面元素的生成很不方便。为此Windows提供了应用程序设计接口(API,Application Programming Interface),它包含了600多个函数,极大地方便了

11、图形用户界面的开发。但是在这批函数中,大量的函数参数和数量更多的有关常量使基于Windows API的开发变得相当困难。第5章程序设计为此,一些软件开发工具厂商开发了一批可视化开发工具。可视化开发就是在可视化开发工具提供的图形用户界面上,通过操作界面元素,诸如菜单、按钮、对话框、编辑框、单选框、复选框、列表框和滚动条等,由可视化开发工具自动生成应用软件。这类应用软件的工作方式是事件驱动。对每一事件,由系统产生相应的消息,再传递给相应的消息响应函数。这些消息响应函数是由可视化开发工具在生成软件时自动装入的。第5章程序设计可视化开发就是在可视化开发工具提供的图形用户界面上,通过操作界面元素,诸如菜

12、单、按钮、对话框、编辑框、单选框、复选框、列表框和滚动条等,由可视化开发工具自动生成应用软件。这类应用软件的工作方式是事件驱动。对每一事件,由系统产生相应的消息,再传递给相应的消息响应函数。这些消息响应函数是由可视化开发工具在生成软件时自动装入的。第5章程序设计可视化开发工具可以帮助程序员生成图形用户界面及相关的消息响应函数。通常的方法是先生成基本窗口,并在它的外面以图标形式列出所有其他的界面元素,让开发人员挑选后放入窗口指定位置。在逐一安排界面元素的同时,还可以用鼠标拖动,以使窗口的布局更趋合理。图5.1是微软公司Visual Studio提供的可视化开发界面。第5章程序设计图5.1可视化开

13、发界面第5章程序设计由于要生成与各种应用相关的消息响应函数,因此可视化开发只能用于相当成熟的应用领域,如目前流行的可视化开发工具基本上用于关系数据库的开发。对一般的应用,目前的可视化开发工具只能提供用户界面的可视化开发。至于消息响应函数(或称脚本),则仍需用通常的高级语言编写。只有在数据库领域才提供4GL,使消息响应函数的开发大大简化。第5章程序设计可视化开发是软件开发方式上的一场革命,它使软件开发从专业人员的手中解放出来,对缓解20世纪80年代中后期爆发的应用软件危机有重大作用。目前,Windows操作系统下常见的开发工具如Visual Basic、Visual FoxPro、Visual

14、C+、Delphi、C+Builder等都提供可视化的开发环境。第5章程序设计5.1.2选择开发工具的原则选择开发工具的原则选择合适的开发工具首先应该考虑所选择的开发工具所适用的领域,除此之外一般还应该遵守下面的基本原则:(1)最少工作量原则:使用最小代价让系统工作。(2)最少技巧性原则:最好无需培训或很少培训就能编制程序。(3)最少错误原则:对常用的高级语言来说,要提供结构化控制结构、类型检查、数据结构描述、易于检验测试等机制。第5章程序设计(4)最少维护原则:对一般的高级语言来说,提供软件包结构和独立编译能力。独立编译意味着可分别编译各个程序单元,无需因为修改了一个程序单元而重新编译所有的

15、程序。(5)减少记忆原则。在系统开发中选择开发工具时应具体考虑下面的几个因素:(1)项目的应用领域。大部分信息系统需要进行大量的数据库操作,所以选择的开发工具应该具有强大的数据库操作能力。第5章程序设计传统的高级语言如C、PASCAL等的数据库操作能力较差,一般不宜选择。通常可选择一些数据库系统开发工具,如FoxBASE或一些大型的数据库系统工具,如ORACLE、SYBASE等。目前,Windows操作系统下一些可视化开发工具虽然使用的是一些传统的程序设计语言,但也提供了强大的数据库操作能力,如微软公司Visual Studio系列的Visual Basic和Visual C+,Java(通过

16、JDK提供的JDBC编程接口)等,也是开发数据库应用程序的较好选择。第5章程序设计另外,开发客户/服务器模式或浏览器/Web服务器模式的应用程序应该注意所选择的开发工具是否支持该模式系统的开发。(2)用户的要求。有时用户要求使用它们熟悉的语言。(3)可以使用的编译程序或开发环境。很多开发工具只能运行于特定的软硬件环境,例如Windows环境下一些可视化的开发工具只能在Windows环境下使用。如果选择一般的高级语言,则必须有运行于目标系统运行环境的编译程序。第5章程序设计(4)程序员的经验和知识。如果条件允许,则应尽量选择程序员熟悉的开发工具。(5)软件可移植性要求。如果目标系统需要运行于不同

17、的环境,则应选择可移植性较好的程序设计语言。Java是一种跨平台特性较好的语言,如果希望应用程序可以同时在多种平台运行,可以选择Java,但其运行效率较低。第5章程序设计5.2 程序设计风格程序设计风格5.2.1 什么是程序设计风格什么是程序设计风格程序设计风格又叫编码风格或编程风格。随着软件规模和复杂性的加大,程序不仅仅要被计算机编译执行,还要经常被人阅读。例如,在设计测试用例、查找错误、改正错误时,程序都要由程序作者或其他人员阅读,因此程序的可读性变得非常重要。程序设计风格指的是在编程时应该遵守的一些原则。第5章程序设计遵守这些原则可以使程序更容易被阅读和修改。一个具有良好风格的程序在能工

18、作的前提下,应具有如下特点:(1)易于测试和维护。(2)易于修改。(3)设计简单。为了使程序易于理解、测试和维护,最好的办法是使程序设计简单。坚决摒弃炫耀编程技巧以及把程序设计复杂化的任何想法和做法。第5章程序设计(4)高效。对程序中效率要求较高的模块通过改进算法、数据结构和程序的逻辑结构来提高程序的效率。一个逻辑正确但杂乱无章的程序是没有什么价值的,因为它无法供人阅读,难于测试、维护。因此,我们应该养成良好的编程风格。第5章程序设计5.2.2程序的内部文档程序的内部文档一个程序模块不仅要有外部文档(如模块开发卷宗),而且程序内部也应该有完整的文档。完整一致的内部文档是帮助读者理解程序的重要手

19、段。程序的内部文档包括程序的注解和程序的书写格式两个方面。第5章程序设计1.程序的注解程序的注解几乎所有的程序设计语言都提供了注解语句,允许程序员对程序进行说明。程序注解主要有两种类型:序言性注解和功能性注解。序言性注解出现在模块的开始位置,一般包括:(1)模块的全名;(2)模块的功能和性能;(3)调用格式;第5章程序设计(4)界面描述,包括上级调用模块、本模块调用的下级模块、输入输出参数的含义和类型以及该模块所引用的全局变量等;(5)开发历史,如作者、审查者、日期、修改的日期和修改的描述等内容。如果一个模块规模较大,其中包含多个函数或子程序,则可以在模块的开始增加目录性注解,说明模块中的函数

20、或子程序的位置和功能。第5章程序设计功能性注解是指在程序中每个具有独立功能的程序段之前说明该程序段功能的注解。书写功能性注解时应该注意以下几个方面:(1)应描述独立功能的程序块,而不是对每个语句加以说明。(2)注解不应是程序语句的重复,而应起补充说明作用。(3)应使用注解符和空行,以便与程序段区分。(4)注解应与代码一致。修改程序时应相应修改程序中对应程序段的注解,因为与程序功能不一致的注解在其他人阅读程序时会引起误解。第5章程序设计2.程序的书写格式程序的书写格式程序的书写格式对于程序的可读性也有很多的影响。不同的程序设计语言对程序的书写格式要求不一,一些程序设计语言对程序书写格式要求较严格

21、,而有一些程序设计语言书写格式比较随意。例如C语言程序语句的书写格式比FORTRAN语言随意得多。格式凌乱的程序的可读性将大大降低。通常在项目开发过程中应该对程序的书写格式进行规范,以便程序员之间相互协作交流。第5章程序设计程序书写格式应有助于读者理解程序,一般要注意以下几点:(1)不要一行书写多条语句,这样会掩盖程序的逻辑结构。虽然现代大部分的程序设计语言都允许在一行中书写多条语句,但这样使程序的结构变得不清楚。代码行最大长度宜控制在7080个字符以内。代码行不要过长,否则眼睛看不过来,也不便于打印。第5章程序设计(2)用缩排格式限定语句群的边界。缩排格式要显示程序的逻辑结构。常见的一些控制

22、结构都应该使用缩排格式,例如循环语句、条件语句等控制结构的内层语句,应退格书写。下面是C语言中的for语句的例子:for(i=0;i100;i+)sum+=i;第5章程序设计条件语句if可按照下面的格式书写:if(条件表达式)语句序列1else语句序列2第5章程序设计if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加,这样可以防止书写失误。(3)在程序段之间,程序段与注解之间用空行和注解符来分割。在C+程序中,每个类声明之后以及每个函数定义结束之后都要加空行。例如:第5章程序设计/空行 void Function1()/空行 void Function

23、2()/空行 void Function3()第5章程序设计在一个函数体内,逻辑上密切相关的语句之间不加空行,其他地方应加空行分隔。例如:/空行 while(condition)statement1;/空行 if(condition)statement2;第5章程序设计else statement3;/空行 statement4;有时也可以借助于一些自动工具来实现一致的程序格式。常见的一些格式化工具通常可以对程序中的注解以及控制语句的缩排形式进行规范。第5章程序设计5.2.3标识符命名的风格标识符命名的风格标识符的命名是程序风格的重要内容。标识符包括变量名、函数名、子程序名、文件名等。标识符的

24、选择不应该仅仅满足程序设计语言的语法限制,好的标识符对程序的可读性有很大的影响。变量是程序设计中用得最多的标识符之一,下面我们主要讨论变量命名的风格。第5章程序设计1.变量命名的一般原则变量命名的一般原则初学程序设计语言的人往往习惯使用一些比较随意的变量名,如x、y、x1等。当程序规模较大时,这一类变量看起来很混乱,从变量名上难以判断变量的类型和作用,而且往往会出现很多相似的变量名,使程序的可读性降低。软件开发规范要求变量命名应该做到以下几点:第5章程序设计(1)使用有意义的变量名。变量命名应能反映变量的意义和含义,以使它能正确地提示该程序对象所代表的实体,并能帮助读者理解和记忆。例如:d=s

25、*t;就不如distance=speed*time;(2)使用不易混淆的变量名。过于相似的变量名,容易引起输入错误和误解。第5章程序设计(3)同一变量名不要具有多种含义。这种情况使读者在阅读程序时易于误解,也不便于修改。(4)显式说明一切变量。为了易于理解和避免出错,所有变量都应该显式说明后再使用。有些程序设计语言允许对变量名不进行说明就直接使用,例如FORTRAN语言、BASIC语言等。在使用这些语言编程时应特别注意,由于变量可以不定义直接使用,在输入源程序时如果变量名输入错误,编译器也不能检测。其他一些高级语言如C、PASCAL等程序设计语言不允许使用未定义的变量,在编程时可避免这一类错误

26、。(5)对变量名作出注解说明其含义。第5章程序设计2.匈牙利命名规则匈牙利命名规则近年来影响较大的标识符命名规则是匈牙利命名规则,它是由匈牙利人 Charles Simonyi于1972年发明的一种给变量取名字的方式。最初这种命名规则并没有得到足够的重视,自从微软公司在Windows中使用了该命名规则之后,才得到广泛的应用。下面是Windows API中函数CreateWindow的原型说明:第5章程序设计HWND CreateWindow(LPCTSTR lpClassName,LPCTSTR lpWindowName,DWORD dwStyle,int x,int y,int nWidth

27、,int nHeight,HWND hWndParent,HMENU hMenu,HANDLE hInstance,LPVOID lpParam);这里函数的形式参数的名称使用了匈牙利命名规则,例如第一个参数lpClassName由两部分构成,lp表示该参数的数据类型,ClassName表示该参数的含义。第5章程序设计一般来讲,匈牙利命名规则中变量名的构成如下:变量名=其中“类型”为变量的数据类型,“类型”使用小写的英文字母表示,如上面的lp(Large Pointer)。“限定词”表示变量的含义,区分同一类型的不同变量。限定词的命名应符合上面所讲软件开发规范的要求。限定词的第一个字母必须是大

28、写英文字母。第5章程序设计类型和限定词之间没有任何分割符,就用限定词的第一个大写字母来标定边界。例如,上面函数中形式参数hMenu,h是类型(表示句柄handle),Menu是限定词(表示菜单)。匈牙利命名规则中的“类型”类似于传统程序设计语言中的数据类型(如C语言的int、float),但其概念更广,一般可分为图5.2中所示的三种。第5章程序设计图5.2类型构成基类型构成的类型加类型前缀构成的类型加后缀构成的类型子类型第5章程序设计(1)基类型:最基本的类型称为基类型。基类型的名称定义为其描述的缩写,通常为12个字符。有些常用的基类型有约定的用法,如:n:整型数据,如C语言中的int;sz:

29、以零结束的字符串(C语言中以0结束的字符串);f:标志(flag)。第5章程序设计(2)加类型前缀构成的类型:在基类型前加上类型前缀就构成一个新的类型。常用的类型前缀有:p:指针,例如pc表示指向字符型数据的指针类型;c:计数(count);i:数组下标;d:偏移量。第5章程序设计(3)加后缀构成新类型子类型:在基类型后面加上一个或两个小写英文字母作为对基类型的进一步规定。例如:x表示坐标类型,xi表示以英寸计的坐标类型。如果通过加上类型前缀或后缀的方法所构成的类型表达式变得很长,则应该定义一个新的基类型。匈牙利命名规则中的限定词可以使用完整的英文单词。必要时也可以使用英文单词的缩写或者将多个

30、英文单词连起来使用(每个单词的第一个字母采用大写)。例如上面例子中的hWndParent,其中Wnd为英文Window的缩写。常用的一些缩写限定词如:第5章程序设计Temp(或Tmp、T)表示临时变量Prev(或Prv)前一个(Previous)Next下一个Dest目标Src源限定词也可以使用数字,有时也可以是空白。选择限定词应该遵循以下几条原则:第5章程序设计(1)对于布尔变量,限定词应描述其值为“真”时的情形,以便于阅读程序。例如,fOpen表示文件打开是否成功,则下面的程序片断在阅读时更易于理解:if(fOpen)/*文件打开成功执行的操作*/else/*文件打开失败执行的操作*/换一

31、个相反的限定词Fail,读者可以体会一下其中的区别。第5章程序设计(2)对于枚举集合中的值,逐一描述其元素。例如一个表示颜色的枚举类型,用co表示类型,该类型的常量元素可以命名为coRed、coGreen等。微软公司在Windows中,常量一般采用大写英文字母表示。例如Windows消息常量,均以WM_开始(Windows Message的缩写),后面跟表示该常量含义的限定词,如WM_ACTIVATE表示窗口被激活的消息,WM_CHAR表示键盘输入消息。第5章程序设计(3)在与其他类型有关的情况下,也可以用该“其他类型”作为限定词,此时要将其第一个字母大写。在使用匈牙利命名规则时应注意的是,有

32、些程序设计语言允许的标识符长度较短,此时限定词应注意采用缩写。特别要注意的是,有些程序设计语言,如FoxBASE等,当变量名长度超出规定的长度时,将超出部分截断而不给出任何警告信息,往往会将不同的变量名当作同一个变量。第5章程序设计子程序或函数的命名方法可以参照变量命名方法。函数名可由三个部分构成:函数名=以上三个部分每一部分均可为空,每一部分的每一个单词均以大写字母开头。完整列出三个部分往往会使函数名或子程序名变得很长,造成使用上的不便。如果参数个数很多,可列出主要的一个或多个参数。第5章程序设计微软公司的Windows API函数名称通常只有部分,例如上面例子中的CreateWindow。

33、目前常用的高级语言如C+、PASCAL对函数的调用形式的检查一般比较严格,参数或类型使用错误大部分可由编译器检查出来,特别是目前一些开发工具,如Delphi、Visual C+等还可以在源程序输入时实时给出函数原型的提示,因此在函数名中包含类型或参数信息意义不大。第5章程序设计5.2.4语句构造语句构造模块设计阶段确定了模块内部的逻辑结构,编码阶段则根据程序的逻辑结构构造语句。构造语句应该遵守以下原则:(1)语句应该简单而直接,不要为了提高效率而使程序变得复杂或难以理解。早期的计算机存储空间和机时往往十分昂贵,程序员往往为了减少程序运行时所占用的存储空间和运行时间而使用一些编程技巧,使程序变得

34、难以理解。请看下面的C程序片断:第5章程序设计a=ab;b=a+b;a=ba;上面三行C语言程序实现了变量a、b值的交换,省去了使用中间变量,程序的功能变得很不直观,难以理解。通常交换变量可采用中间变量实现:c=a;a=b;b=c;第5章程序设计随着计算机硬件价格的下降,效率的重要性在很多时候不再是第一位,而随着软件规模的扩大,程序的可读性成为衡量软件质量的一个极其重要的因素。对程序效率的追求,主要依靠好的设计和优秀的算法来达到,而不能希望从语句的改进方面获得很大的提高。(2)不要为了节省空间而将多条语句写成一行。将多条语句放在一行并不能使软件的可执行代码减小,反而会降低程序的可读性。第5章程

35、序设计(3)尽量避免复杂的条件测试。复杂的条件表达式不仅影响程序的可读性,而且不易测试,难以保证其正确性。(4)尽量减少“非”条件的测试。“非”条件的测试往往会引起阅读上的困难。在使用“非”条件测试时应注意条件表达式中变量或函数名限定词的选择应遵守5.2.3节中布尔变量限定词的命名原则。下面是C语言中的一个条件语句的例子:第5章程序设计if(!strcmp(s1,s2)这种写法在C语言中代码效率较高,因而在一定的范围内流行很广,可是它的风格很差。如果两个字符串相等,那么返回真。但是“!”的使用则表明不相等的时候才执行if后面的语句。这个问题可以通过宏定义来解决:#define Streq(s1

36、,s2)(strcmp(s1),(s2)=0)现在上面的条件语句可改写为if(Streq(s1,s2)虽然程序代码的效率较低,但程序变得易于阅读理解。第5章程序设计(5)避免大量使用循环嵌套和条件嵌套。大量的嵌套使程序的逻辑变得很复杂,不易理解。另外要注意在使用嵌套时应使用beginend(Pascal语言)、花括号(C语言)等将同一层次的语句标识出来,防止二义性。例如,下面的C语言程序结构片断:if(条件表达式1)if(条件表达式2)语句1else语句2第5章程序设计在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。例如下面两个C程序片

37、段,程序1长循环在最外层,效率低,而程序2长循环在最内层,效率较高。程序1:for(row=0;row100;row+)for(col=0;col5;col+)sum=sum+arowcol;第5章程序设计程序2:for(col=0;col5;col+)for(row=0;row100;row+)sum=sum+arowcol;第5章程序设计(6)利用括号使逻辑表达式和算术表达式的运算次序直观清晰。一些程序设计语言运算符的结合性和优先性很复杂,难以记忆,即使你能够保证它的正确性,也应该使用括号使运算顺序更直观清晰。这样做不仅可以使程序更易于他人阅读,而且可以杜绝错误。(7)不要为追求效率而使用

38、中间变量。有时可以使用中间变量来暂存某些运算结果,减少程序运算的次数,提高程序运行的效率,但中间变量的含义不明确,在阅读时不易理解。例如,下面的程序运算a=(bc2)2:第5章程序设计a1=(bc*c);a=a1*a1;这里引进了中间变量a1暂存bc2的值,减少了运算的次数,但破坏了原来直接了当的表达式,而且分成了两条语句,使程序的易理解性受到了影响。(8)不要用浮点数作相等比较。浮点数在计算机内部表示方法与整型数据不同,它是不精确的。使用浮点数进行相等比较往往不能得到预期的结果。请看下面的C语言程序:第5章程序设计main()float i=567,k;k=i/1000;printf(%f,

39、k*1000);使用Turbo C 2.0编译运行上面的程序,输出结果并不是567.000 000,而是566.999 972。因此在使用有些程序设计语言中的多分支语句时,应注意不能使用浮点型的表达式。例如C语言中的switch语句,虽然C语言语法允许其后的表达式为浮点类型,但往往不能得到预期的结果。第5章程序设计实实 验验 四四1实验目的实验目的本章主要介绍了常见的应用软件开发工具和编程风格,安排本次实验的主要目的是要培养良好的编程风格,主要包括以下几个方面的要求:(1)养成在程序中书写注解的习惯;(2)程序的书写格式要规范,熟练使用缩排格式;(3)使用匈牙利命名规则;(4)构造简明易懂的程

40、序语句。第5章程序设计2实验内容实验内容选择一种熟悉的程序设计语言或开发工具,编制实验三中各模块的程序代码,也可以另外选择其他的一些程序设计题进行练习。在编写程序时应注意程序设计的风格,然后分别调试各个模块的程序。第5章程序设计3实验步骤实验步骤本次实验分为以下三步:(1)根据实验三所选择的项目,以及小组内其他成员所设计的模块的逻辑结构编写程序;(2)编译调试程序;(3)书写实验报告,谈谈按照开发规范编写程序代码的优点。第5章程序设计习习 题题 一、问答题一、问答题1.非过程化语言与过程化语言的区别是什么?2.选择语言有哪些原则?在项目开发时对语言选择应考虑哪些方面的问题?3.程序的注解有几种

41、?如何使用程序的注解?4.变量命名应遵循哪些原则?5.研究下面一段程序的功能,并将它改写成具有良好风格的程序。第5章程序设计if(xy)goto L30;if(yz)goto L50;small=z;goto L70;L30:if(xz)第5章程序设计goto L60;samll=z;goto L70;L50:small=y;goto L70;L60:small=x;L70:第5章程序设计二、选择题二、选择题1.源程序的版面文档要求应有变量说明、适当注释和_。A)框图 B)统一书写格式 C)修改记录 D)编程日期2.在下列计算机语言中,_依赖于具体的机器。高级语言 机器语言 汇编语言A)只有 B)只有 C)和 D),和第5章程序设计3.解释程序与编译程序同属于语言处理程序,下列关于它们的叙述中_是正确的。A)解释程序产生目标程序 B)编译程序产生目标程序C)两者均产生目标程序 D)两者均不产生目标程序

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《信息系统分析与设计》课件2第5章 (2).ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|