《大学计算机基础复习资料第9章程序设计基础.ppt》由会员分享,可在线阅读,更多相关《大学计算机基础复习资料第9章程序设计基础.ppt(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第9章章 程序设计基础程序设计基础大学计算机基础本章内容本章内容9.1 9.1 程序设计程序设计9.2 9.2 结构化程序设计结构化程序设计9.3 9.3 面向对象程序设计面向对象程序设计大学计算机基础大学计算机基础9.1 9.1 程序设计程序设计大学计算机基础9.1 程序设计9.1.1 9.1.1 程序设计的方法程序设计的方法9.1.2 9.1.2 程序设计的风格程序设计的风格大学计算机基础大学计算机基础9.1.1 程序设计的方法程序设计的方法n程序设计程序设计 n程序设计方法程序设计方法程序设计是一门技术,需要相应的理论、技术、程序设计是一门技术,需要相应的理论、技术、方法和工具来支持。
2、方法和工具来支持。程序设计方法是关于以什么观点来研究问题并进程序设计方法是关于以什么观点来研究问题并进行求解,以及如何进行系统构造的软件方法学。行求解,以及如何进行系统构造的软件方法学。就程序设计方法和技术的发展而言,主要经过了就程序设计方法和技术的发展而言,主要经过了结构化程序设计和面向对象程序设计阶段。结构化程序设计和面向对象程序设计阶段。大学计算机基础大学计算机基础9.1.2 程序设计的风格程序设计的风格 要形成良好的程序设计风格,主要应注要形成良好的程序设计风格,主要应注重和考虑下述一些因素:源程序文档化、重和考虑下述一些因素:源程序文档化、数据说明、语句构造、输入输出方法、效数据说明
3、、语句构造、输入输出方法、效率等。率等。大学计算机基础大学计算机基础9.1.2 程序设计的风格(续)程序设计的风格(续)n 源程序文档化源程序文档化p 符号名的命名符号名的命名 符符号号名名即即标标识识符符,包包括括模模块块名名、变变量量名名。常常量量名名、标标号号名名、子子程程序序名名以以及及数数据据区区名名、缓缓冲冲区区名名等等。这这些些名名字字应应能能反反映映它它所所代代表表的的实实际际东东西西,应应有有一一定定的的实实际际意意义义,使使其其能能够够见见名名知知意意,有有助助于于对对程程序序功功能能的的理理解解。例例如如,表表示示次次数数的的量量用用timestimes,表表示示总总量量
4、用用totaltotal,表表示示平平均均值值用用averageaverage,表表示示和和的量用的量用sum sum 等。为达此目的,不应限制名字的长度。等。为达此目的,不应限制名字的长度。大学计算机基础大学计算机基础9.1.2 程序设计的风格(续)程序设计的风格(续)p 程序的注释程序的注释 夹夹在在程程序序中中的的注注释释是是程程序序员员与与日日后后的的程程序序读读者者之之间间通通信信的的重重要要手手段段。正正确确的的注注释释能能够够帮帮助助读读者者理理解解程程序序,可可为为后后续续阶阶段段进进行行测测试试和和维维护护,提提供供明明确确的的指指导导。因因此此注注释释决决不不是是可可有有可
5、可无无的的,大大多多数数程程序序设设计计语语言言允允许许使使用用自自然然语语言言写写注注释释,这这给给阅阅读读程程序序带带来来很很大大的的方方便便。一一些些正正规规的的程程序序文本中,注释行的数量占到整个源程序的文本中,注释行的数量占到整个源程序的13 到到12。注释分为注释分为序言性注释序言性注释和和功能性注释功能性注释。序序言言性性注注释释通通常常置置于于每每个个程程序序模模块块的的开开头头部部分分,它它应应当当给给出出程程序序的的整整体体说说明明,对对于于理理解解程程序序本本身具有引导作用。身具有引导作用。功功能能性性注注释释嵌嵌在在源源程程序序体体中中,用用以以描描述述其其后后的的语语
6、句句或或程程序序段段是是在在作作什什么么工工作作,也也就就是是解解释释下下面面要要“作作什什么么”,或或是是执执行行了了下下面面的的语语句句会会怎怎么么样样。而而不不要要解解释释下下面面怎怎么么作作,因因为为解解释释怎怎么作常常是与程序本身重复的。么作常常是与程序本身重复的。大学计算机基础大学计算机基础9.1.2 程序设计的风格(续)程序设计的风格(续)p 视觉组织视觉组织空格、空行和移行空格、空行和移行 为使程序的结构一目了然,可以在程序中利用空格、空行、为使程序的结构一目了然,可以在程序中利用空格、空行、缩进等技巧使程序层次清晰。缩进等技巧使程序层次清晰。IFIF()THENTHEN IF
7、 IF()THENTHEN ELSE ELSE ENDIF ENDIF ELSE ELSE ENDIF ENDIF大学计算机基础大学计算机基础9.1.2 程序设计的风格(续)程序设计的风格(续)n数据说明数据说明p 数数据据说说明明的的顺顺序序应应规规范范,使使数数据据属属性性容容易易查查找找,也也有有利利于于测测试试、排排错错和和维维护护。原原则则上上,数数据据说说明明的的次次序序与与语语法无关,其次序是任意的。法无关,其次序是任意的。p 同同一一说说明明语语句句中中变变量量说说明明有有序序化化,当当多多个个变变量量名名用用一一个语句说明时,应当对这些变量按字母的顺序排。个语句说明时,应当对
8、这些变量按字母的顺序排。p 使用注释说明复杂数据结构。使用注释说明复杂数据结构。大学计算机基础大学计算机基础9.1.2 程序设计的风格(续)程序设计的风格(续)n语句构造语句构造p 构造单个语句是编码阶段的任务;语句构造力求简构造单个语句是编码阶段的任务;语句构造力求简单直接,不能为了追求效率而使语句复杂化。单直接,不能为了追求效率而使语句复杂化。p 为了便于阅读和理解,不要一行多个语句。不同层次为了便于阅读和理解,不要一行多个语句。不同层次的语句应采用缩进形式,使程序的逻辑结构和功能特征更的语句应采用缩进形式,使程序的逻辑结构和功能特征更加清晰。要避免复杂的判定条件,避免多重的循环嵌套。加清
9、晰。要避免复杂的判定条件,避免多重的循环嵌套。表达式中使用括号以提高运算次序的清晰度等等。表达式中使用括号以提高运算次序的清晰度等等。大学计算机基础大学计算机基础9.1.2 程序设计的风格(续)程序设计的风格(续)n 输入输出方法输入输出方法p 输入操作步骤和输入格式尽量简单输入操作步骤和输入格式尽量简单p 应应检检查查输输入入数数据据的的合合法法性性、有有效效性性,报报告告必必要要的的输输入入状状态信息即及错误信息态信息即及错误信息p 输入一批数据时,使用数据或文件结束标志,而不要用输入一批数据时,使用数据或文件结束标志,而不要用计算来控制计算来控制p 交互式输入时,提供可用的选择和边界值交
10、互式输入时,提供可用的选择和边界值p 当程序设计语言有严格的格式要求时,应保持输入格当程序设计语言有严格的格式要求时,应保持输入格式的一致性式的一致性p 输入数据表格化、图形化输入数据表格化、图形化大学计算机基础大学计算机基础9.1.2 程序设计的风格(续)程序设计的风格(续)n效率效率 效率是指处理机时间和存储空间的使用,对效率效率是指处理机时间和存储空间的使用,对效率的追求应明确以下几点:的追求应明确以下几点:p 效率是一个性能要求,目标在需求分析时给出效率是一个性能要求,目标在需求分析时给出p 追追求求效效率率要要建建立立在在不不损损害害程程序序可可读读性性或或可可靠靠性性的的基基础础上
11、上,要先使程序正确、清晰,再提高程序效率要先使程序正确、清晰,再提高程序效率 p 提提高高程程序序效效率率的的根根本本途途径径在在于于选选择择良良好好的的设设计计方方法法、良良好的数据结构算法,而不是靠编程时对程序语句做调整好的数据结构算法,而不是靠编程时对程序语句做调整大学计算机基础大学计算机基础9.2 9.2 结构化程序设计结构化程序设计大学计算机基础9.2 结构化程序设计9.2.1 9.2.1 结构化程序设计的原则结构化程序设计的原则9.2.2 9.2.2 结构化程序设计的基本结构和特点结构化程序设计的基本结构和特点9.2.3 9.2.3 结构化程序设计原则和方法的应用结构化程序设计原则
12、和方法的应用大学计算机基础大学计算机基础9.2.1 结构化程序设计的原则结构化程序设计的原则n自顶向下自顶向下n逐步求精逐步求精 程序设计时,应先考虑总体,后考虑细节;先考虑程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。先从最上层总目标开全局目标,后考虑局部目标。先从最上层总目标开始设计,逐步使问题具体化。始设计,逐步使问题具体化。对复杂问题,应设计一些子目标作过渡,逐步细化。对复杂问题,应设计一些子目标作过渡,逐步细化。大学计算机基础大学计算机基础9.2.1 结构化程序设计的原则(续)结构化程序设计的原则(续)n模块化模块化n限制使用限制使用gotogoto语句语句模
13、模块块化化是是把把程程序序要要解解决决的的总总目目标标分分解解为为分分目目标标,再再进进一一步步分分解解为为具具体体的的小小目目标标,把把每每个个小小目目标标称称为一个模块。为一个模块。gotogoto语句的使用会导致程序流程的混乱,因此应语句的使用会导致程序流程的混乱,因此应限制使用。限制使用。大学计算机基础大学计算机基础9.2.2 结构化程序设计的基本结构和特点结构化程序设计的基本结构和特点三种基本控制结构三种基本控制结构 n 顺序结构顺序结构n 选择结构选择结构n 循环结构循环结构程程序序优优点点是是:结结构构良良好好、各各模模块块间间的的关关系系清清晰晰简简单单、每每一一模模块块内内部
14、部由由基基本本单单元元组组成成,设设计计出出的的程程序序清清晰晰易易读读、可可理理解解性性好好、容容易易设设计计、容容易易验验证证其其正正确确性性、也容易维护。也容易维护。大学计算机基础大学计算机基础 结构化程序设计原则和方法的应用结构化程序设计原则和方法的应用n 程序设计过程中的原则:程序设计过程中的原则:自顶向下,逐步细化,由粗到细,一步步展开,自顶向下,逐步细化,由粗到细,一步步展开,把一个模块的功能逐步分解,细化为一系列具体把一个模块的功能逐步分解,细化为一系列具体的步骤,进而翻译成一系列用某种程序设计语言的步骤,进而翻译成一系列用某种程序设计语言写成的程序。写成的程序。大学计算机基础
15、大学计算机基础 结构化程序设计原则和方法的应用结构化程序设计原则和方法的应用n在具体实施中,要在具体实施中,要注意注意以下几点:以下几点:p 使用语言中的顺序、选择、循环等有限的基本控制结使用语言中的顺序、选择、循环等有限的基本控制结构表示程序逻辑。构表示程序逻辑。p 程序语句组成容易识别的块,每块只有一个入口和一程序语句组成容易识别的块,每块只有一个入口和一个出口。个出口。p 严格控制严格控制goto语句。语句。p 选用的控制结构只准许有一个入口和一个出口。选用的控制结构只准许有一个入口和一个出口。p 复杂结构应该用基本控制结构进行组合嵌套来实现。复杂结构应该用基本控制结构进行组合嵌套来实现
16、。p 语言中没有的控制结构,可用一段等价的程序段模拟,但语言中没有的控制结构,可用一段等价的程序段模拟,但要求该程序段在整个系统中应前后一致。要求该程序段在整个系统中应前后一致。大学计算机基础大学计算机基础9.3 9.3 面向对象程序设计面向对象程序设计大学计算机基础9.3 面向对象程序设计9.3.1 9.3.1 面向对象程序设计概述面向对象程序设计概述9.3.2 9.3.2 面向对象方法的特点面向对象方法的特点9.3.3 9.3.3 面向对象程序设计的相关概念面向对象程序设计的相关概念 大学计算机基础大学计算机基础 面向对象程序设计概述面向对象程序设计概述 是是一一种种把把面面向向对对象象的
17、的思思想想运运用用于于软软件件开开发发过过程程中中,指指导导开开发发活活动动的的系系统统方方法法,简简称称OOOO方方法法,是是建建立立在在“对对象象”概概念念(对对象象、类类和和继继承承)基基础上的方法学。础上的方法学。n 面向对象程序设计方法面向对象程序设计方法大学计算机基础大学计算机基础 面向对象程序设计概述(续)面向对象程序设计概述(续)对对问问题题空空间间进进行行自自然然分分割割,以以更更接接近近人人类类思思维维的的方方式式,建建立立问问题题域域模模型型,以以便便对对客客观观实实体体进进行行结结构构模模拟拟和和行行为为模模拟拟,从从而而使使所所设设计计出出的的软软件件尽尽可可能能直直
18、接接地地描描述述现现实实世世界界,构构造造出出模模块块化化的的、可可重重用用的的、维维护护性性好好的的软软件件,并并能能够够控控制制软软件件的的复复杂性和降低开发维护费用。杂性和降低开发维护费用。n 面向对象程序设计基本思想面向对象程序设计基本思想大学计算机基础大学计算机基础 面向对象方法的特点面向对象方法的特点n系统由对象构成,对象是一个包含属性和操作两方系统由对象构成,对象是一个包含属性和操作两方面的独立单元,对象之间通过消息传递联系。面的独立单元,对象之间通过消息传递联系。n 面向对象方法按照人类的自然思维方式,面对面向对象方法按照人类的自然思维方式,面对客观世界建立软件系统模型。客观世
19、界建立软件系统模型。n 对对象象、类类、继继承承、封封装装、消消息息等等基基本本概概念念符符合合人类的自然思维方式。人类的自然思维方式。n 有利于对业务领域和系统责任的理解,有利于人有利于对业务领域和系统责任的理解,有利于人员的交流。员的交流。大学计算机基础大学计算机基础 面向对象方法的特点(续)面向对象方法的特点(续)n 面面向向对对象象的的封封装装机机制制使使开开发发人人员员可可以以把把最最稳稳定定的的部部分分(即即对对象象)作作为为构构筑筑系系统统的的基基本本单单位位,而而把把容容易易发发生生变变化化的的部部分分(即即属属性性与与操操作作)封封装装在在对对象象之之内内。对对象象之之间间通
20、通过过接接口口联联系系,使使得得需需求求变变化化的的影影响响尽可能地限制在对象的内部。尽可能地限制在对象的内部。n 面向对象方法支持软件复用。面向对象方法支持软件复用。n 对象具有封装性和信息隐蔽等特性,使其容易实现对象具有封装性和信息隐蔽等特性,使其容易实现软件复用。软件复用。n面向对象方法对需求变化有较好的适应性。面向对象方法对需求变化有较好的适应性。大学计算机基础大学计算机基础 面向对象方法的特点(续)面向对象方法的特点(续)n系系统统出出错错时时容容易易定定位位和和修修改改,而而且且不不至至于于牵牵一一发发而而动全身。动全身。n 对对象象类类可可以以派派生生成成新新类类,类类可可以以产
21、产生生实实例例对对象象,从而实现了对象类数据结构和操作代码的软件复用从而实现了对象类数据结构和操作代码的软件复用。n 面面向向对对象象程程序序设设计计语语言言的的开开发发环环境境一一般般预预定定义义了了系系统统动动态态链链接接库库,提提供供大大量量公公用用程程序序代代码码,提提高高了了开开发发效率和质量。效率和质量。n 面向对象的软件系统可维护性好。面向对象的软件系统可维护性好。大学计算机基础大学计算机基础9.3.3 面向对象程序设计的相关概念面向对象程序设计的相关概念n对象对象 n消息消息 对象是程序的基本单位,是一组数据(属性)和对象是程序的基本单位,是一组数据(属性)和施加于这些数据上的
22、一组操作代码(操作)构成施加于这些数据上的一组操作代码(操作)构成的逻辑实体。的逻辑实体。消息是为了实现某一功能而要求某个对象执行其消息是为了实现某一功能而要求某个对象执行其中某个功能操作的规格说明。对象之间的相互服中某个功能操作的规格说明。对象之间的相互服务是通过消息来连接实现的。务是通过消息来连接实现的。大学计算机基础大学计算机基础9.3.3 面向对象程序设计的相关概念(续)面向对象程序设计的相关概念(续)n 属性、事件和方法属性、事件和方法p 属性是对象具有的特征或某一方面的行为。属性是对象具有的特征或某一方面的行为。p 事事件件是是指指对对象象能能够够识识别别的的动动作作,可可以以编编
23、写写相相应应的的代代码码对对此此动动作作进进行行响响应应,事事件件可可由由系系统统发生,也可由用户执行某种操作来发生。发生,也可由用户执行某种操作来发生。p 方方法法是是对对象象能能够够执执行行的的操操作作,是是对对象象具具有有的功能体现,是实现每条消息具体功能的手段。的功能体现,是实现每条消息具体功能的手段。大学计算机基础大学计算机基础9.3.3 面向对象程序设计的相关概念(续)面向对象程序设计的相关概念(续)n继承继承继继承承是是一一个个类类(子子类类)直直接接使使用用另另一一个个类类(父父类类)的的所所有有属属性性和和方方法法(权权限限为为私私有有的的属属性性和和方方法法除除外外)。继承
24、具有传递性。继承具有传递性。封封装装性性说说明明包包含含和和隐隐藏藏对对象象信信息息,如如内内部部数数据据结结构构和和代代码码的的能能力力。封封装装使使操操作作对对象象的的内内部部复复杂杂性性与与应用程序的其他部分隔离开来。应用程序的其他部分隔离开来。n 封装封装大学计算机基础大学计算机基础9.3.3 面向对象程序设计的相关概念(续)面向对象程序设计的相关概念(续)n封装封装 封装性说明包含和隐藏对象信息,如内部数据结构封装性说明包含和隐藏对象信息,如内部数据结构和代码的能力。封装使操作对象的内部复杂性与应和代码的能力。封装使操作对象的内部复杂性与应用程序的其他部分隔离开来。用程序的其他部分隔离开来。n 多态性多态性多多态态性性是是指指一一些些关关联联的的类类包包含含同同名名的的方方法法程程序序,但但方方法法程程序序的的内内容容可可以以不不同同,具具体体调调用用哪哪种种方方法法程程序序在运行时根据对象的类确定。在运行时根据对象的类确定。大学计算机基础大学计算机基础