计算机程序设计_第1页
计算机程序设计_第2页
计算机程序设计_第3页
计算机程序设计_第4页
计算机程序设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机程序设计第一页,共二十二页,编辑于2023年,星期一第5章计算机程序设计5.1概述

5.2面向过程程序设计5.3面向对象程序设计5.4可视化程序设计第二页,共二十二页,编辑于2023年,星期一5.1概述返回本章目录5.1.1程序设计基础5.1.2程序设计的一般过程5.1.3程序设计语言5.1.4程序设计发展概况第三页,共二十二页,编辑于2023年,星期一5.1.1程序设计基础计算机之所以能自动连续地进行工作,最根本的原因就在于“存储程序”和“程序控制”。

“存储程序”——就是把计算机处理问题的步骤用计算机能够识别的指令编写出来,并送入计算机内部的存储器存储起来。

“程序控制”——就是把事先存储好的程序从存储器取出来,送入CPU执行,计算机才能按照人的意图自动完成指定的工作。因此,程序就是为解决某一问题而编写的语句集合,是将一个实际问题的具体操作用某种程序设计语言描述出来的指令序列。编写程序的过程就是程序设计。程序设计语言就是计算机能够理解和执行的特殊语言。

第四页,共二十二页,编辑于2023年,星期一5.1.2程序设计的一般过程返回本节目录概括地说,程序设计就是分析问题、编写程序、调试程序的过程。用计算机解决实际问题的基本过程如下图所示。程序设计步骤如下:(1)分析要解决的问题,明确任务(2)分析问题,建立数学模型,并选择合适的解决方案(3)确定数据结构和算法:数据结构+算法=程序(4)编写程序(5)调试程序(6)整理资料,交付使用分析问题确定解决方案确定具体算法编写程序调试程序整理文档第五页,共二十二页,编辑于2023年,星期一5.1.3程序设计语言返回本节目录程序设计语言是人们根据描述问题的需要而设计的,是计算机能够直接识别的语言,有一套固定的符号和语法规则,是人与计算机交流所使用的“语言”。

程序设计语言可分成机器语言、汇编语言和高级语言。前两类依赖于计算机硬件,因机器而异,又称为低级语言,而高级语言与计算机硬件基本无关,是目前使用非常广泛的程序设计语言。

1.机器语言机器语言是一种用二进制数“0”和“1”表示计算机各种操作的程序设计语言。一条机器指令能够控制计算机执行一种操作。计算机能够直接理解和执行使用机器语言编写的程序,执行速度快,占用内存少;但难于记忆,编程困难,可读性差,容易出错。机器语言是面向机器的语言,可移植性极差。

第六页,共二十二页,编辑于2023年,星期一5.1.3程序设计语言

2.汇编语言汇编语言是一种用助记符来表示各个基本操作的程序设计语言。如用ADD表示加法操作,SUB表示减法操作等。汇编语言的出现,大大减少了程序编写、阅读、修改、维护等方面的工作量,但汇编语言也是一种面向机器的语言,计算机不能直接执行,通用性和可移植性差,必须经过汇编程序翻译成机器语言程序后才能在计算机上执行,需要程序员对计算机内部结构非常了解。第七页,共二十二页,编辑于2023年,星期一5.1.3程序设计语言返回本节目录

3.高级语言高级语言是一种用接近自然语言和数学语言的语法、符号描述基本操作的程序设计语言。高级语言编写的程序不依赖于具体的机器,程序员编程时无需关心计算机内部的细节,从而大大提高了编程效率。计算机不能直接执行使用高级语言编写的程序,需用专门的翻译程序将其转换成机器语言程序后才能执行。目前,使用较广泛的高级语言有C、C++、VisualBasic、VisualC++、PowerBuilder、Java、Delphi、ASP、JSP、PHP、VisualFoxpro等。第八页,共二十二页,编辑于2023年,星期一5.1.4程序设计发展概况

20世纪60年代,由于程序好坏的评价标准是指令少,运行速度快,占用内存少。这使程序员过分追求语言的表述能力和技巧,程序员往往将注意力集中在问题求解本身,而无暇顾及求解的过程,很少考虑程序结构的合理性和可扩展性。软件开发主要依赖程序员的个人经验,缺乏科学理论和方法作指导,开发出的软件或程序只能靠测试来检查错误,这些因素使得许多大型软件崩溃,软件开发周期长,生产效率低,可靠性及可维护性差,20世纪60年代末最终引发了“软件危机”。

思考问题:程序调试能否保证程序正确?怎样保证程序正确?程序好坏的评价标准是什么?科学指导程序设计的原理和方法是什么?

1968年,E.W.Dijkstra指出:Goto语句是有害的,它造成了程序结构的混乱,高级语言程序设计应取消Goto语句,并由此引发了关于程序设计首先是讲究好的结构,还是讲究效率的讨论。

第九页,共二十二页,编辑于2023年,星期一5.1.4程序设计发展概况

Dijkstra还提出了结构化程序设计思想、概念和标准,希望通过程序静态结构的良好性来保证程序的正确性,并提出了“程序测试只能发现程序中的错误而不能保证程序无错误”的科学论断。同时,Wirth也提出了自顶向下、逐步求精的程序设计方法,将一个复杂的问题分解成若干个相互独立的、简单的模块,再将模块分解成更简单的子模块,直到所有问题能用程序设计语言简单方便地解决。采用这种程序设计方法,能有效地控制程序设计的复杂性,有益于提高程序设计的效率。

20世纪80年代,Gries综合了各种程序设计理论和方法的成果,完成了“TheScienceofProgramming”一书,首次把程序设计从经验、技巧上升为科学,使程序设计从此步入了科学的轨道。

第十页,共二十二页,编辑于2023年,星期一5.2面向过程程序设计返回本章目录5.2.1概述5.2.2基于C语言的面向过程程序设计

第十一页,共二十二页,编辑于2023年,星期一

5.2.1概述面向过程程序设计有三种基本结构:顺序结构、选择结构和循环结构,又称“结构化程序设计”。程序一般由一个主程序(或主函数)和若干个子程序(或函数)组成。程序设计的首要问题是“设计过程”。

后来,人们将程序按功能划分成若干个基本模块,各模块在功能上相对独立,这就是“模块化程序设计”。但它仍属于面向过程的程序设计。它把数据和过程分离成两个相互独立的实体,程序员必须时刻注意所处理的数据,对不同数据作相同处理或对相同数据作不同处理,都要重新编程,程序的可重用性不好。面向过程程序设计中过程的实现取决于数据结构。如果一个数据结构发生变化,将导致许多函数和过程重写。有时几个关键的数据结构发生变化,将导致整个软件系统的结构崩溃。第十二页,共二十二页,编辑于2023年,星期一5.2.2基于C语言的面向过程程序设计

C语言是国际上广泛流行的程序设计语言,适合作为系统描述语言,既可用来写系统软件,也可用来写应用软件。特点如下:

(1)是一种高级语言,但它又提供了低级语言的功能。(2)提供丰富的数据类型,可以实现各种数据结构。(3)提供了丰富的运算符,表达式类型多样化。(4)是结构化的程序设计语言。(5)生成的目标代码质量高,程序执行效率高。(6)可移植性好,可以用于各种类型的计算机和操作系统中。(7)设有预处理功能,提高了程序的可读性和可移植性。(8)语法限制不太严格,程序设计自由度大。综上所述,C语言是一种功能很强的语言,但对程序员要求较高。程序员使用C语言编写程序会感到限制少,灵活性大,可以编写任何类型的程序。

【例5.1】第十三页,共二十二页,编辑于2023年,星期一5.3面向对象程序设计返回本节目录5.3.1概述5.3.2基于C++的面向对象程序设计5.3.3基于Java的面向对象程序设计第十四页,共二十二页,编辑于2023年,星期一5.3.1概述返回本节目录传统程序设计方法的程序缺乏可交换性,程序效率低,可靠性差,程序维护困难。面向对象程序设计是一种通过模仿人类思维方式包括概括、分类、抽象、归纳等)来建立现实世界模型的方法,是崭新的程序设计思想体系。它通过数据抽象,将许多对象中共性的数据和操作这些数据所需要的算法抽取出来。它将数据及数据的操作封装在一起,作为一个相互依存、不可分割的整体来处理,并采用信息隐藏技术,将对象及对象的操作抽象成一种新的数据类型——“类”,并考虑不同对象之间的联系和类的重用性。在面向对象程序设计中,首要的任务就是确定所需要的类,每个类应设置足够的操作,并利用继承机制共享其相同的特性。面向对象程序设计的最大优点是允许“继承”,即在某个类的基础上可以派生出新类。第十五页,共二十二页,编辑于2023年,星期一5.3.2基于C++的面向对象程序设计返回本节目录

C++是在C语言继承了C语言的全部内容,并在C语言的基础上增加了面向对象程序设计的内容。C++既支持传统的面向过程程序设计,又支持新型的面向对象程序设计。因此,C++成为面向对象程序设计的主流语言。

1.C++的特点(1)抽象:是对具有特定属性及行为特征的对象进行概括,从中提炼出这一类对象的共性,并从通用性的角度描述其共有的属性及行为特征。抽象又分为数据抽象和代码抽象,前者描述某类对象的公共属性,后者描述某类对象共有的行为特征。(2)封装和数据隐藏:在面向对象程序设计中,通过封装可以将一部分属性和数据的操作隐藏起来,另一部分作为类的外部接口,使用者可以访问。这样可以对属性和操作的访问权限进行合理控制,减少程序之间的相互影响,降低出错的可能性。第十六页,共二十二页,编辑于2023年,星期一返回本章目录5.3.2基于C++的面向对象程序设计

(3)继承与重用:继承是指新建的类从现有的类那里得到一些已有的特征。现有的类称为“基类”或“父类”,继承基类特征的新建类称为“派生类”或“子类”,由父类产生子类的过程称作“类的派生”。继承有效地增强了系统的可扩充性,C++通过继承来支持软件重用。(4)多态性:在C++的类中,相同的函数名可以有若干个不同的函数体,在调用同一函数时由于环境的不同,可能引起不同的行为,这就称为“多态性”。

2.C++与C语言的关系

C++保持了C语言的简洁、高效和接近汇编语言等优点,同时又对C语言的不足和问题作了很多重要改进。①增加了新的运算符,使C++应用起来更加方便;②改进了类型系统,增加了安全性;③使用“引用”作函数参数为用户编程带来了很大方便;④允许函数重载,允许设置缺省参数,提高了编程的灵活性,减少了冗余;⑤对变量说明更加灵活。

【例5.2】

第十七页,共二十二页,编辑于2023年,星期一5.3.3基于Java的面向对象程序设计返回本节目录

Java是一种广泛使用的网络编程语言,简单,面向对象,解释执行不依赖于机器的结构,具有可移植性、安全性,并且提供了并发机制,是多线程的。Java语言的特性使它可以最大限度地利用网络,Java的小应用程序(Applet)是动态、安全、跨平台的网络应用程序,可在网络上传输而不受CPU和环境的限制。JavaApplet嵌入HTML语言,通过主页发布到Internet。

Java语言的特点如下:(1)简单性;(2)面向对象;(3)分布性;(4)安全性;(5)体系结构中立;(6)可移植性;(7)解释执行;(8)高性能;(9)多线程(10)动态性;(11)丰富的类库

【例5.3】第十八页,共二十二页,编辑于2023年,星期一5.4可视化程序设计5.4.1概述5.4.2基于VisualBasic的可视化程序设计

第十九页,共二十二页,编辑于2023年,星期一5.4.1概述如果一个程序设计语言的语句表达式由一组图符组成,就称为可视化程序设计语言。由该语言编制而成的程序称为可视化程序。与传统程序相比,区别在于程序表达式是由图符还是有字符组成。可视化程序设计简单说就是“所见即所得”,即在设计时,根据头脑中所想象的应用程序界面,通过鼠标以“手绘”的方式在屏幕上“画”出程序界面,而不是编制大量的代码然后再编译生成界面,底层的一些程序代码可以由开发平台自动生成。可视化程序设计一般为用户提供大量的界面元素或称为控件对象。用户只要利用鼠标把这些控件对象拖动到适当位置,然后设置它们的大小、形状、属性等,就可以设计出自己所想要的应用程序界面。第二十页,共二十二页,编辑于2023年,星期一5.4.2基于VisualBasic的可视化程序设计

Vi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论