




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第第2章章 程序设计基础程序设计基础 2.1 程序设计方法与风格程序设计方法与风格 为了测试和维护程序,往往还要阅读为了测试和维护程序,往往还要阅读和跟踪程序,因此程序设计的风格总和跟踪程序,因此程序设计的风格总体而言应该强调简单和清晰,程序必体而言应该强调简单和清晰,程序必须是可以理解的。可以认为,著名的须是可以理解的。可以认为,著名的“清晰第一,效率第二清晰第一,效率第二”的论点己成的论点己成为当今主导的程序设计风格。为当今主导的程序设计风格。 要形成良好的程序设计风格,主要形成良好的程序设计风格,主要应注重和考虑下述一些因素。要应注重和考虑下述一些因素。 1源程序文档化源程序文档化 源
2、程序文档化应考虑如下几点:源程序文档化应考虑如下几点: (1)符号名的命名。)符号名的命名。 (2)程序注释。)程序注释。 (3)视觉组织:利用空格、空行、)视觉组织:利用空格、空行、缩进等技巧使程序层次清晰。缩进等技巧使程序层次清晰。 2数据说明的方法数据说明的方法 更易于理解和维护更易于理解和维护3语句的结构语句的结构 程序应该简单易懂,语句构造应该程序应该简单易懂,语句构造应该简单直接简单直接4输入和输出输入和输出 输入和输出方式和格式应尽可能方输入和输出方式和格式应尽可能方便用户的使用便用户的使用 2.2 结构化程序设计结构化程序设计 2.2.1结构化程序设计方法的原则结构化程序设计方
3、法的原则 结构化程序设计方法的主要原则可结构化程序设计方法的主要原则可以概括为以概括为: :自项向下,逐步求精,模块自项向下,逐步求精,模块化,限制使用化,限制使用goto语句语句。 2.2.2 结构化程序的基本结构与特点结构化程序的基本结构与特点 程序设计语言仅仅使用程序设计语言仅仅使用顺序顺序、选择选择和和循环循环三种基本控制结构就足以表达三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。出各种其他形式结构的程序设计方法。 1 1顺序结构顺序结构2 2选择结构选择结构( (又称为分支结构又称为分支结构) ) 3循环结构循环结构 ( (又称为重复结构又称为重复结构) ) 2.2.3
4、结构化程序设计原则和方法的应用结构化程序设计原则和方法的应用 基于对结构化程序设计原则、方法以及结构化程序基本基于对结构化程序设计原则、方法以及结构化程序基本构成结构的掌握和了解,在结构化程序设计的具体实施中,构成结构的掌握和了解,在结构化程序设计的具体实施中,要注意把握如下要素:要注意把握如下要素:1 1使用程序设计语言中的使用程序设计语言中的顺序、选择、循环顺序、选择、循环等有限的控等有限的控制结构表示程序的控制逻辑;制结构表示程序的控制逻辑;2 2选用的控制结构只准许有一个入口和一个出口;选用的控制结构只准许有一个入口和一个出口;3 3程序语句组成容易识别的块,每块只有一个入口和一程序语
5、句组成容易识别的块,每块只有一个入口和一个出口;个出口;4 4复杂结构应该用嵌套的基本控制结构进行组合复杂结构应该用嵌套的基本控制结构进行组合嵌套嵌套来来实现;实现;5 5语言中所没有的控制结构,应该采用前后一致的方法语言中所没有的控制结构,应该采用前后一致的方法来模拟;来模拟;6 6严格控制严格控制GOTOGOTO语句的使用。语句的使用。 2.3 面向对象的程序设计面向对象的程序设计 2.3.1面向对象方法面向对象方法(object oriented) 本质上主张从客观世界固有的事物出本质上主张从客观世界固有的事物出发来构造系统,提倡用人类在现实生发来构造系统,提倡用人类在现实生活中常用的思
6、维方法来认识、理解和活中常用的思维方法来认识、理解和描述客观事物。描述客观事物。 优点优点:1 1与人类习惯的思维方法一致与人类习惯的思维方法一致2 2稳定性好稳定性好 3 3可重用性好可重用性好传统的软件重用技术是利用标准函数库。传统的软件重用技术是利用标准函数库。 对象所固有的封装性,使得对象的内部实现与外界对象所固有的封装性,使得对象的内部实现与外界隔离,具有较强的独立性。继承性机制使得子类不仅隔离,具有较强的独立性。继承性机制使得子类不仅可以重用其父类的数据结构和程序代码,而且可以在可以重用其父类的数据结构和程序代码,而且可以在父类代码的基础上方便地修改和扩充,这种修改并不父类代码的基
7、础上方便地修改和扩充,这种修改并不影响对原有类的使用。影响对原有类的使用。 4 4易于开发大型软件产品易于开发大型软件产品 5 5可维护性好可维护性好 2.3.2 面向对象方法的基本概念面向对象方法的基本概念 1、对象(、对象(object) 应用领域中有意义的、与所要解决应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为的问题有关系的任何事物都可以作为对象。对象。 面向对象的程序设计方法中涉及的面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,个实体,是构成系统的一个基本单位,它由一组表示其静态特征的属
8、性和它它由一组表示其静态特征的属性和它可执行的一组操作组成。可执行的一组操作组成。 属性:属性: 对象所包含的信息,它在设计对象时对象所包含的信息,它在设计对象时确定,一般只能通过执行对象的操作确定,一般只能通过执行对象的操作来改变。来改变。 操作:操作: 描述了对象执行的功能,若通过消息描述了对象执行的功能,若通过消息传递,还可以为其他对象使用。这个传递,还可以为其他对象使用。这个过程已经封装在对象中,用户也看不过程已经封装在对象中,用户也看不到。对象的这一特性,即是对象的封到。对象的这一特性,即是对象的封装性。装性。 对象有如下一些基本特点:对象有如下一些基本特点:(1)标识惟一性。)标识
9、惟一性。(2)分类性。)分类性。(3)多态性。)多态性。(4)封装性。)封装性。(5)模块独立性好。)模块独立性好。 2类(类(Class)和实例(和实例(Instance) 类是具有共同属性、共同方法的对类是具有共同属性、共同方法的对象的集合。象的集合。 所以,所以,类是对象的抽象类是对象的抽象,它描述了,它描述了属于该对象类型的所有对象的性质,而属于该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例。一个对象则是其对应类的一个实例。 3消息消息 对象间的这种相互合作需要一个机制协对象间的这种相互合作需要一个机制协助进行,这样的机制称为助进行,这样的机制称为“消息消息”。消息是一个
10、实例与另一个实例之间传消息是一个实例与另一个实例之间传递的信息。递的信息。 消息中只包含传递者的要求,它告诉接受消息中只包含传递者的要求,它告诉接受者需要做哪些处理,但并不指示接受者应者需要做哪些处理,但并不指示接受者应该怎样完成这些处理。该怎样完成这些处理。 一个对象能够接受不同形式、不同内容的一个对象能够接受不同形式、不同内容的多个消息;相同形式的消息可以送往不同多个消息;相同形式的消息可以送往不同的对象,不同的对象对于形式相同的消息的对象,不同的对象对于形式相同的消息可以有不同的解释,能够做出不同的反映。可以有不同的解释,能够做出不同的反映。一个对象可以同时往多个对象传递信息,一个对象可
11、以同时往多个对象传递信息,两个对象也可以同时向某个对象传递消息。两个对象也可以同时向某个对象传递消息。 4继承(继承(Inheritance) 继承是使用己有的类定义作为基础建继承是使用己有的类定义作为基础建立新类的定义技术。立新类的定义技术。 广义地说,继承是指能够直接获得已广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它有的性质和特征,而不必重复定义它们。们。 一个类直接继承其父类的描述(数一个类直接继承其父类的描述(数据和操作)或特性,子类自动地共享据和操作)或特性,子类自动地共享基类中定义的数据和方法。基类中定义的数据和方法。 交通工具 飞行器 汽车 船 轿车 货车 继
12、承具有传递性。继承具有传递性。 继承分为单继承与多重继承。继承分为单继承与多重继承。 单继承单继承: : 一个类只允许有一个父类,即类等级为树形一个类只允许有一个父类,即类等级为树形结构。结构。 多重继承多重继承: : 一个类允许有多个父类。多重继承的类可以一个类允许有多个父类。多重继承的类可以组合多个父类的性质构成所需要的性质。因组合多个父类的性质构成所需要的性质。因此,功能更强,使用更方便。此,功能更强,使用更方便。 但是,使用多重继承时要注意避免二义性。但是,使用多重继承时要注意避免二义性。继承性的优点:继承性的优点:相似的对象可以共享程序代码和数据相似的对象可以共享程序代码和数据结构,
13、从而大大减少了程序中的冗余结构,从而大大减少了程序中的冗余信息。信息。 水上交通工具 陆上交通工具 水陆两用交通工具 图图 多重继承多重继承 5多态性(多态性(Polymphism) 对象根据所接受的消息而做出动作,对象根据所接受的消息而做出动作,同样的消息被不同的对象接受时可导致同样的消息被不同的对象接受时可导致完全不同的行动,该现象称为多态性。完全不同的行动,该现象称为多态性。 多态性机制不仅增加了面向对象软多态性机制不仅增加了面向对象软件系统的灵活性,进一步减少了信息冗件系统的灵活性,进一步减少了信息冗余,利用多态性,用户能够发送一般形余,利用多态性,用户能够发送一般形式的消息,而将所有
14、的实现细节都留给式的消息,而将所有的实现细节都留给接受消息的对象。接受消息的对象。 程序程序与计算机语言与计算机语言 程序 程序是指挥计算机实现某一特定功能的一组命令序列,是指令的有序集合,是由程序计数器控制的一系列语句和指令程序设计 程序设计是指设计、编制、调试程序的方法和过程,其内容涉及有关的程序基本概念、编程工具、方法以及方法学等,是目标明确的智力活动。计算机语言 计算机语言指用于人与计算机之间通信的语言,是人与计算机之间传递信息的媒介。计算机语言主要分为机器语言、汇编语言和高级语言3种。使用汇编语言和高级语言编写的程序称为源程序,而使用机器语言编写的程序则称为目标程序。语言处理程序语言
15、处理程序 计算机并不能直接接收和执行用汇编语言或高级语言编写的源程序。源程序在输入计算机时,必须经由语言处理程序“翻译”成机器语言形式的目标程序,才能被计算机识别和执行。汇 编 语 言 源 程 序 汇 编 程 序 进 行 汇 编 机 器 语 言 目 标 程 序 ( a) 汇 编 程 序 高 级 语 言 源 程 序 编 译 程 序 进 行 编 译 机 器 语 言 目 标 程 序 ( b) 编 译 程 序 高 级 语 言 源 程 序 解 释 程 序 解 释 执 行 ( c) 解 释 程 序 运 行 结 果 计算机语言计算机语言 机器语言 机器语言是二进制编码形式的机器指令及其使用规则的集合。它是目
16、前计算机硬件唯一可以直接识别和执行的语言。汇编语言 汇编语言是一种符号语言。每一种处理器都会有自己专属的汇编语言语法规则和编译器。即使是同一种类型的处理器,也可能拥有不同的汇编语言编译器。低级语言包括机器语言和汇编语言,这两种语言都是面向机器的语言高级语言 高级语言接近人们日常熟悉的自然语言和数学语言,可读性强,编程方便。目前绝大部分的程序员编写程序时多使用高级语言。高级语言有许多种,使用比较普遍的有C、C+、Pascal、C#、Visual Basic、Delphi、Java、Python、Lisp和Prolog等。程序设计程序设计方法方法 程序设计的过程就是分析要解决的实际问题,得出解决问
17、题的具体方法和步骤,并且用某种计算机语言编写成可执行程序的过程。数据结构算法程序设计程序设计方法两大类程序设计方法两大类 面向过程 在解决问题时采用功能分解方法,即将一个系统看作一些功能块的组合,这些功能块可以被进一步分解,直到参与设计和编程的人员可以理解的步骤和过程为止。 面向过程的程序设计方法只允许全部程序均由顺序、分支和循环3类基本结构构成。 常用的面向过程程序设计的高级语言主要有C语言、Basic语言、Pascal语言、Fortran语言、COBOL语言、Ada语言等。面向对象 通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承,帮助人们实现对现实世界的抽象
18、与数字建模。 更有利于采用人能理解的方式对复杂系统进行分析、设计与编程。系统可以像搭积木一样被快速开发出来。 常用面向对象程序设计的高级语言主要有Java、C+、C# 、Visual Basic、Delphi等。两种程序设计方法对比两种程序设计方法对比 面向过程 程序的可重用性差 通讯机制几乎空白 数据处理范围较小 程序的数据与操作相分离面向对象 程序不易理解 初学者入门有困难 程序的依赖性分析有难度一、选择题一、选择题1结构化程序设计主要强调的是结构化程序设计主要强调的是( ) A)程序的规模程序的规模 B)程序的易读性程序的易读性 C)程序的执行效率程序的执行效率 D)程序的可移植性程序的可移植性 B习习 题题2对建立良好的程序设计风格,下面对建立良好的程序设计风格,下面描述正确的是描述正确的是 ( ) A)程序应简单、清晰、可读性好程序应简单、清晰、可读性好 B)符号名的命名只要符合语法符号名的命名只要符合语法 C)充分考虑程序的执行效率充分考虑程序的执行效率 D)程序的注释可有可无程序的注释可有可无 A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石家庄人民医学高等专科学校《专业英语电气》2023-2024学年第二学期期末试卷
- 贵州工贸职业学院《建筑设计Ⅱ》2023-2024学年第二学期期末试卷
- 西南民族大学《光电子材料与器件双语》2023-2024学年第二学期期末试卷
- 上饶职业技术学院《高分子合成工艺及设备》2023-2024学年第二学期期末试卷
- 西南民族大学《连续铸钢》2023-2024学年第二学期期末试卷
- 伊犁职业技术学院《电视节目主持》2023-2024学年第二学期期末试卷
- 天津仁爱学院《Matlab编程与应用》2023-2024学年第二学期期末试卷
- 南京工业职业技术大学《工程制图与CAD设计》2023-2024学年第二学期期末试卷
- 云南交通职业技术学院《单片机原理及应用》2023-2024学年第二学期期末试卷
- 山东工艺美术学院《大学基础听说4》2023-2024学年第二学期期末试卷
- 小学美术1色彩的情感课件
- 奥沙利铂过敏反应
- 项目部临时动火作业审批表
- 机载直流用电设备电源特性要求及试验方法
- 项目质量管理评价表
- 饮料生产公司应急预案汇编参考范本
- 养老院老人入(出)院流程图
- 最新-临时救助申请审核审批表模板
- 蓝色大气商务商业计划书PPT模板
- 苏教版二年级(下册)科学全册单元测试卷含期中期末(有答案)
- 三年级数学下册口算脱式竖式练习题
评论
0/150
提交评论