版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章程序设计基础
2.1程序设计方法与风格为了测试和维护程序,往往还要阅读和跟踪程序,因此程序设计的风格总体而言应该强调简单和清晰,程序必须是可以理解的。可以认为,著名的“清晰第一,效率第二”的论点己成为当今主导的程序设计风格。
要形成良好的程序设计风格,主要应注重和考虑下述一些因素。1.源程序文档化
源程序文档化应考虑如下几点:
(1)符号名的命名。
(2)程序注释。
(3)视觉组织:利用空格、空行、缩进等技巧使程序层次清晰。
2.数据说明的方法
更易于理解和维护3.语句的结构
程序应该简单易懂,语句构造应该简单直接4.输入和输出输入和输出方式和格式应尽可能方便用户的使用
2.2结构化程序设计
2.2.1结构化程序设计方法的原则结构化程序设计方法的主要原则可以概括为:自项向下,逐步求精,模块化,限制使用goto语句。
2.2.2结构化程序的基本结构与特点程序设计语言仅仅使用顺序、选择和循环三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。
1.顺序结构
2.选择结构(又称为分支结构)
3.循环结构(又称为重复结构)
2.2.3结构化程序设计原则和方法的应用
基于对结构化程序设计原则、方法以及结构化程序基本构成结构的掌握和了解,在结构化程序设计的具体实施中,要注意把握如下要素:1.使用程序设计语言中的顺序、选择、循环等有限的控制结构表示程序的控制逻辑;2.选用的控制结构只准许有一个入口和一个出口;3.程序语句组成容易识别的块,每块只有一个入口和一个出口;4.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现;5.语言中所没有的控制结构,应该采用前后一致的方法来模拟;6.严格控制GOTO语句的使用。
2.3面向对象的程序设计
2.3.1面向对象方法(objectoriented)本质上主张从客观世界固有的事物出发来构造系统,提倡用人类在现实生活中常用的思维方法来认识、理解和描述客观事物。
优点:1.与人类习惯的思维方法一致2.稳定性好3.可重用性好传统的软件重用技术是利用标准函数库。对象所固有的封装性,使得对象的内部实现与外界隔离,具有较强的独立性。继承性机制使得子类不仅可以重用其父类的数据结构和程序代码,而且可以在父类代码的基础上方便地修改和扩充,这种修改并不影响对原有类的使用。4.易于开发大型软件产品5.可维护性好
2.3.2面向对象方法的基本概念
1、对象(object)应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象。面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,它由一组表示其静态特征的属性和它可执行的一组操作组成。
属性:对象所包含的信息,它在设计对象时确定,一般只能通过执行对象的操作来改变。
操作:
描述了对象执行的功能,若通过消息传递,还可以为其他对象使用。这个过程已经封装在对象中,用户也看不到。对象的这一特性,即是对象的封装性。
对象有如下一些基本特点:(1)标识惟一性。(2)分类性。(3)多态性。(4)封装性。(5)模块独立性好。
2.类(Class)和实例(Instance)类是具有共同属性、共同方法的对象的集合。
所以,类是对象的抽象,它描述了属于该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例。
3.消息
对象间的这种相互合作需要一个机制协助进行,这样的机制称为“消息”。消息是一个实例与另一个实例之间传递的信息。
消息中只包含传递者的要求,它告诉接受者需要做哪些处理,但并不指示接受者应该怎样完成这些处理。
一个对象能够接受不同形式、不同内容的多个消息;相同形式的消息可以送往不同的对象,不同的对象对于形式相同的消息可以有不同的解释,能够做出不同的反映。一个对象可以同时往多个对象传递信息,两个对象也可以同时向某个对象传递消息。
4.继承(Inheritance)
继承是使用己有的类定义作为基础建立新类的定义技术。广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。一个类直接继承其父类的描述(数据和操作)或特性,子类自动地共享基类中定义的数据和方法。
继承具有传递性。继承分为单继承与多重继承。
单继承:一个类只允许有一个父类,即类等级为树形结构。
多重继承:
一个类允许有多个父类。多重继承的类可以组合多个父类的性质构成所需要的性质。因此,功能更强,使用更方便。但是,使用多重继承时要注意避免二义性。继承性的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余信息。
图多重继承
5.多态性(Polymphism)
对象根据所接受的消息而做出动作,同样的消息被不同的对象接受时可导致完全不同的行动,该现象称为多态性。多态性机制不仅增加了面向对象软件系统的灵活性,进一步减少了信息冗余,利用多态性,用户能够发送一般形式的消息,而将所有的实现细节都留给接受消息的对象。
程序与计算机语言
程序程序是指挥计算机实现某一特定功能的一组命令序列,是指令的有序集合,是由程序计数器控制的一系列语句和指令程序设计程序设计是指设计、编制、调试程序的方法和过程,其内容涉及有关的程序基本概念、编程工具、方法以及方法学等,是目标明确的智力活动。计算机语言计算机语言指用于人与计算机之间通信的语言,是人与计算机之间传递信息的媒介。计算机语言主要分为机器语言、汇编语言和高级语言3种。使用汇编语言和高级语言编写的程序称为源程序,而使用机器语言编写的程序则称为目标程序。语言处理程序
计算机并不能直接接收和执行用汇编语言或高级语言编写的源程序。源程序在输入计算机时,必须经由语言处理程序“翻译”成机器语言形式的目标程序,才能被计算机识别和执行。计算机语言
机器语言机器语言是二进制编码形式的机器指令及其使用规则的集合。它是目前计算机硬件唯一可以直接识别和执行的语言。。汇编语言汇编语言是一种符号语言。每一种处理器都会有自己专属的汇编语言语法规则和编译器。即使是同一种类型的处理器,也可能拥有不同的汇编语言编译器。低级语言包括机器语言和汇编语言,这两种语言都是面向机器的语言高级语言高级语言接近人们日常熟悉的自然语言和数学语言,可读性强,编程方便。目前绝大部分的程序员编写程序时多使用高级语言。高级语言有许多种,使用比较普遍的有C、C++、Pascal、C#、VisualBasic、Delphi、Java、Python、Lisp和Prolog等。程序设计方法
程序设计的过程就是分析要解决的实际问题,得出解决问题的具体方法和步骤,并且用某种计算机语言编写成可执行程序的过程。数据结构算法程序设计程序设计方法两大类
面向过程在解决问题时采用功能分解方法,即将一个系统看作一些功能块的组合,这些功能块可以被进一步分解,直到参与设计和编程的人员可以理解的步骤和过程为止。面向过程的程序设计方法只允许全部程序均由顺序、分支和循环3类基本结构构成。常用的面向过程程序设计的高级语言主要有C语言、Basic语言、Pascal语言、Fortran语言、COBOL语言、Ada语言等。面向对象通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承,帮助人们实现对现实世界的抽象与数字建模。更有利于采用人能理解的方式对复杂系统进行分析、设计与编程。系统可以像搭积木一样被快速开发出来。常用面向对象程序设计的高级语言主要有Java、C++、C#、VisualBasic、Delphi等。两种程序设计方法对比
面向过程程序的可重用性差通讯机制几乎空白数据处理范围较小程序的数据与操作相分离面向对象程序不易理解初学者入门有困难程序的依赖性分析有难度一、选择题1.结构化程序设计主要强调的是()A)程序的规模B)程序的易读性
C)程序的执行效率
D)程序的可移植性
B习题2对建立良好的程序设计风格,下面描述正确的是()A)程序应简单、清晰、可读性好
B)符号名的命名只要符合语法
C)充分考虑程序的执行效率
D)程序的注释可有可无
A3.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送()A)调用语句
B)命令C)口令
D)消息
D4.信息隐蔽的概念与下述哪一种概念直接相关?()A)软件结构定义
B)模块独立性C)模块类型划分
D)模块耦合度
B5.下面对对象概念描述错误的是()A)任何对象都必须有继承性
B)对象是属性和方法的封装体
C)对象间的通讯靠消息传递
D)操作是对象的动态属性
A二、填空题
1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园助教医疗知识
- 新疆警察学院《发光材料与器件》2023-2024学年第一学期期末试卷
- 2024年春运工作总结(33篇)
- 温病透热转气
- 供应猪肉合同范例
- 土地承包解约合同范例
- 退休材料合同范例
- 购车正式合同范例
- 个人和厨师合同范例
- 铺路板购销合同范例
- 天津市河西区 2020-2021学年度第一学期九年级期末质量调查物理试卷(PDF打印版+含答案)
- ERAS在胃肠外科围手术期中的应用和进展陈开波
- 医疗预防保健机构聘用证明
- 三亮三创三比三评会议记录
- 盾构始发施工技术要点PPT(44页)
- 甲烷(沼气)的理化性质及危险特性表
- 促销费用管理办法15
- 剑桥英语 中级班 听力脚本剑桥二
- 职工配偶未就业承诺书
- 质量认证基础知识(共218页).ppt
- GB 13296-2013 锅炉、热交换器用不锈钢无缝钢管(高清版)
评论
0/150
提交评论