1、内容提要内容提要 n程序设计方法与风格程序设计方法与风格n结构化程序设计结构化程序设计n面向对象的程序设计方法,对象、方法、面向对象的程序设计方法,对象、方法、属性及继承与多态性属性及继承与多态性22.1 2.1 程序设计方法与风格程序设计方法与风格n2.1.1 2.1.1 程序设计方法程序设计方法n结构化设计方法n模块内部程序各部分要按照自顶向下的结构划分n各程序部分应按功能组合n各程序之间的联系尽量通过调用子程序来实现,不用或少用GOTO方式n面向对象程序设计方法32.1.2 2.1.2 程序设计风格程序设计风格n原则:清晰第一,效率第二原则:清晰第一,效率第二 n1.1.源程序中的内部文
2、档源程序中的内部文档n符号名的命名:有一定实际含义n程序的注释:n序言性注释n功能性注释n程序的视觉组织:层次清晰n2.2.数据说明数据说明n数据说明的次序规范化n说明语句中变量安排有序化n使用注释来说明复杂数据的结构42.1.2 2.1.2 程序设计风格(续)程序设计风格(续)n3 3语句的结构语句的结构n在一行内只写一条语句n程序编写应优先考虑清晰性n清晰第一,效率第二n在保证程序正确的基础上再要求提高效率n避免使用临时变量前使程序的可读性下降n避免不必要的转移n尽量使用库函数n避免采用复杂的条件语句n尽量减少使用“否定”条件语句n数据结构要有利于程序的简化n要模块化,使模块功能尽可能单一
3、化n利用信息隐蔽,确保每一个模块的独立性n从数据出发去构造程序n不要修补不好的程序,要重新编写52.1.2 2.1.2 程序设计风格(续)程序设计风格(续)n4 4输入和输出输入和输出n对输入数据检验数据的合法性n检查输入项的各种重要组合的合理性n输人格式要简单,使得输入的步骤和操作尽可能简单n输人数据时,应允许使用自由格式n应允许缺省值n输入一批数据时,最好使用输入结束标志n在以交互式输入/输出方式进行输人时,要在屏幕上使用提示符明确提示输入的请求,同时在数据输入过程中和输入结束时,应在屏幕上给出状态信息n当程序设计语言对输入格式有严格要求时,应保持输入格式与输入语句的一致性;给所有的输出加
4、注释,并设计输出报表格式63.2 3.2 结构化程序设计结构化程序设计n基本思想基本思想n关于GOTO语句n工程思想n结构化思想n自顶向下,逐步求精,模块化,限制使用GOTO语句 72.2.1 2.2.1 结构化程序设计的原则结构化程序设计的原则n1 1自顶向下自顶向下n2 2逐步求精逐步求精n3 3模块化模块化n4 4限制使用限制使用GOTOGOTO语句语句82.2.2 2.2.2 结构化程序的基本结构与特点结构化程序的基本结构与特点n三种基本结构三种基本结构n顺序结构n选择结构n重复结构92.2.2 2.2.2 结构化程序的基本结构与特点结构化程序的基本结构与特点(续续)n顺序结构顺序结构
5、102.2.2 2.2.2 结构化程序的基本结构与特点结构化程序的基本结构与特点(续续)n选择结构选择结构n又称分支结构n简单选择结构n多分支选择结构 112.2.2 2.2.2 结构化程序的基本结构与特点结构化程序的基本结构与特点(续续)n重复结构重复结构n又称为循环结构 n当型n直到型122.2.2 2.2.2 结构化程序的基本结构与特点结构化程序的基本结构与特点(续续)n特点特点n关系清晰、易读、易理解性好、易维护。n“自顶向下、逐步细化”,提高效率,降低成本132.2.3 2.2.3 结构化程序设计原则和方法的应用结构化程序设计原则和方法的应用n用有限的控制结构用有限的控制结构n一个入
6、口和一个出口一个入口和一个出口n每块只有一个入口和一个出口每块只有一个入口和一个出口n使用嵌套使用嵌套n前后一致前后一致n避免避免GOTOGOTO语句语句142.3 2.3 面向对象的程序设计面向对象的程序设计n2.3.1 2.3.1 关于面向对象方法关于面向对象方法n对系统的复杂性进行概括、抽象和分类,使软件的设计与现实形成一个由抽象到具体、由简单到复杂这样一个循序渐进的过程,从而解决大型软件研制中存在的效率低、质量难以保证、调试复杂、维护困难等问题。n结构化的分解突出过程,即如何做(How to do)?它强调代码的功能是如何实现的;面向对象的分解突出现实世界和抽象的对象,即做什么(Wha
7、t to do)?152.3.1 2.3.1 关于面向对象方法(续)关于面向对象方法(续)n主要优点主要优点n与人类习惯的思维方法一致n稳定性好n可重用性好n易于开发大型软件产品n可维护性好162.3.2 2.3.2 面向对象方法的基本概念面向对象方法的基本概念n1.1.对象对象(Object)(Object)n对象是基本的运行时认得实体,它既包括数据(属性),也包括作用于数据的操作(行为)。n一个对象把属性和行为封装为一个整体n一个对象通常可由对象名、属性和操作3部分组成172.3.2 2.3.2 面向对象方法的基本概念(续)面向对象方法的基本概念(续)n对象特点对象特点n标识惟一性n分类性
8、n多态性n封装性n模块独立性好182.3.2 2.3.2 面向对象方法的基本概念(续)面向对象方法的基本概念(续)n2 2类和实例类和实例n类是具有共同属性、共同操作方法的对象的集合,是对象的抽象n对象是其对应类的一个实例192.3.2 2.3.2 面向对象方法的基本概念(续)面向对象方法的基本概念(续)n3 3消息消息n对象之间进行通信的机制n三部分组成n接收消息的对象的名称n消息标识符(消息名)n零个或多个参数202.3.2 2.3.2 面向对象方法的基本概念(续)面向对象方法的基本概念(续)n继承是父类和子类之间共享数据的方法的机制n一个子类可以继承它的父类(或祖先类)中的属性和操作n子
9、类中可以定义自己的属性和操作n单重继承、多重继承212.3.2 2.3.2 面向对象方法的基本概念(续)面向对象方法的基本概念(续)n不同的对象收到同一消息可以产生完全不同的结构,这一现象叫做多态性n优点:灵活性、可重用性、可扩充性。22典型考题分析 2.4 2.4 典型考题分析典型考题分析 n【例【例2-12-1】从程序设计方法和技术的发程序】从程序设计方法和技术的发程序角度来说,程序设计主要经历了结构化设角度来说,程序设计主要经历了结构化设计和计和_的程序设计阶段。的程序设计阶段。n答案答案 面向对象面向对象242.4 2.4 典型考题分析典型考题分析 n【例【例2-22-2】对建立良好的
10、程序设计风格,下】对建立良好的程序设计风格,下面描述正确的是面描述正确的是_。A)程序应简单、清晰、可读性好B)符号名的命名只要符合语法C)充分考虑程序的执行效率D)程序的注释可有可无n答案答案 A A252.4 2.4 典型考题分析典型考题分析 n【例【例2-32-3】源程序的文档化不包括】源程序的文档化不包括_。A)符号名的命名要有实际意义B)正确的文档格式C)良好的视觉组织D)正确的程序注释n答案答案 D D262.4 2.4 典型考题分析典型考题分析 n【例【例2-42-4】注释一般为序言性注释和】注释一般为序言性注释和_注释。注释。n答案答案 功能性功能性272.4 2.4 典型考题
11、分析典型考题分析 n【例【例2-52-5】在设计程序时,应采纳的原则之】在设计程序时,应采纳的原则之一是一是_。A)程序结构应有助于读者理解B)不限制GOTO语句的使用C)减少或取消注解行D)程序越短越好n答案答案 A A282.4 2.4 典型考题分析典型考题分析 n【例【例2-62-6】下列选项中不属于结构化程序设】下列选项中不属于结构化程序设计方法的是计方法的是_。(。(20062006年年4 4月)月)A)自顶向下B)逐步求精C)模块化D)可复用n答案答案 D D292.4 2.4 典型考题分析典型考题分析 n【例【例2-72-7】下列选项不符合良好程序设计风】下列选项不符合良好程序设
12、计风格的是格的是_。(。(20062006年年9 9月)月)A)源程序要文档化B)数据说明的次序要规范化C)避免滥用 GOTO 语句D)模块设计要保证高耦合、高内聚n答案答案 D D302.4 2.4 典型考题分析典型考题分析 n【例【例2-82-8】结构化程序设计的三种基本控制】结构化程序设计的三种基本控制结构是结构是_。A)过程、子程序和分程序B)顺序、选择和重复C)递归、堆栈和队列D)调用、返回和转移n答案答案 B B312.4 2.4 典型考题分析典型考题分析 n【例【例2-92-9】结构化程序设计主要强调的是】结构化程序设计主要强调的是_。A)程序的规模B)程序的易读性C)程序的执行
13、效率D)程序的可移植性n答案答案 B B322.4 2.4 典型考题分析典型考题分析 n【例【例2-102-10】关于结构化程序设计原则和方】关于结构化程序设计原则和方法的描述错误的是法的描述错误的是_。A)选用的控制结构只准许有一个入口和一个出口B)复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现C)不允许使用GOTO语句D)语言中所没有的控制结构,应该采用前后一致的方法来模拟n答案答案 C C332.4 2.4 典型考题分析典型考题分析 n【例【例2-112-11】采用面向对象技术开发的应用】采用面向对象技术开发的应用系统的特点是系统的特点是_。A)重用性更强B)运行速度更快C)占用存储
14、量小D)维护更复杂n答案答案 A A342.4 2.4 典型考题分析典型考题分析 n【例【例2-122-12】在面向对象方法中,类的实例】在面向对象方法中,类的实例称为称为_。(。(20052005年年4 4月)月)n答案答案 对象对象352.4 2.4 典型考题分析典型考题分析 n【例【例2-132-13】消息传递是对象间通信的手段,一个】消息传递是对象间通信的手段,一个对象通过向另一个对象发送消息来请求其服务。对象通过向另一个对象发送消息来请求其服务。一个消息通常包括一个消息通常包括_。A)接收消息的对象的名称、消息标识符和必要的参数B)接收消息的对象的名称和消息标识符C)发送消息的对象的
15、名称、调用的接收方的操作名和必要的参数D)消息标识符n答案答案 A A362.4 2.4 典型考题分析典型考题分析 n【例【例2-142-14】一个对象在收到消息时,要予】一个对象在收到消息时,要予以响应。不同的对象收到同一消息可以产以响应。不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做对象的生完全不同的结果,这一现象叫做对象的_。A)继承性B)多态性C)抽象性D)封装性n答案答案 B B372.4 2.4 典型考题分析典型考题分析 n【例【例2-152-15】在面向对象程序设计中,从外】在面向对象程序设计中,从外面看只能看到对象的外部特征,而不知道面看只能看到对象的外部特征,而不知道也无需知道数据的具体结构以及实现操作也无需知道数据的具体结构以及实现操作的算法,这称为对象的的算法,这称为对象的_。n答案答案 封装性封装性382.4 2.4 典型考题分析典型考题分析 n【例【例2-162-16】使用已经存在的类作为基础建】使用已经存在的类作为基础建立新类的定义,这种技术叫做类的立新类的定义,这种技术叫做类的_。n答案答案 继承继承392.4 2.4 典型考题分析典型考题分析 n【例【例2-172-17】一个类允许有多个父类,这种】一个类允许有多个父类,这种继承称为继承称为_。n答案答案 多重继承多重继承 40