1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,二级公共基础知识,第2章 程序设计基础,1,内容提要,程序设计方法与风格,结构化程序设计,面向对象的程序设计方法,对象、方法、属性及继承与多态性,2,2.1 程序设计方法与风格,2.1.1 程序设计方法,结构化设计方法,模块内部程序各部分要按照自顶向下的结构划分,各程序部分应按功能组合,各程序之间的联系尽量通过调用子程序来实现,不用或少用GOTO方式,面向对象程序设计方法,3,2.1.2 程序设计风格,原则:清晰第一,效率第二,1.源程序中的内部文档,符号名的命名:有一定实际含义,程序的注释:,序言
2、性注释,功能性注释,程序的视觉组织:层次清晰,2.数据说明,数据说明的次序规范化,说明语句中变量安排有序化,使用注释来说明复杂数据的结构,4,2.1.2 程序设计风格(续),3语句的结构,在一行内只写一条语句,程序编写应优先考虑清晰性,清晰第一,效率第二,在保证程序正确的基础上再要求提高效率,避免使用临时变量前使程序的可读性下降,避免不必要的转移,尽量使用库函数,避免采用复杂的条件语句,尽量减少使用“否定”条件语句,数据结构要有利于程序的简化,要模块化,使模块功能尽可能单一化,利用信息隐蔽,确保每一个模块的独立性,从数据出发去构造程序,不要修补不好的程序,要重新编写,5,2.1.2 程序设计风
3、格(续),4输入和输出,对输入数据检验数据的合法性,检查输入项的各种重要组合的合理性,输人格式要简单,使得输入的步骤和操作尽可能简单,输人数据时,应允许使用自由格式,应允许缺省值,输入一批数据时,最好使用输入结束标志,在以交互式输入/输出方式进行输人时,要在屏幕上使用提示符明确提示输入的请求,同时在数据输入过程中和输入结束时,应在屏幕上给出状态信息,当程序设计语言对输入格式有严格要求时,应保持输入格式与输入语句的一致性;给所有的输出加注释,并设计输出报表格式,6,2.2.1 结构化程序设计的原则,1自顶向下,2逐步求精,3模块化,4限制使用GOTO语句,9,2.2.2 结构化程序的基本结构与特
4、点,三种基本结构,顺序结构,选择结构,重复结构,10,2.2.2 结构化程序的基本结构与特点(续),顺序结构,11,2.2.2 结构化程序的基本结构与特点(续),选择结构,又称分支结构,简单选择结构,多分支选择结构,12,2.2.2 结构化程序的基本结构与特点(续),重复结构,又称为循环结构,当型,直到型,13,2.2.2 结构化程序的基本结构与特点(续),特点,关系清晰、易读、易理解性好、易维护。,“自顶向下、逐步细化”,提高效率,降低成本,14,2.2.3 结构化程序设计原则和方法的应用,用有限的控制结构,一个入口和一个出口,每块只有一个入口和一个出口,使用嵌套,前后一致,避免GOTO语句
5、15,真题练习,【试题1】结构化程序所要求的基本结构不包括()(2011年3月),A)顺序结构 B)GOTO跳转,C)选择(分支)结构 D)重复(循环)结构,解析:答案为B。结构程序设计三种基本结构为顺序、选择和循环。,【试题2】下列选项中不属于结构化程序设计原则的是()(2009年秋)。,A)可封装 B)自顶向下 C)模块化 D)逐步求精,解析:答案为A。结构化设计的原则有:自顶向下、逐步求精、模块化、限制使用goto语句。,16,【试题3】结构化程序设计的基本原则不包括()(2008年春),A)多态性B)自顶向下C)模块化D)逐步求精,解析:答案为A。,【试题4】下列选项中不属于结构化程
6、序设计方法的是()(2006年春),A)自顶向下 B)逐步求精 C)模块化 D)可复用,解析:答案为D。,17,【试题5】仅由顺序、选择(分支)和重复(循环)结构构成的程序是_,_程序。(2010年秋),解析:答案为结构化。,【试题6】符合结构化原则的三种基本控制结构是:选择结构、循环结构和,(2009年3月),解析:答案为顺序结构。,18,2.3 面向对象的程序设计,2.3.1 关于面向对象方法,对系统的复杂性进行概括、抽象和分类,使软件的设计与现实形成一个由抽象到具体、由简单到复杂这样一个循序渐进的过程,从而解决大型软件研制中存在的效率低、质量难以保证、调试复杂、维护困难等问题。,结构化的
7、分解突出过程,即如何做(How to do)?它强调代码的功能是如何实现的;面向对象的分解突出现实世界和抽象的对象,即做什么(What to do)?,19,2.3.1 关于面向对象方法(续),主要优点,与人类习惯的思维方法一致,稳定性好,可重用性好,易于开发大型软件产品,可维护性好,20,2.3.2 面向对象方法的基本概念,1.对象(Object),对象是基本的运行时认得实体,它既包括数据(属性),也包括作用于数据的操作(行为)。,一个对象把属性和行为封装为一个整体,一个对象通常可由对象名、属性和操作3部分组成,21,2.3.2 面向对象方法的基本概念(续),对象特点,标识惟一性,分类性,多
8、态性,封装性,模块独立性好,22,2.3.2 面向对象方法的基本概念(续),2类和实例,类是具有共同属性、共同操作方法的对象的集合,是对象的抽象,对象是其对应类的一个实例,23,2.3.2 面向对象方法的基本概念(续),3消息,对象之间进行通信的机制,三部分组成,接收消息的对象的名称,消息标识符(消息名),零个或多个参数,24,2.3.2 面向对象方法的基本概念(续),4.继承,继承是父类和子类之间共享数据的方法的机制,一个子类可以继承它的父类(或祖先类)中的属性和操作,子类中可以定义自己的属性和操作,单重继承、多重继承,25,2.3.2 面向对象方法的基本概念(续),5.多态性,不同的对象收
9、到同一消息可以产生完全不同的结构,这一现象叫做多态性,优点:灵活性、可重用性、可扩充性。,26,真题练习,【试题1】下面选项中不属于面向对象程序设计特征的是()(2007年春)A)继承性B)多态性,C)类比性D)封装性,解析:答案为C。,【试题2】在面向对象方法中,实现信息隐蔽是依靠()(2007年秋),A)对象的继承B)对象的多态C)对象的封装D)对象的分类,解析:答案为C。,27,【试题3】在面向对象方法中,不属于“对象”基本特点的是()(2008年秋)A)一致性 B)分类性 C)多态性 D)标识唯一性,解析:答案为A。【试题4】面向对象方法中,继承是指()(2010秋),A)一组对象所具有的相似性质,B)一个对象具有另一个对象的性质,C)各对象之间的共同性质,D)类之间共享属性和操作的机制,解析:答案为D。,28,【试题5】定义无符号整数类为UInt,下面可以作为类T实例化值的是()(2011年3月),A)-369 B)369,C)0.369 D)整数集合1,2,3,4,5,解析:答案为D。,【试题6】在面向对象方法中,类的实例称为,。(2005年春),解析:答案为对象。,【试题7】在面向对象方法中,描述的是具有相似属性与操作的一组对象。(2006年春),解析:答案为类。,29,






