C++程序设计教程.ppt
《C++程序设计教程.ppt》由会员分享,可在线阅读,更多相关《C++程序设计教程.ppt(360页珍藏版)》请在三一办公上搜索。
1、1,面向对象的程序设计语言C+,Welcome to learn C+!讲授:刘韶涛 副教授E-,2,第一部分 C+语言基础,本部分是学习C+语言的基础,包括以下几个方面:1.C+概述2.结构化程序设计方法与面向对象程序设计方法的各自特点、区别和相互联系。3面向对象的程序设计方法中的有关概念,如类、对象、封装、继承、消息和多态性等。4C+程序的基本组成和框架结构。5掌握C+语言中的基本数据类型、各种运算符、表达式。6C+数据输入流对象cin和输出流对象cout的使用。7程序的3种基本结构8构造数据类型,如数组、结构体、指针等的定义方法、特点和使用方法。9函数的定义、调用及函数调用过程中的参数传
2、递的机理和程序执行流程。10引用的概念及其定义和使用方法。,3,1.1 C+概述,1.1.1 计算机系统的层次结构 应用软件 通 处 理 工 用 作 具 软 言 系 系 软 件 语 操 裸机 统 统 件 计算机系统的层次结构图,4,1.1 C+概述,1.1.1 计算机系统的层次结构 任何计算机系统都必须包含硬件和在其上运行的软件。计算机硬件必须有软件的支持才能有效地运转并为人们所利用。计算机硬件系统一般由处理器(控制器和运算器)、存储器、输入设备和输出设备等部分组成。一般来讲,人们认为软件系统由系统软件和应用软件两部分组成。我们从系统层次的角度,可以把软件分为:,(1)操作系统(OS,Oper
3、ating System)它是计算机软件的核心,是硬件的第一级扩充。在它的控制下,计算机的全部资源,如CPU、内存、外部设备(CRT、打印机,扫描仪、光盘机等)和各种软件资源可以协调一致地工作。它可以有条不紊、高效率地管理和调度计算机地硬件设备和各种软件资源,使它们最大限度地发挥作用。操作系统还要协调控制许多可能“并发”执行的程序段,按照预先确定的控制策略合理地组织系统的工作流程,提高系统的执行效率,保护系统和用户的信息安全。常用的操作系统:MS-DOS,Windows,Unix等。,5,1.1 C+概述,(2)语言处理系统 其主要的核心部分是程序设计语言的编译系统。程序设计语言是从事计算机的
4、技术人员,特别是软件编写者不可缺少的编程工具,是“驾驶”计算机运行的“方向盘”。,目前世界上经设计和实现的程序设计语言有上千种之多。大致可分为两大类,一类是因计算机中央处理器(CPU)不同而异的汇编语言,另一类是通用的程序设计语言。前者称为低级语言,后者称为高级语言。说汇编语言是一种低级语言,是因为计算机硬件是最低层的,而隶属于语言处理系统的汇编语言最接近于硬件,它是在机器码语言的基础上直接发展起来的一种面向机器的低级语言,它的每一条指令与机器码语言的指令保持着一一对应的关系,可方便地对硬件实现控制和操作,能充分发挥硬件的潜力,且用汇编语言编写的程序与高级语言相比执行速度最快。,6,1.1 C
5、+概述,从计算机的根本原理来说,计算机只能理解和执行一系列二进制指令码,即由数字0和1的不同排列组合而成的二进制码对应不同操作的指令,这就是通常所说的“机器码指令”。用上述各 种语言(包括汇编语言在内)编写的程序称为“源程序(Source Program)”,源程序不能直接在计算机上运行,而必须经过语言处理系统进行“翻译”加工,转换成机器码指令后才能执行。常用的语言有:古典语言(Fortran、Pascal、Cobol,Basic等)、人工智能语言(LISP,PROLOG等)以及现代的语言(C/C+,JAVA,Delphi,Powerbuilder,C#等)。,7,1.1 C+概述,关于C和C
6、+C是最靠近机器的通用程序设计语言。在最初设计时是作为一种面向系统软件(操作系统和语言处理系统)的开发语言,即用来代替汇编语言的,但是由于它具有强大的生命力,因而在事务处理、科学计算、工业控制和数据库技术等各个方面都得到了广泛的应用。即使进入到以计算机网络为核心的信息时代,C语言仍然是作为通用的汇编语言使用,用于开发软(件)、硬(件)结合的程序,如实时监控程序、系统控制程序和设备驱动程序等。C+是C的面向对象扩展,是面向对象程序设计语言的一个大众化版本,是当前学习面向对象程序设计方法的首选语言。C+是C的超集,它保留了C的所有组成部分并与其完全兼容,既可以做传统的结构化程序设计,又能进行面向对
7、象程序设计,是当今世界最为流行的面向对象程序设计语言。大大型应用软件开发上,以Windows开发环境为操作平台的C+类库和组件正在迅猛发展,C+即将取代C已是不可抗拒的事实,它的触角几乎已触及到计算机研究和应用的各个领域。完全遵循美国国家标准化组织制定的ANSI C+标准,目前广泛流行在微型计算机上使用的C+产品,有美国Microsoft公司推出的、以Windows开发环境为操作系统平台的Visual C+,还有美国Borland公司开发的C+Builder等。,8,1.1 C+概述,(3)通用软件 通用软件可分为如下几组:(a)数据处理类软件:进行数值计算(行列式、矩阵、复变函数等计算)、统
8、计分析、数学表达式分析计算以及模拟处理的程序等。(b)进行声音、图形、图像和动画等多媒体信息处理的程序。(c)有关自然语言处理、模式识别、神经网络和专家系统等人工智能方面的应用程序。(d)计算机辅助设计与制造(CAD/CAM)、计算机辅助教学(CAI)、计算机辅助分析以及决策支持系统等方面的通用程序。(4)应用软件 除通用软件以外的各种应用程序统称为应用软件。当前从事应用软件的开发是各类计算机应用专业技术人员的大舞台,这些技术人员既具有扎实的本专业知识,又掌握了计算机的应用知识,很善于把计算机当作工具来完成本应用领域中的各种任务。应用领域大致可划分为:科学计算,如天文、气象等大型计算任务;办公
9、自动化(OA-Office Automation),如Office 2000;数据库技术领域,如FoxPro、Sybase和Oracle等;工业控制领域,产品如Intouch等。,9,1.1 C+概述,(5)工具软件是为协助用户更方便地使用计算机完成开发任务而研制,并集多种功能于一体地支程序软件包。如PC Tools、FrontPage 2000、Cutftp等等。,10,1.2 从面向过程的程序设计到面向对象的程序设计,1.2.1 传统的结构化程序设计(Structured Programming-SP)方法 1使用SP方法设计程序的步骤在数据处理过程中,采用的是自顶向下、分而治之的方法,将
10、整个程序按功能划分为几个可独立编程的子过程模块,每一子模块完成指定的子任务,并且提供一个清晰、严格的调用界面,主过程通过调用各子过程完来成全部处理工作。,11,2SP方法的特点优点:(1)这种程序设计方法力求算法描述准确。(2)对每一子过程模块容易进行程序正确性证明。缺点:(1)这种程序设计方法本质上是面向“过程”的,而“过程”和“操作”又是不稳定和多变的,因此不能直接反映人类求解问题的思路。(2)程序代码可重用性差。程序中除少数标准库函数外,每设计一个程序时,程序员几乎从零做起。即使重用代码,通常也是通过拷贝或编辑重新生成一份。(3)维护程序的一致性困难。该种方法将数据与对数据进行处理的程序
11、代码分离。,1.2 从面向过程的程序设计到面向对象的程序设计,12,1.2.2 面向对象的程序设计(Object-Oriented Programming-OOP)方法 1.面向对象的有关概念 面向对象的程序设计方法强调直接以问题域(现实世界)中的事物为中心来思考和认识问题,并按照这些事物的本质特征把它们抽象为对象,以作为构成软件系统的基础。(1)对象(Object):每个对象都具有属性(Attribute)和方法(Method)这两方面的特征。对象的属性描述了对象的状态和特征,对象的方法说明了对象的行为和功能,并且对象的属性值只应由这个对象的方法来读取和修改,两者结合在一起就构成了对象的完整
12、描述。,1.2 从面向过程的程序设计到面向对象的程序设计,13,(2)类(Class):具有相似属性和行为的一组对象,就称为类。可见,有了类的概念以后,就可以对具有共同特征的事物进行统一描述。(3)封装(Encapsulation):封装把对象的属性和方法看成了一个密不可分的整体,从而使对象能够完整地描述并对应于一个具体事物。(4)继承(Inheritance):将客观事物进行归类是一个逐步抽象的过程,反之,将类进行层层分类便是一个概念逐渐细化的过程。在面向对象的程序设计中,允许在已有类的基础上通过增加新特征而派生出新的类,这称为继承。其原有的类称为基类(base class),而新建立的类称
13、为派生类(derived class)。,1.2 从面向过程的程序设计到面向对象的程序设计,14,(5)消息(Message):在面向对象的程序设计中,由于对象描述了客观实体,它们之间的联系通过对象间的联系来反映。当一个对象需要另外一个对象提供服务时,它向对方发出一个服务请求,而收到请求的对象会响应这个请求并完成指定的服务。这种向对象发出的服务请求就称为消息。(6)多态性(Polymorphism):多态性是面向对象的另一重要特征。在通过继承而派生出的一系列类中,可能存在一些名称相同,但实现过程和功能不同的方法(Method)。所谓多态性是指当程序中的其他部分发出同样的消息时,按照接收消息对象
14、的不同能够自动执行类中相应的方法。其好处是,用户不必知道某个对象所属的类就可以执行多态行为,从而为程序设计带来更大方便。,1.2 从面向过程的程序设计到面向对象的程序设计,15,2.面向对象的程序设计方法(OOP方法)这种方法将设计目标从模拟现实世界的行为转向了模拟现实世界中存在的对象及其各自的行为。在OOP中,将“对象”作为系统中最基本的运行实体,整个程序即由各种不同类型的对象组成,各对象既是一个独立的实体,又可通过消息相互作用,对象中的方法决定要向哪个对象发消息、发什么消息以及收到消息时如何进行处理等。,1.2 从面向过程的程序设计到面向对象的程序设计,16,3OOP方法的特点(1)OOP
15、以“对象”或“数据”为中心。由于对象自然地反映了应用领域的模块性,因此具有相对稳定性,可以被用作一个组件去构成更复杂的应用,又由于对象一般封装的是某一实际需求的各种成分,因此,某一对象的改变对整个系统几乎没有影响。(2)引入了“类”(class)的概念。类与类以层次结构组织,属于某个类的对象除具有该类所描述的特性外,还具有层次结构中该类上层所有类描述的全部性质,OOP中称这种机制为继承。(3)OOP方法的模块性与继承性,保证了新的应用程序设计可在原有对象的数据类型和功能的基础上通过重用、扩展和细化来进行,而不必从头做起或复制原有代码,这样,大大减少了重新编写新代码的工作量,同时降低了程序设计过
16、程中出错的可能性,达到了事半功倍的效果。,1.2 从面向过程的程序设计到面向对象的程序设计,17,1.2.3 面向对象的程序设计方法与结构化程序设计方法的比较(1)传统的结构化程序设计方法以过程为中心构造应用程序,数据和处理数据的过程代码是分离的、相互独立的实体,设计出的程序可重用代码少,且当代码量增加时维护数据和代码的一致性困难。(2)面向对象程序设计方法中,对象所具有的封装性和继承性使得代码重用成为可能,并大大减少了程序出错的可能性。(3)面向对象方法吸收了结构化程序设计方法的优点,同时引入了新概念、新机制并建立了比传统方法更高层次的抽象。,1.2 从面向过程的程序设计到面向对象的程序设计
17、,18,1.3.1 从C语言到C+语言 C语言以其如下独有的特点风靡了全世界:(1)语言简洁、紧凑,使用方便、灵活。C语言只有32个关键字,程序书写形式自由。(2)丰富的运算符和数据类型。(3)可以直接访问内存地址,能进行位操作,使其能够胜任开发操作系统的工作。(4)生成的目标代码质量高,程序运行效率高。(5)可移植性好。,1.3 C+程序的基本组成,19,1.3 C+程序的基本组成,局限性:(1)数据类型检查机制相对较弱,这使得程序中的一些错误不能在编译阶段被发现。(2)C本身几乎没有支持代码重用的语言结构,因此一个程序员精心设计的程序,很难为其它程序所用。(3)当程序的规模达到一定程度时,
18、程序员很难控制程序的复杂性。,20,1.3 C+程序的基本组成,C+包含了整个C,C是建立C+的基础。C+包括C的全部特征和优点,同时添加了对面向对象编程(OOP)的完全支持。1980年,贝尔实验室的Bjarne Stroustrup开始对C进行改进和扩充。1983年正式命名为C+。在经历了3次C+修订后,1994年制定了ANSI C+标准的草案。以后又经过不断完善,成为目前的C+。C+仍在不断发展中。美国微软公司现已推出C#(C Sharp)语言,来代替C+语言。,21,1.3.2 C+程序的结构与基本组成 一个简单的C+程序,是由若干个函数构成的,其中有且仅有一个名称为main的函数存在,
19、下图说明了C+程序的基本框架结构:,1.3 C+程序的基本组成,22,1声明区 声明区处在程序文件的所有函数的外部。(1)包含头文件:如#include iostream.h(2)宏定义:如#define PI 3.1415926(3)类定义:如class name;/也可以在函数体内(4)结构体定义:如struct record;(5)函数声明:如void print();(6)全局变量声明:如float H=2.58;(7)条件编译:如#ifdef等。,1.3 C+程序的基本组成,23,2主程序区主程序以main()函数开始,是整个程序运行的入口,该函数中可能包含的内容主要有:(1)局部变
20、量的声明:如:int i=1;(2)函数调用:如:y=sin(x);(3)一般运算:如:a=b+c+d/3;(4)结构控制:如:if(ab)c=a;(5)对象与结构的处理。(6)文件的处理等。,1.3 C+程序的基本组成,24,图2.3 C+函数的组成 4程序举例,1.3 C+程序的基本组成,3函数定义区 程序中除了main函数之外,还可以包含其它的函数,每个函数是由函数说明和函数体两部分构成的。如图2.3所示:,25,1.3 C+程序的基本组成,26,上例程序结构可写为如下程序:【例2-1】一个简单的C+程序。/This is the first C+program/*C语言的某些特征仍可沿
21、用*/#include iostream.hvoid print();/函数声明void main()int i;char s80;,1.3 C+程序的基本组成,27,print();couts;couti;/验证结果couts is i years old.;void print()printf(printf is also can be usedn);,1.3 C+程序的基本组成,28,从上例可以看出:(1)C语言中原有的规则和语句在C+中仍可继续使用,但C+又增添了很多新的风格。(2)一个C+的程序是由一到若干个函数构成的,但其中必须有且仅有一个名称为main的函数存在。(3)不管一个程
22、序中有多个函数,只有main函数整个程序运行时的入口,程序运行时从此函数开始执行。但在程序中,main函数所处的位置可以任意。(4)一个C+的函数是由两部分构成的,即函数的说明部分和函数体,函数的说明部分包括了函数的返回值的类型、函数的名称、圆括号、形参及形参的类型说明。函数体由一对大括号括起来,其内容是由若干条语句,1.3 C+程序的基本组成,29,构成,函数体的内容决定了该函数的功能。(5)C+对程序中的名称是大小写“敏感”的,除特殊情况下,应一律小写。(6)程序中的注释:可以用/*/或/(单行注释)对程序中的内容进行注释。二者的区别在于,采用/*/方法时,注释可以写成多行,而采用/方法时
23、,注释只能写成一行,它可单独占一行,也可写在某行程序代码的末尾。(7)数据输出:除了使用printf()函数,还可使用功能更强大、更方便的cout对象进行输出数据。格式如下:cout数据1 数据2 数据n 如:上例中的语句couts“is”i“years old.”;表示同时输出了变量s的值、字符串“is”、变量i的值和字符,1.3 C+程序的基本组成,30,串“years old.”(8)数据输入:除了使用scanf()函数,还可使用功能更强大、更方便的cin对象进行数据输入。格式如下:cin变量1变量2变量n如:上例中的语句cins;表示给变量s输入一个值(9)在分别使用cout和cin进
24、行数据的输出和输入时,需要在程序的开头嵌入”iostream.h”文件。在该头文件中定义了输入输出流对象cout和cin等。(10)一个C+的源程序文件在存盘时,要以.CPP为文件名后缀,而不是.C。(11)C+程序的开发过程,1.3 C+程序的基本组成,31,串“years old.”2.2 C+程序的基本组成,C+程序的开发过程,32,1.4 C+数据类型、运算符和表达式,2.3.1 数据类型(1)预定义数据类型(基本数据类型)。包括布尔型(bool)、字符型、整型、浮点型、无值型四种,其中浮点型又分为单精度浮点型和双精度浮点型两种。(2)构造数据类型,包括数组、结构体、共用体(联合)、枚
25、举、类等。本节重点介绍C+的基本数据类型,有关构造数据类型将在后面章节进行介绍。,33,2.3.1.1 基本数据类型,1.3 C+数据类型、运算符和表达式,34,2.3.1.2 类型修饰符C+还允许在基本数据类型(除void类型外)前加上类型修饰符,来更具体地表示数据类型。C+的类型修饰符包括:signed 有符号unsigned无符号short短型long长型,1.3 C+数据类型、运算符和表达式,35,表2.2 C+的基本数据类型,36,表2.2 C+的基本数据类型,37,说明:(1)表中带 的部分表示是可以省略的,如short int可以写为short int 或简写为short,二者的
![C++程序设计教程.ppt_第1页](https://www.31ppt.com/fileroot1/2023-6/2/18412d05-2c15-444e-be7e-239dcd7ed805/18412d05-2c15-444e-be7e-239dcd7ed8051.gif)
![C++程序设计教程.ppt_第2页](https://www.31ppt.com/fileroot1/2023-6/2/18412d05-2c15-444e-be7e-239dcd7ed805/18412d05-2c15-444e-be7e-239dcd7ed8052.gif)
![C++程序设计教程.ppt_第3页](https://www.31ppt.com/fileroot1/2023-6/2/18412d05-2c15-444e-be7e-239dcd7ed805/18412d05-2c15-444e-be7e-239dcd7ed8053.gif)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 教程
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6153984.html