第2章 程序设计基础

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章程序设计基础

程序设计方法与风格

1.源程序文档化

源程序文档化应考虑如下几点:

(1)符号名的命名:符号名的命名应具有一定的实际含义,以便于对程序功能的理解。

(2)程序注释:正确的注释能够帮助读者理解程序。

(3)视觉组织:为使程序的结构一目了然,可以在程序中利用空格、空行、缩进等技巧使程序层次

2.数据说明的方法

一般应注意:

(1)说明次序规范化

(2) 变量说明有序化:语句说明多个变量时,变量按照字母顺序排序为好。

(3)使用注释来说明复杂数据的结构。

3.语句的结构

程序应该简单易懂,语句构造应该简单直接

不应该为提高效率而把语句复杂化。一般应注意如下

(1)在一行内只写一条语句:

(2)程序编写应优先考虑清晰性;

(3)除非对效率有特殊要求,程序编写要做到清晰第一,效率第二。

(4)首先要保证程序正确,然后才要求提高速度:

(5)避免使用临时变量而使程序的可读性下降;

(6)避免不必要的转移;

7)尽可能使用库函数;

(8)避免采用复杂的条件语句:

(9)尽量减少使用“否定”条件的条件语句;

(10)数据结构要有利于程序的简化;

(11)要模块化,使模块功能尽可能单一化;

(12)利用信息隐蔽,确保每一个模块的独立性

(13)从数据出发去构造程序:

(14)不要修补不好的程序,要重新编写:

4.输入和输出

在设计和编程时都应该考虑如下原则:

(1)对所有的输入数据都要检验数据的合法性;

(2)检查输入项的各种重要组合的合理性;

(3)输入格式要简单,以使得输入的步骤和操作尽可能简单;

(4)输入数据时,应允许使用自由格式:

(5)应允许缺省值;

(6)输入一批数据时,最好使用输入结束标志:

(7)在以交互式输入/输出方式进行输入时,要在屏幕上使用提示符明确提示输入的请求,同时在数据输入过程中和输入结束时,应在屏幕上给出状态信息;

(8)当程序设计语言对输入格式有严格要求时,应保持输入格式与输入语句的一致性;给所有的输

出加注释,并设计输出报表格式。

2.2 结构化程序设计

2.2.1结构化程序设计的原则

结构化程序设计方法的主要原则可以概括为自顶向下,逐步求精,模块化,限制使用goto 语句。

1.自顶向下:程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。

2.逐步求精:对复杂问题,应设计一些子目标作过渡,逐步细化。

3.模块化:一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块。4.限制使用goto语句

使用GOTO语句会使程序执行效率较高;否定的结论是,GOTO语句是有害的,是造成程序混乱的祸根,程序的质量与GOTO语句的数量成反比,应该在所有高级程序设计语言中取消GOTO语句。

(1)滥用GOTO语句确实有害,应尽量避免;

(2)完全避免使用GOTO语句也并非是个明智的方法更清楚、效率更高;

(3)争论的焦点不应该放在是否取消GOTO语句,而应该放在用什么样的程序结构上。2.2.2 结构化程序设计基本结构与特点

三种基本控制结构:

1.顺序结构:是顺序执行结构,所谓顺序执行,就是按照程序语句行的自然顺序,一条语句一条语句地执行程序。

2.选择结构:选择结构又称为分支结构,它包括简单选择和多分支选择结构,这种结构可以根据设定的条件,判断应该选择哪一条分支来执行相应的语句序列。

3.重复结构:重复结构又称为循环结构,它根据给定的条件,判断是否需要重复执行某一相同的或类似的程序段,利用重复结构可简化大量的程序行。

在程序设计语言中,重复结构对应两类循环语句:

1)对先判断后执行循环体的称为当型循环结构。

2)对先执行循环体后判断的称为直到型循环结构,

结构化程序设计方法设计出的程序具有明显的优点:

其一,程序易于理解、使用和维护。

其二,提高了编程工作效率,降低软件开发成本。

2.2.3 结构化程序设计原则和方法的应用

结构化程序设计的具体实施中,要注意把握如下要素:

1.使用程序设计语言中的顺序、选择、循环等有限的控制结构表示程序的控制逻辑:2.选用的控制结构只准许有一个入口和一个出口;

3.程序语句组成容易识别的块,每块只有一个入口和一个出口;

4.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现;

5.语言中所没有的控制结构,应该采用前后一致的方法来模拟:

6.严格控制GOTO语句的使用。

2.3 面向对象的程序设计方法

面向对象方法已经发展成为主流的软件开发方法。

面向对象方法之以下主要优点。

1.与人类习惯的思维方法一致

传统的程序设计方法是面向过程的,其核心方法是以算法为核心,把数据和过程作为相互独立的部分,数据代表问题空间中的客体,程序则用于处理这些数据,在计算机内部数据和程序是分开存放的。

面向对象方法和技术以对象为核心。对象是由数据和容许的操作组成的封装体,与客观实体有直接的对应关系。对象之间通过传递消息互相联系,以模拟现实世界中不同事物彼此之间的联;

2.稳定性好

面向对象方法基于构造问题领域的对象模型,以对象为中心构造软件系统。它的基本作法是用对象模拟问题领域中的实体,以对象间的联系刻画实体间的联系。所以,当对系统的功能需求变化时并不会引起软件结构的整体变化,往往仅需要作一些局部性的修改。以对象为中心构造的软件系统也是比较稳定的。

而传统的软件开发方法以算法为核心,开发过程基于功能分析和功能分解。用传统方法所建立起来的软件系统的结构紧密地依赖于系统所要完成的功能,当功能需求发生变化时将引起软件结构的整体修改。因此,这样的软件系统是不稳定的。

3.可重用性好

传统的软件重用技术是利用标准函数库,实际的库函数往往仅提供最基本、最常用的功能

使用传统方法学开发软件时,人们强调的是功能抽象,认为具有功能内聚性的模块是理想的模块,也就是说,如果一个模块完成一个且只完成一个相对独立的子功能,那么这个模块就是理想的可重用模块,但是,具有功能内聚性的模块并不是自含的和独立的,相反,它必须在数据上运行。如果要重用这样的模块,则相应的数据也必须重用。

在面向对象方法中所使用的对象,其数据和操作是作为平等伙伴出现的。因此,对象具有很强的自含性,此外,对象所固有的封装性,使得对象的内部实现与外界隔离,具有较强的独立性。

面向对象的软件开发技术在利用可重用的软件成分构造新的软件系统时,有很大的灵活性。有两种方法可以重复使用一个对象类:

一种方法是创建该类的实例,从而直接使用它;

另一种方法是从它派生出一个满足当前需要的新类。

继承性机制使得子类不仅可以重用其父类的数据结构和程序代码,而且可以在父类代码的基础上方便地修改和扩充,这种修改并不影响对原有类的使用。

4.易于开发大型软件产品

5.可维护性好

(1)用面向对象的方法开发的软件稳定性比较好。

(2)用面向对象的方法开发的软件比较容易修改。

(3)用面向对象的方法开发的软件比较容易理解。

(4)易于测试和调试。

2.3.2 面向对象的方法基本概念

1.对象

对象可以用来表示客观世界中的任何实体,它既可以是具体的物理实体的抽象

相关文档
最新文档