2019-02-22 计算机二级公共基础知识之程序设计基础

参考资料:高教版《全国计算机等级考试二级教程——C语言程序设计》

程序设计方法与风格

就程序设计方法和技术的发展而言,主要经过了结构化程序设计面向对象程序设计阶段。

一般来讲,程序设计风格是指编写程序时所表现出的特点习惯逻辑思路。程序设计风格是很重要的,因为程序设计风格会深刻地影响软件的质量和可维护性。可以认为,著名的“清晰第一,效率第二”的论点已成为当今主导的程序设计风格。

要形成良好的程序设计风格,主要应注重考虑以下因素:

源程序文档化

  • 符号的命名:符号的命名应具有一定的实际含义。
  • 程序注释:正确的注释能够帮助读者理解程序。注释一般分为序言性注释功能性注释
  • 视觉组织:为了使程序结构一目了然,可以在程序中使用空格、空行、缩进等技巧使程序层次清晰。

数据说明的方法

  • 数据说明的次序规范化:鉴于程序理解、阅读和维护的需要,使数据说明次序固定,可以使数据的属性容易查找,也有利于测试、排错和维护。
  • 说明语句中变量安排有序化:当一个语句说明多个变量时,变量按照字母顺序排序为好。
  • 使用注释来说明复杂的数据结构

语句的结构

  • 在一行内只写一条语句。
  • 程序编写应优先考虑清晰性。
  • 除非对效率有特殊要求,程序编写要做到清晰第一,效率第二。
  • 首先要保证程序正确,然后才要求提高速度。
  • 避免使用临时变量而使程序的可读性下降。
  • 避免不必要的转移。
  • 尽可能使用库函数。
  • 避免采用复杂的条件语句。
  • 尽量减少使用“否定”条件的语句。
  • 数据结构要有利于程序的简化。
  • 要模块化,使模块功能尽可能单一化。
  • 利用信息隐蔽,确保每一个模块的独立性。
  • 从数据出发去构造程序。
  • 不要修补不好的程序,要重新编写。

输入和输出

输入和输出方式和格式应尽可能方便用户的使用。

  • 对所有的输入数据都要检验数据的合法性。
  • 检查输入项的各种重要组合的合理性。
  • 输入格式要简单,以使得输入的步骤和操作尽可能简单。
  • 输入数据时,应允许使用自由格式。
  • 应允许缺省值。
  • 输入一批数据时,最好使用输入结束标志。
  • 在以交互式输入/输出方式进行输入时,要在屏幕上使用提示符明确提示输入的请求,同时在数据输入过程中和输入结束时,应在屏幕上给出状态信息。
  • 当程序设计语言对输入格式有严格要求时,应保持输入格式与输入语句的一致性;给所有的输出加注释,并设计输出报表格式。

结构化程序设计

结构化程序设计的原则

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

自顶向下

程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。

逐步求精

对复杂的问题,应设计一些子目标作过渡,逐步细化。

模块化

把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每一个小目标称为一个模块。

限制使用goto语句

结构化程序的基本结构与特点

  • 顺序结构
  • 选择结构
  • 循环结构

按结构化程序设计方法设计出来的程序基友明显的优点:

  1. 程序易于理解、使用和维护。
  2. 提高了编程工作的效率。

结构化程序设计原则和方法使用

  • 使用程序设计语言中的顺序、选择、循环等有限的控制结构表示程序的控制逻辑。
  • 选用的控制结构只准许有一个入口和一个出口。
  • 程序语句组成容易识别的块,每块只有一个入口和一个出口。
  • 复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现。
  • 语言中所没有的控制结构,应该采用前后一致的方法来模拟。
  • 严格控制goto语句的使用。

面向对象的程序设计

关于面向对象方法

面向对象方法的本质,就是主张从客观世界固有的事物出发来构造系统,提倡人类在现实生活中常用的思维方法来认认识、理解和描述客观事物,强调最终建立的系统能够映射问题域。

面向对象方法主要有以下优点:

  • 与人类习惯思维方法一致。
  • 稳定性好。
  • 可重用性好。
  • 易于开发大型软件产品。
  • 可维护性好。

面向对象方法的基本概念

对象

对象是面向对象方法中最基本的概念。

对象可以用来表示客观世界中的任何实体,也就是说,应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。

总之,对象是对问题域中某个实体的抽象,是构成系统的一个基本单位,它由一组表示其静态特征的属性和它可执行的一组操作组成。

对象可以做的操作表示它的动态行为,在面向对象分析和面向对象设计中,通常把对象的操作也称为方法服务

属性即对象所包含的信息,它在设计对象时确定,一般只能通过执行对象的操作来改变。

操作描述了对象执行的功能,若通过消息传递,还可以为其他对象使用。

对象有如下一些基本特点:

  1. 标识唯一性:对象是可区分的,并且由对象的内在本质来区分。
  2. 分类性:可以将具有相同属性的对象抽象成类。
  3. 多态性:同一个操作可以是不同对象的行为。
  4. 封装性:从外面看只能看到对象的外部特征,对象的内部状态只能由其自身改变。
  5. 模块独立性好:对象内部各种元素彼此结合得很紧密,内聚性强。

类和实例

将属性、操作相似的对象归为。类是对象的抽象,它描述了属于该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例

类是关于对象性质的描述,它同对象一样,包括一组数据属性和在数据上的一组合法操作。

消息

对象间的相互合作需要一个机制协助进行,这样的机制称为消息

消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它同意了数据流和控制流。

通常,一个消息由三部分组成:

  1. 接受消息的对象的名称;
  2. 消息标识符(也称消息名);
  3. 零个或多个参数。

继承

继承是使用已有的类定义作为基础建立新类的定义技术。已有的类可当作基类来引用,则新类相应地可当作派生类来引用。

广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。

面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组成一个层次结构的系统:一个类的上层可以有父类,下层可以有子类。这种层次结构系统的一个重要性质是继承性,一个类直接继承其父类的描述(数据和操作)或特性,子类自动地共享基类中定义的数据和方法。

继承分为单重继承多重继承。单重继承是指一个类只允许有一个父类,多重继承是指一个类允许有多个父类。

多态性

对象根据所接收的消息而做出动作,同样的消息被不同的对象接收时可导致完全不同的行为,该现象称为多态性

在面向对象的软件技术中,多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。

你可能感兴趣的:(2019-02-22 计算机二级公共基础知识之程序设计基础)