C++语言程序设计.ppt
《C++语言程序设计.ppt》由会员分享,可在线阅读,更多相关《C++语言程序设计.ppt(460页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、21 世纪高职高专规划教材世纪高职高专规划教材计算机类计算机类C+语言程序设计语言程序设计 目目 录录第第 1 章章 C+ 语言概述语言概述第第 2 章章 数据类型、运算符及表达式数据类型、运算符及表达式第第 3 章章 控制语句控制语句第第 4 章章 数组数组第第 5 章章 函数函数第第 6 章章 指针指针第第 7 章章 复杂数据类型复杂数据类型目目 录录第第 8 章章 类与对象类与对象第第 9 章章 继承性和派生类继承性和派生类第第 10 章章 多态性与虚函数多态性与虚函数第第 11 章章 函数和运算符的重载函数和运算符的重载 第第 12 章章 模板模板第第 13 章章 预处理和异常处理预处
2、理和异常处理第第 14 章章 流和文件流和文件第第1章章 C+语言概述语言概述1.1 计算机语言发展概述计算机语言发展概述1.2 C+ 语言的特点及其程序的开发过语言的特点及其程序的开发过程程 1.3 C+ 程序的结构程序的结构 1.4 Visual C+ 6.0 开发环境开发环境 1.1 计算机语言发展概述计算机语言发展概述lC+ 语言是当前应用范围很广泛的程序设计语言,它是语言是当前应用范围很广泛的程序设计语言,它是C语言的继承、丰富和发展,它适合开发面向过程的程序语言的继承、丰富和发展,它适合开发面向过程的程序,更适合开发面向对象的程序。本章节主要介绍面向过程,更适合开发面向对象的程序。
3、本章节主要介绍面向过程和面向对象的概念,简单的和面向对象的概念,简单的C+ 程序以及程序以及Visual C+ 6.0集成开发环境。集成开发环境。l计算机语言是驱动计算机进行工作的语言。随着计算机应计算机语言是驱动计算机进行工作的语言。随着计算机应用领域的不断扩大,计算机语言也进一步完善和发展,其用领域的不断扩大,计算机语言也进一步完善和发展,其功能不断壮大,并朝着易读、易维护和易编程的方向发展功能不断壮大,并朝着易读、易维护和易编程的方向发展。下一页返回1.1 计算机语言发展概述计算机语言发展概述1.1.1 程序和程序设计语言程序和程序设计语言l计算机系统由硬件和软件两部分组成。一个计算机要
4、充分计算机系统由硬件和软件两部分组成。一个计算机要充分发挥其功能,必须依靠硬件和软件的良好结合。发挥其功能,必须依靠硬件和软件的良好结合。l计算机系统的硬件是构成计算机系统的物理实体,它包括计算机系统的硬件是构成计算机系统的物理实体,它包括组成计算机的各个部件及外部设备。计算机部件主要包括组成计算机的各个部件及外部设备。计算机部件主要包括微处理器芯片,存储器芯片和输入、输出接口芯片等。微处理器芯片,存储器芯片和输入、输出接口芯片等。l能使计算机硬件系统顺利和有效工作的程序集合称为软件能使计算机硬件系统顺利和有效工作的程序集合称为软件。计算机的软件系统可分为系统软件和应用软件。计算机的软件系统可
5、分为系统软件和应用软件。上一页下一页返回1.1 计算机语言发展概述计算机语言发展概述l要使计算机解决各种问题就必须规定计算机执行的动作,要使计算机解决各种问题就必须规定计算机执行的动作,计算机执行的动作就是计算机的指令,执行动作的集合构计算机执行的动作就是计算机的指令,执行动作的集合构成计算机程序。抽象地说:指令是计算机可以识别的命令成计算机程序。抽象地说:指令是计算机可以识别的命令。程序是计算机完成某种功能的指令集合。目前计算机能。程序是计算机完成某种功能的指令集合。目前计算机能直接识别的指令代码只有直接识别的指令代码只有“0”和和“1”。l人通过计算机可以接收的语言来指挥计算机,目前计算机
6、人通过计算机可以接收的语言来指挥计算机,目前计算机程序设计语言可以分为机器语言、汇编语言和高级语言。程序设计语言可以分为机器语言、汇编语言和高级语言。l机器语言是用二进制指令表示的、计算机能够直接识别并机器语言是用二进制指令表示的、计算机能够直接识别并执行的语言,执行速度快是计算机机器语言的主要优点。执行的语言,执行速度快是计算机机器语言的主要优点。上一页下一页返回1.1 计算机语言发展概述计算机语言发展概述l汇编语言是用一些易读、易记的助记符来表示机器指令,汇编语言是用一些易读、易记的助记符来表示机器指令,如如ADD、CALL等。使用汇编语言编写程序提高了编程等。使用汇编语言编写程序提高了编
7、程速度,也能够编写出质量较高的程序,检查、维护也比较速度,也能够编写出质量较高的程序,检查、维护也比较容易。但汇编语言抽象层次低,程序员编写程序的工作量容易。但汇编语言抽象层次低,程序员编写程序的工作量还是比较大。还是比较大。 高级语言屏蔽了机器语言的细节,提高了高级语言屏蔽了机器语言的细节,提高了语言抽象层次。程序中采用了具有一定含义的、容易理解语言抽象层次。程序中采用了具有一定含义的、容易理解的执行语句。高级语言不受计算机类型的限制,通用性强的执行语句。高级语言不受计算机类型的限制,通用性强,易于理解、学习和掌握。使用高级语言减少了的编程工,易于理解、学习和掌握。使用高级语言减少了的编程工
8、作量。目前比较广泛使用的高级语言有作量。目前比较广泛使用的高级语言有 BASIC、FORTRAN、PASCAL 和和C语言。而语言。而C+ 则是一个功则是一个功能强大、应用广泛、面向过程和面向对象兼顾的程序设计能强大、应用广泛、面向过程和面向对象兼顾的程序设计语言。语言。上一页下一页返回1.1 计算机语言发展概述计算机语言发展概述1.1.2 结构化程序设计结构化程序设计l软件设计的主要工作就是设计问题求解的过程。早期的计软件设计的主要工作就是设计问题求解的过程。早期的计算机主要用于数学计算,为了完成计算任务,必须设计或算机主要用于数学计算,为了完成计算任务,必须设计或采用一个计算方法和解决问题
9、的过程。采用一个计算方法和解决问题的过程。 20世纪中期出现世纪中期出现了结构化编程方法,提高了编程语言的层次。结构化数据了结构化编程方法,提高了编程语言的层次。结构化数据、结构化语句以及数据和过程抽象等概念使程序更便于体、结构化语句以及数据和过程抽象等概念使程序更便于体现客观事物的结构和逻辑含义。结构化程序设计采用了模现客观事物的结构和逻辑含义。结构化程序设计采用了模块分解、功能抽象以及自顶向下不断细划的方法,有效地块分解、功能抽象以及自顶向下不断细划的方法,有效地将一个较复杂的程序设计任务分解成许多易于控制和处理将一个较复杂的程序设计任务分解成许多易于控制和处理的子任务,便于开发和维护。的
10、子任务,便于开发和维护。上一页下一页返回1.1 计算机语言发展概述计算机语言发展概述l面向过程是程序设计的一种传统的方法,它把待解决的问面向过程是程序设计的一种传统的方法,它把待解决的问题按功能划分为若干个相对独立的小问题,针对每个小问题按功能划分为若干个相对独立的小问题,针对每个小问题编写相对独立的程序模块,并由主程序按解决问题的顺题编写相对独立的程序模块,并由主程序按解决问题的顺序组合为程序模块,进而形成完整的程序。这种面向过程序组合为程序模块,进而形成完整的程序。这种面向过程的编程方法通过程序模块的调用关系来完成整个程序的功的编程方法通过程序模块的调用关系来完成整个程序的功能。在问题比较
11、复杂的情况下,模块之间的调用关系很容能。在问题比较复杂的情况下,模块之间的调用关系很容易变得复杂和混乱。调试和修改程序的难度比较大。当某易变得复杂和混乱。调试和修改程序的难度比较大。当某一功能改变时,一点微小的变化都需要重新修改和调试程一功能改变时,一点微小的变化都需要重新修改和调试程序。序。l虽然结构化程序设计方法具有很多优点,但它仍然是一种虽然结构化程序设计方法具有很多优点,但它仍然是一种面向过程的程序设计方法。它把数据和处理数据的过程分面向过程的程序设计方法。它把数据和处理数据的过程分离为互相独立的实体,当数据改变时,所有相关的处理过离为互相独立的实体,当数据改变时,所有相关的处理过程都
12、要进行相应的修改。程都要进行相应的修改。上一页下一页返回1.1 计算机语言发展概述计算机语言发展概述1.1.3 面向对象程序设计面向对象程序设计 l20 世纪世纪 90 年代初开始出现了面向对象的程序设计方法年代初开始出现了面向对象的程序设计方法。面向对象的程序设计方法把求解问题中所有的独立个体。面向对象的程序设计方法把求解问题中所有的独立个体都看做不同的对象,与对象相关的数据和对数据操作的处都看做不同的对象,与对象相关的数据和对数据操作的处理方法都放在一起,成为一个相互依存、不可分离的整体理方法都放在一起,成为一个相互依存、不可分离的整体。面向对象的程序设计方法将具有共同特性的对象抽象出。面
13、向对象的程序设计方法将具有共同特性的对象抽象出共同的属性而形成类。类中的数据一般只能用本类的方法共同的属性而形成类。类中的数据一般只能用本类的方法进行处理。类通过简单的外部接口与外界发生联系。对象进行处理。类通过简单的外部接口与外界发生联系。对象与对象之间通过消息进行通信。这样,程序模块间的关系与对象之间通过消息进行通信。这样,程序模块间的关系就更为简单,程序模块的独立性、数据的安全性有了较好就更为简单,程序模块的独立性、数据的安全性有了较好的保障。的保障。上一页下一页返回1.1 计算机语言发展概述计算机语言发展概述l面向对象方法的基本原则是直接面对客观存在的事物进行面向对象方法的基本原则是直
14、接面对客观存在的事物进行软件开发,将人们在日常生活中习惯的思维方法和表达方软件开发,将人们在日常生活中习惯的思维方法和表达方法应用到软件开发中,使软件开发从过分专业化的方法、法应用到软件开发中,使软件开发从过分专业化的方法、规则和技巧中回到直观的客观现实,回到人们通常的思维规则和技巧中回到直观的客观现实,回到人们通常的思维方法之中。方法之中。上一页返回1.2 C+ 语言的特点及其程序的开语言的特点及其程序的开发过程发过程 lC 语言是从实验室走出来的程序设计语言,在结构化程语言是从实验室走出来的程序设计语言,在结构化程序设计阶段起到了重要的作用。但在程序设计语言的发展序设计阶段起到了重要的作用
15、。但在程序设计语言的发展过程中,面向对象的程序设计方法将代替面向过程的程序过程中,面向对象的程序设计方法将代替面向过程的程序设计方法,其对应的程序设计语言也就应运而生,这就是设计方法,其对应的程序设计语言也就应运而生,这就是C+ 语言。语言。下一页返回1.2 C+ 语言的特点及其程序的开语言的特点及其程序的开发过程发过程 1.2.1 C+ 语言的特点语言的特点 lC+语言是在语言是在C语言基础上为支持面向对象的程序设计语言基础上为支持面向对象的程序设计而研制的一个通用的程序设计语言。最初的而研制的一个通用的程序设计语言。最初的C+称为称为“带类的带类的C”,1983年正式命名为年正式命名为C+
16、。C+的标准化工的标准化工作从作从1989年开始,年开始,1994年制定了年制定了ANSIC+标准草案标准草案。现在普遍使用的是。现在普遍使用的是Microsoft公司的公司的VisualC+6.0版本和版本和Borland公司的公司的C+Builder3.0及以上版本,及以上版本,它们都是在它们都是在Windows操作系统环境下运行的可视化集操作系统环境下运行的可视化集成开发工具。成开发工具。上一页下一页返回1.2 C+ 语言的特点及其程序的开语言的特点及其程序的开发过程发过程 C+语言有如下特点:语言有如下特点:l(1)类和数据封装:)类和数据封装:C+语言中的类是对问题空间的语言中的类是
17、对问题空间的高度抽象和概括,是数据抽象及信息隐藏的工具。抽象的高度抽象和概括,是数据抽象及信息隐藏的工具。抽象的数据和相关的操作被封装在一个类中。对象可以被理解为数据和相关的操作被封装在一个类中。对象可以被理解为特定类型的特定类型的“变量变量”,对象之间可以通过发送和接收消息,对象之间可以通过发送和接收消息相互联系,接收消息的对象通过调用方法来实现相应的操相互联系,接收消息的对象通过调用方法来实现相应的操作。作。l(2)访问控制:类的成员包括公有、私有和保护成员,)访问控制:类的成员包括公有、私有和保护成员,它们有不同的访问权限。声明为公有的成员,允许通过相它们有不同的访问权限。声明为公有的成
18、员,允许通过相应对象进行访问;私有成员只能由类的成员函数访问;保应对象进行访问;私有成员只能由类的成员函数访问;保护成员可以由该类及其派生类的成员函数访问。通过将数护成员可以由该类及其派生类的成员函数访问。通过将数据成员设置为不同的访问权限,实现了信息的隐藏。据成员设置为不同的访问权限,实现了信息的隐藏。上一页下一页返回1.2 C+ 语言的特点及其程序的开语言的特点及其程序的开发过程发过程 l(3)构造函数和析构函数:类可以包含一组构造函数和)构造函数和析构函数:类可以包含一组构造函数和析构函数。构造函数是在创建一个对象时由系统自动调用析构函数。构造函数是在创建一个对象时由系统自动调用该函数以
19、完成对象数据成员的初始化工作。析构函数是在该函数以完成对象数据成员的初始化工作。析构函数是在一个特定对象撤销时系统自动调用该函数以完成正常的清一个特定对象撤销时系统自动调用该函数以完成正常的清除工作。除工作。l(4)对象和消息:对象是面向对象程序设计的基本元件)对象和消息:对象是面向对象程序设计的基本元件。对象通过消息向其他对象发送要操作的信息,接收消息。对象通过消息向其他对象发送要操作的信息,接收消息的对象根据消息的内容调用相应的函数。的对象根据消息的内容调用相应的函数。C+中的消息中的消息传递类似于传递类似于C语言中的函数调用。语言中的函数调用。上一页下一页返回1.2 C+ 语言的特点及其
20、程序的开语言的特点及其程序的开发过程发过程 l(5)函数和运算符重载:)函数和运算符重载:C+允许将已有的函数或运允许将已有的函数或运算符重新赋予新的含义,使得它们可以用于用户所希望的算符重新赋予新的含义,使得它们可以用于用户所希望的操作对象。运算符和函数的重载使得用户可以以更加自然操作对象。运算符和函数的重载使得用户可以以更加自然的方式实现对对象的操作。的方式实现对对象的操作。l(6)友元:友元是)友元:友元是C+语言的又一个主要特性。通常语言的又一个主要特性。通常类的私有成员禁止类外函数和类的直接访问,而友元机制类的私有成员禁止类外函数和类的直接访问,而友元机制允许有选择地突破这一限制。在
21、类定义中声明非成员函数允许有选择地突破这一限制。在类定义中声明非成员函数或其他类为该类的友元函数或友元类,这些友元就可以访或其他类为该类的友元函数或友元类,这些友元就可以访问该类的私有和保护成员。问该类的私有和保护成员。上一页下一页返回1.2 C+ 语言的特点及其程序的开语言的特点及其程序的开发过程发过程 l(7)继承性和派生类:在类的定义时,会出现多个类享)继承性和派生类:在类的定义时,会出现多个类享有相似特征的情况,这时,不必在每个类中复制这些成员有相似特征的情况,这时,不必在每个类中复制这些成员,可以通过定义一个包含它们共同成员的基类,然后通过,可以通过定义一个包含它们共同成员的基类,然
22、后通过类的继承,从基类派生出派生类。通过继承机制,为派生类的继承,从基类派生出派生类。通过继承机制,为派生类增加新的操作和成员,改写基类的部分内容,得到更加类增加新的操作和成员,改写基类的部分内容,得到更加适用的类。继承机制有力地支持了面向对象的程序设计思适用的类。继承机制有力地支持了面向对象的程序设计思想。想。l(8)多态性和虚函数:多态性是指一种语义多种含义。)多态性和虚函数:多态性是指一种语义多种含义。在在C+中的虚函数支持动态联编,从而也支持了多态性中的虚函数支持动态联编,从而也支持了多态性。多态性允许在设计中使用高级的抽象,使得高层次代码。多态性允许在设计中使用高级的抽象,使得高层次
23、代码只需要写一次,通过提供不同的底层服务来满足发展的需只需要写一次,通过提供不同的底层服务来满足发展的需求,进而提高了代码的重用性。求,进而提高了代码的重用性。上一页下一页返回1.2 C+ 语言的特点及其程序的开语言的特点及其程序的开发过程发过程 1.2.2C+程序的开发过程程序的开发过程lC+语言程序开发的过程要经过源代码编辑、源代码编语言程序开发的过程要经过源代码编辑、源代码编译和运行目标代码三个步骤。程序员根据问题求解的需要译和运行目标代码三个步骤。程序员根据问题求解的需要编制出源程序,在相应的编辑器上将其录入并假设该文件编制出源程序,在相应的编辑器上将其录入并假设该文件名为名为File
24、.cpp。l经过编译该文件后将生成对应的目标文件,其文件名为经过编译该文件后将生成对应的目标文件,其文件名为File.obj。File.obj文件是源程序的机器语言组成的目文件是源程序的机器语言组成的目标代码,该文件还不是可执行文件,因为目标代码只是一标代码,该文件还不是可执行文件,因为目标代码只是一个个的程序块,需要相互连接成为一个适应操作系统环境个个的程序块,需要相互连接成为一个适应操作系统环境的程序整体。的程序整体。上一页下一页返回1.2 C+ 语言的特点及其程序的开语言的特点及其程序的开发过程发过程 l连接程序将源代码程序生成的多个目标代码文件和系统提连接程序将源代码程序生成的多个目标
25、代码文件和系统提供的库文件中的有关代码全部连接在一起,生成一个可以供的库文件中的有关代码全部连接在一起,生成一个可以执行的文件,其文件名为执行的文件,其文件名为File.exe。l执行执行File.exe文件,程序被执行后,一般会在屏幕上输文件,程序被执行后,一般会在屏幕上输出程序运行结果。用户可根据运行结果判断程序是否有错出程序运行结果。用户可根据运行结果判断程序是否有错误。一个程序编写好后,在生成可执行文件之前需要改正误。一个程序编写好后,在生成可执行文件之前需要改正编译和连接时出现的致命性错误或警告,最后才能生成没编译和连接时出现的致命性错误或警告,最后才能生成没有错误的可执行文件。有错
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 语言程序设计
限制150内