C++语言程序设计.ppt
21 世纪高职高专规划教材世纪高职高专规划教材计算机类计算机类C+语言程序设计语言程序设计 目目 录录第第 1 章章 C+ 语言概述语言概述第第 2 章章 数据类型、运算符及表达式数据类型、运算符及表达式第第 3 章章 控制语句控制语句第第 4 章章 数组数组第第 5 章章 函数函数第第 6 章章 指针指针第第 7 章章 复杂数据类型复杂数据类型目目 录录第第 8 章章 类与对象类与对象第第 9 章章 继承性和派生类继承性和派生类第第 10 章章 多态性与虚函数多态性与虚函数第第 11 章章 函数和运算符的重载函数和运算符的重载 第第 12 章章 模板模板第第 13 章章 预处理和异常处理预处理和异常处理第第 14 章章 流和文件流和文件第第1章章 C+语言概述语言概述1.1 计算机语言发展概述计算机语言发展概述1.2 C+ 语言的特点及其程序的开发过语言的特点及其程序的开发过程程 1.3 C+ 程序的结构程序的结构 1.4 Visual C+ 6.0 开发环境开发环境 1.1 计算机语言发展概述计算机语言发展概述lC+ 语言是当前应用范围很广泛的程序设计语言,它是语言是当前应用范围很广泛的程序设计语言,它是C语言的继承、丰富和发展,它适合开发面向过程的程序语言的继承、丰富和发展,它适合开发面向过程的程序,更适合开发面向对象的程序。本章节主要介绍面向过程,更适合开发面向对象的程序。本章节主要介绍面向过程和面向对象的概念,简单的和面向对象的概念,简单的C+ 程序以及程序以及Visual C+ 6.0集成开发环境。集成开发环境。l计算机语言是驱动计算机进行工作的语言。随着计算机应计算机语言是驱动计算机进行工作的语言。随着计算机应用领域的不断扩大,计算机语言也进一步完善和发展,其用领域的不断扩大,计算机语言也进一步完善和发展,其功能不断壮大,并朝着易读、易维护和易编程的方向发展功能不断壮大,并朝着易读、易维护和易编程的方向发展。下一页返回1.1 计算机语言发展概述计算机语言发展概述1.1.1 程序和程序设计语言程序和程序设计语言l计算机系统由硬件和软件两部分组成。一个计算机要充分计算机系统由硬件和软件两部分组成。一个计算机要充分发挥其功能,必须依靠硬件和软件的良好结合。发挥其功能,必须依靠硬件和软件的良好结合。l计算机系统的硬件是构成计算机系统的物理实体,它包括计算机系统的硬件是构成计算机系统的物理实体,它包括组成计算机的各个部件及外部设备。计算机部件主要包括组成计算机的各个部件及外部设备。计算机部件主要包括微处理器芯片,存储器芯片和输入、输出接口芯片等。微处理器芯片,存储器芯片和输入、输出接口芯片等。l能使计算机硬件系统顺利和有效工作的程序集合称为软件能使计算机硬件系统顺利和有效工作的程序集合称为软件。计算机的软件系统可分为系统软件和应用软件。计算机的软件系统可分为系统软件和应用软件。上一页下一页返回1.1 计算机语言发展概述计算机语言发展概述l要使计算机解决各种问题就必须规定计算机执行的动作,要使计算机解决各种问题就必须规定计算机执行的动作,计算机执行的动作就是计算机的指令,执行动作的集合构计算机执行的动作就是计算机的指令,执行动作的集合构成计算机程序。抽象地说:指令是计算机可以识别的命令成计算机程序。抽象地说:指令是计算机可以识别的命令。程序是计算机完成某种功能的指令集合。目前计算机能。程序是计算机完成某种功能的指令集合。目前计算机能直接识别的指令代码只有直接识别的指令代码只有“0”和和“1”。l人通过计算机可以接收的语言来指挥计算机,目前计算机人通过计算机可以接收的语言来指挥计算机,目前计算机程序设计语言可以分为机器语言、汇编语言和高级语言。程序设计语言可以分为机器语言、汇编语言和高级语言。l机器语言是用二进制指令表示的、计算机能够直接识别并机器语言是用二进制指令表示的、计算机能够直接识别并执行的语言,执行速度快是计算机机器语言的主要优点。执行的语言,执行速度快是计算机机器语言的主要优点。上一页下一页返回1.1 计算机语言发展概述计算机语言发展概述l汇编语言是用一些易读、易记的助记符来表示机器指令,汇编语言是用一些易读、易记的助记符来表示机器指令,如如ADD、CALL等。使用汇编语言编写程序提高了编程等。使用汇编语言编写程序提高了编程速度,也能够编写出质量较高的程序,检查、维护也比较速度,也能够编写出质量较高的程序,检查、维护也比较容易。但汇编语言抽象层次低,程序员编写程序的工作量容易。但汇编语言抽象层次低,程序员编写程序的工作量还是比较大。还是比较大。 高级语言屏蔽了机器语言的细节,提高了高级语言屏蔽了机器语言的细节,提高了语言抽象层次。程序中采用了具有一定含义的、容易理解语言抽象层次。程序中采用了具有一定含义的、容易理解的执行语句。高级语言不受计算机类型的限制,通用性强的执行语句。高级语言不受计算机类型的限制,通用性强,易于理解、学习和掌握。使用高级语言减少了的编程工,易于理解、学习和掌握。使用高级语言减少了的编程工作量。目前比较广泛使用的高级语言有作量。目前比较广泛使用的高级语言有 BASIC、FORTRAN、PASCAL 和和C语言。而语言。而C+ 则是一个功则是一个功能强大、应用广泛、面向过程和面向对象兼顾的程序设计能强大、应用广泛、面向过程和面向对象兼顾的程序设计语言。语言。上一页下一页返回1.1 计算机语言发展概述计算机语言发展概述1.1.2 结构化程序设计结构化程序设计l软件设计的主要工作就是设计问题求解的过程。早期的计软件设计的主要工作就是设计问题求解的过程。早期的计算机主要用于数学计算,为了完成计算任务,必须设计或算机主要用于数学计算,为了完成计算任务,必须设计或采用一个计算方法和解决问题的过程。采用一个计算方法和解决问题的过程。 20世纪中期出现世纪中期出现了结构化编程方法,提高了编程语言的层次。结构化数据了结构化编程方法,提高了编程语言的层次。结构化数据、结构化语句以及数据和过程抽象等概念使程序更便于体、结构化语句以及数据和过程抽象等概念使程序更便于体现客观事物的结构和逻辑含义。结构化程序设计采用了模现客观事物的结构和逻辑含义。结构化程序设计采用了模块分解、功能抽象以及自顶向下不断细划的方法,有效地块分解、功能抽象以及自顶向下不断细划的方法,有效地将一个较复杂的程序设计任务分解成许多易于控制和处理将一个较复杂的程序设计任务分解成许多易于控制和处理的子任务,便于开发和维护。的子任务,便于开发和维护。上一页下一页返回1.1 计算机语言发展概述计算机语言发展概述l面向过程是程序设计的一种传统的方法,它把待解决的问面向过程是程序设计的一种传统的方法,它把待解决的问题按功能划分为若干个相对独立的小问题,针对每个小问题按功能划分为若干个相对独立的小问题,针对每个小问题编写相对独立的程序模块,并由主程序按解决问题的顺题编写相对独立的程序模块,并由主程序按解决问题的顺序组合为程序模块,进而形成完整的程序。这种面向过程序组合为程序模块,进而形成完整的程序。这种面向过程的编程方法通过程序模块的调用关系来完成整个程序的功的编程方法通过程序模块的调用关系来完成整个程序的功能。在问题比较复杂的情况下,模块之间的调用关系很容能。在问题比较复杂的情况下,模块之间的调用关系很容易变得复杂和混乱。调试和修改程序的难度比较大。当某易变得复杂和混乱。调试和修改程序的难度比较大。当某一功能改变时,一点微小的变化都需要重新修改和调试程一功能改变时,一点微小的变化都需要重新修改和调试程序。序。l虽然结构化程序设计方法具有很多优点,但它仍然是一种虽然结构化程序设计方法具有很多优点,但它仍然是一种面向过程的程序设计方法。它把数据和处理数据的过程分面向过程的程序设计方法。它把数据和处理数据的过程分离为互相独立的实体,当数据改变时,所有相关的处理过离为互相独立的实体,当数据改变时,所有相关的处理过程都要进行相应的修改。程都要进行相应的修改。上一页下一页返回1.1 计算机语言发展概述计算机语言发展概述1.1.3 面向对象程序设计面向对象程序设计 l20 世纪世纪 90 年代初开始出现了面向对象的程序设计方法年代初开始出现了面向对象的程序设计方法。面向对象的程序设计方法把求解问题中所有的独立个体。面向对象的程序设计方法把求解问题中所有的独立个体都看做不同的对象,与对象相关的数据和对数据操作的处都看做不同的对象,与对象相关的数据和对数据操作的处理方法都放在一起,成为一个相互依存、不可分离的整体理方法都放在一起,成为一个相互依存、不可分离的整体。面向对象的程序设计方法将具有共同特性的对象抽象出。面向对象的程序设计方法将具有共同特性的对象抽象出共同的属性而形成类。类中的数据一般只能用本类的方法共同的属性而形成类。类中的数据一般只能用本类的方法进行处理。类通过简单的外部接口与外界发生联系。对象进行处理。类通过简单的外部接口与外界发生联系。对象与对象之间通过消息进行通信。这样,程序模块间的关系与对象之间通过消息进行通信。这样,程序模块间的关系就更为简单,程序模块的独立性、数据的安全性有了较好就更为简单,程序模块的独立性、数据的安全性有了较好的保障。的保障。上一页下一页返回1.1 计算机语言发展概述计算机语言发展概述l面向对象方法的基本原则是直接面对客观存在的事物进行面向对象方法的基本原则是直接面对客观存在的事物进行软件开发,将人们在日常生活中习惯的思维方法和表达方软件开发,将人们在日常生活中习惯的思维方法和表达方法应用到软件开发中,使软件开发从过分专业化的方法、法应用到软件开发中,使软件开发从过分专业化的方法、规则和技巧中回到直观的客观现实,回到人们通常的思维规则和技巧中回到直观的客观现实,回到人们通常的思维方法之中。方法之中。上一页返回1.2 C+ 语言的特点及其程序的开语言的特点及其程序的开发过程发过程 lC 语言是从实验室走出来的程序设计语言,在结构化程语言是从实验室走出来的程序设计语言,在结构化程序设计阶段起到了重要的作用。但在程序设计语言的发展序设计阶段起到了重要的作用。但在程序设计语言的发展过程中,面向对象的程序设计方法将代替面向过程的程序过程中,面向对象的程序设计方法将代替面向过程的程序设计方法,其对应的程序设计语言也就应运而生,这就是设计方法,其对应的程序设计语言也就应运而生,这就是C+ 语言。语言。下一页返回1.2 C+ 语言的特点及其程序的开语言的特点及其程序的开发过程发过程 1.2.1 C+ 语言的特点语言的特点 lC+语言是在语言是在C语言基础上为支持面向对象的程序设计语言基础上为支持面向对象的程序设计而研制的一个通用的程序设计语言。最初的而研制的一个通用的程序设计语言。最初的C+称为称为“带类的带类的C”,1983年正式命名为年正式命名为C+。C+的标准化工的标准化工作从作从1989年开始,年开始,1994年制定了年制定了ANSIC+标准草案标准草案。现在普遍使用的是。现在普遍使用的是Microsoft公司的公司的VisualC+6.0版本和版本和Borland公司的公司的C+Builder3.0及以上版本,及以上版本,它们都是在它们都是在Windows操作系统环境下运行的可视化集操作系统环境下运行的可视化集成开发工具。成开发工具。上一页下一页返回1.2 C+ 语言的特点及其程序的开语言的特点及其程序的开发过程发过程 C+语言有如下特点:语言有如下特点:l(1)类和数据封装:)类和数据封装:C+语言中的类是对问题空间的语言中的类是对问题空间的高度抽象和概括,是数据抽象及信息隐藏的工具。抽象的高度抽象和概括,是数据抽象及信息隐藏的工具。抽象的数据和相关的操作被封装在一个类中。对象可以被理解为数据和相关的操作被封装在一个类中。对象可以被理解为特定类型的特定类型的“变量变量”,对象之间可以通过发送和接收消息,对象之间可以通过发送和接收消息相互联系,接收消息的对象通过调用方法来实现相应的操相互联系,接收消息的对象通过调用方法来实现相应的操作。作。l(2)访问控制:类的成员包括公有、私有和保护成员,)访问控制:类的成员包括公有、私有和保护成员,它们有不同的访问权限。声明为公有的成员,允许通过相它们有不同的访问权限。声明为公有的成员,允许通过相应对象进行访问;私有成员只能由类的成员函数访问;保应对象进行访问;私有成员只能由类的成员函数访问;保护成员可以由该类及其派生类的成员函数访问。通过将数护成员可以由该类及其派生类的成员函数访问。通过将数据成员设置为不同的访问权限,实现了信息的隐藏。据成员设置为不同的访问权限,实现了信息的隐藏。上一页下一页返回1.2 C+ 语言的特点及其程序的开语言的特点及其程序的开发过程发过程 l(3)构造函数和析构函数:类可以包含一组构造函数和)构造函数和析构函数:类可以包含一组构造函数和析构函数。构造函数是在创建一个对象时由系统自动调用析构函数。构造函数是在创建一个对象时由系统自动调用该函数以完成对象数据成员的初始化工作。析构函数是在该函数以完成对象数据成员的初始化工作。析构函数是在一个特定对象撤销时系统自动调用该函数以完成正常的清一个特定对象撤销时系统自动调用该函数以完成正常的清除工作。除工作。l(4)对象和消息:对象是面向对象程序设计的基本元件)对象和消息:对象是面向对象程序设计的基本元件。对象通过消息向其他对象发送要操作的信息,接收消息。对象通过消息向其他对象发送要操作的信息,接收消息的对象根据消息的内容调用相应的函数。的对象根据消息的内容调用相应的函数。C+中的消息中的消息传递类似于传递类似于C语言中的函数调用。语言中的函数调用。上一页下一页返回1.2 C+ 语言的特点及其程序的开语言的特点及其程序的开发过程发过程 l(5)函数和运算符重载:)函数和运算符重载:C+允许将已有的函数或运允许将已有的函数或运算符重新赋予新的含义,使得它们可以用于用户所希望的算符重新赋予新的含义,使得它们可以用于用户所希望的操作对象。运算符和函数的重载使得用户可以以更加自然操作对象。运算符和函数的重载使得用户可以以更加自然的方式实现对对象的操作。的方式实现对对象的操作。l(6)友元:友元是)友元:友元是C+语言的又一个主要特性。通常语言的又一个主要特性。通常类的私有成员禁止类外函数和类的直接访问,而友元机制类的私有成员禁止类外函数和类的直接访问,而友元机制允许有选择地突破这一限制。在类定义中声明非成员函数允许有选择地突破这一限制。在类定义中声明非成员函数或其他类为该类的友元函数或友元类,这些友元就可以访或其他类为该类的友元函数或友元类,这些友元就可以访问该类的私有和保护成员。问该类的私有和保护成员。上一页下一页返回1.2 C+ 语言的特点及其程序的开语言的特点及其程序的开发过程发过程 l(7)继承性和派生类:在类的定义时,会出现多个类享)继承性和派生类:在类的定义时,会出现多个类享有相似特征的情况,这时,不必在每个类中复制这些成员有相似特征的情况,这时,不必在每个类中复制这些成员,可以通过定义一个包含它们共同成员的基类,然后通过,可以通过定义一个包含它们共同成员的基类,然后通过类的继承,从基类派生出派生类。通过继承机制,为派生类的继承,从基类派生出派生类。通过继承机制,为派生类增加新的操作和成员,改写基类的部分内容,得到更加类增加新的操作和成员,改写基类的部分内容,得到更加适用的类。继承机制有力地支持了面向对象的程序设计思适用的类。继承机制有力地支持了面向对象的程序设计思想。想。l(8)多态性和虚函数:多态性是指一种语义多种含义。)多态性和虚函数:多态性是指一种语义多种含义。在在C+中的虚函数支持动态联编,从而也支持了多态性中的虚函数支持动态联编,从而也支持了多态性。多态性允许在设计中使用高级的抽象,使得高层次代码。多态性允许在设计中使用高级的抽象,使得高层次代码只需要写一次,通过提供不同的底层服务来满足发展的需只需要写一次,通过提供不同的底层服务来满足发展的需求,进而提高了代码的重用性。求,进而提高了代码的重用性。上一页下一页返回1.2 C+ 语言的特点及其程序的开语言的特点及其程序的开发过程发过程 1.2.2C+程序的开发过程程序的开发过程lC+语言程序开发的过程要经过源代码编辑、源代码编语言程序开发的过程要经过源代码编辑、源代码编译和运行目标代码三个步骤。程序员根据问题求解的需要译和运行目标代码三个步骤。程序员根据问题求解的需要编制出源程序,在相应的编辑器上将其录入并假设该文件编制出源程序,在相应的编辑器上将其录入并假设该文件名为名为File.cpp。l经过编译该文件后将生成对应的目标文件,其文件名为经过编译该文件后将生成对应的目标文件,其文件名为File.obj。File.obj文件是源程序的机器语言组成的目文件是源程序的机器语言组成的目标代码,该文件还不是可执行文件,因为目标代码只是一标代码,该文件还不是可执行文件,因为目标代码只是一个个的程序块,需要相互连接成为一个适应操作系统环境个个的程序块,需要相互连接成为一个适应操作系统环境的程序整体。的程序整体。上一页下一页返回1.2 C+ 语言的特点及其程序的开语言的特点及其程序的开发过程发过程 l连接程序将源代码程序生成的多个目标代码文件和系统提连接程序将源代码程序生成的多个目标代码文件和系统提供的库文件中的有关代码全部连接在一起,生成一个可以供的库文件中的有关代码全部连接在一起,生成一个可以执行的文件,其文件名为执行的文件,其文件名为File.exe。l执行执行File.exe文件,程序被执行后,一般会在屏幕上输文件,程序被执行后,一般会在屏幕上输出程序运行结果。用户可根据运行结果判断程序是否有错出程序运行结果。用户可根据运行结果判断程序是否有错误。一个程序编写好后,在生成可执行文件之前需要改正误。一个程序编写好后,在生成可执行文件之前需要改正编译和连接时出现的致命性错误或警告,最后才能生成没编译和连接时出现的致命性错误或警告,最后才能生成没有错误的可执行文件。有错误的可执行文件。上一页返回1.3C+ 程序的结构程序的结构1.3.1简单的简单的C+程序程序l【例【例1.1】C+程序示例程序示例:l#include intFindbig(intx,inty) returnxy?x:y; voidmain() inta,b,c;coutab;c=Findbig(a,b); couta=a,b=b,其中较大值,其中较大值为为cendl; 假设运行该程序,从键盘上输入假设运行该程序,从键盘上输入34和和48两个整数,按回两个整数,按回车键。车键。下一页返回1.3C+ 程序的结构程序的结构l【例【例1.1】程序的运行结果如下:】程序的运行结果如下: 请输入请输入a和和b的值:的值:3448 a=34,b=48,其中较大值为其中较大值为48l该程序的功能是从计算机键盘上输入两个整数,并将这两该程序的功能是从计算机键盘上输入两个整数,并将这两个整数和其中较大的数显示在计算机屏幕上。个整数和其中较大的数显示在计算机屏幕上。上一页下一页返回1.3C+ 程序的结构程序的结构l在上述程序中在上述程序中cin表示标准输入设备键盘,表示标准输入设备键盘,“”是预定是预定义的提取操作符。在一条输入语句中,可多次使用义的提取操作符。在一条输入语句中,可多次使用“”提取操作符,每一次都能够从键盘输入上提取数提取操作符,每一次都能够从键盘输入上提取数据为其右边的变量取得赋值。在键盘上输入多个数据时,据为其右边的变量取得赋值。在键盘上输入多个数据时,必须用空白符(空格,制表符或回车键)分隔各数据。数必须用空白符(空格,制表符或回车键)分隔各数据。数据输入结束时按回车键。程序中据输入结束时按回车键。程序中cout表示标准输出设备表示标准输出设备显示器,显示器,“”是插入操作符,它表示向显示器输出(是插入操作符,它表示向显示器输出(插入)数据。在一条输出语句中,也可以多次使用插入)数据。在一条输出语句中,也可以多次使用“”和和“”操作符,使计算机能够根据这些流对操作符,使计算机能够根据这些流对象和操作符进行相应的操作。象和操作符进行相应的操作。上一页下一页返回1.3C+ 程序的结构程序的结构l3.函数函数l主函数主函数main是是C+程序执行的起始点,它由主函数头程序执行的起始点,它由主函数头和主函数体组成。主函数头以和主函数体组成。主函数头以voidmain()为标识。主为标识。主函数体在其后的一对大括号内。函数体在其后的一对大括号内。main()前的前的void是函是函数返值类型标识符,它表示无返回值的函数,其小括号内数返值类型标识符,它表示无返回值的函数,其小括号内还可以包含参数。还可以包含参数。l函数体中第一条语句是变量定义语句,将函数体中第一条语句是变量定义语句,将a,b,c定义为定义为整型变量;第二条语句是输出语句,将插入操作符整型变量;第二条语句是输出语句,将插入操作符“”后的字符串显示在屏幕上;第三条语句是输入语后的字符串显示在屏幕上;第三条语句是输入语句,从键盘上输入两个整数分别赋值给变量句,从键盘上输入两个整数分别赋值给变量a和和b;第四;第四条语句是赋值语句,条语句是赋值语句,上一页下一页返回1.3C+ 程序的结构程序的结构l利用变量利用变量a和和b的值调用的值调用Findbig()函数并将返值赋给变函数并将返值赋给变量量c;第五条语句是输出语句,依次将每个插入操作符;第五条语句是输出语句,依次将每个插入操作符后的数据项显示在屏幕上。后的数据项显示在屏幕上。l函数由函数头和函数体组成。源程序中的函数由函数头和函数体组成。源程序中的Findbig()是是函数名。主函数调用函数时,使用函数名。函数头函数名。主函数调用函数时,使用函数名。函数头Findbig()前的前的int表示该函数的返值为整型数,表示该函数的返值为整型数,Findbig后面括号内是函数的形式参数。函数体的内容后面括号内是函数的形式参数。函数体的内容安排在函数头下面的一对大括号内。安排在函数头下面的一对大括号内。上一页下一页返回1.3C+ 程序的结构程序的结构4.语句语句l语句是组成程序的基本单元。函数由若干条语句构成,其语句是组成程序的基本单元。函数由若干条语句构成,其中空函数是没有函数体的。语句由单词组成,单词之间用中空函数是没有函数体的。语句由单词组成,单词之间用空格符分隔。空格符分隔。C+程序中的语句以程序中的语句以“;”结束,结束,“;”既是语句的组成部分又是语句的分隔符。既是语句的组成部分又是语句的分隔符。l在在C+语句中,表达式语句使用较多。表达式语句由一语句中,表达式语句使用较多。表达式语句由一个表达式后面加分号组成。一般而言,一个表达式加上分个表达式后面加分号组成。一般而言,一个表达式加上分号就构成一个语句。只有分号而没有表达式的语句称为空号就构成一个语句。只有分号而没有表达式的语句称为空语句。除了表达式语句和空语句之外,语句。除了表达式语句和空语句之外,C+还有选择结还有选择结构语句、循环语句及转移控制语句等。构语句、循环语句及转移控制语句等。5.变量变量l多数程序都需要声明和使用变量。变量的类型很多,这些多数程序都需要声明和使用变量。变量的类型很多,这些将在后面的章节中予以介绍。将在后面的章节中予以介绍。上一页下一页返回1.3C+ 程序的结构程序的结构1.3.3C+程序的书写格式和注释程序的书写格式和注释l1.C+程序的书写格式程序的书写格式lC+程序的书写格式基本上与程序的书写格式基本上与C语言程序书写格式相同语言程序书写格式相同,其基本原则为:一行一般写一条语句,较短的语句一行,其基本原则为:一行一般写一条语句,较短的语句一行可以写多个。长语句可以一条写多行。分行的原则是不能可以写多个。长语句可以一条写多行。分行的原则是不能将一个单词分开。用双引号括起来的字符串最好不要分开将一个单词分开。用双引号括起来的字符串最好不要分开,如果一定要分开,有的编译系统要求在行的末尾加续行,如果一定要分开,有的编译系统要求在行的末尾加续行符符“”。C+程序在书写时要尽量提高可读性,因此,程序在书写时要尽量提高可读性,因此,采用适当的缩进格式书写是常用的方法。表示同一类事物采用适当的缩进格式书写是常用的方法。表示同一类事物的语句行要对齐。例如:一个循环的循环体中的各个语句的语句行要对齐。例如:一个循环的循环体中的各个语句要对齐;同一个选择语句的成分子句也要对齐等。要对齐;同一个选择语句的成分子句也要对齐等。上一页下一页返回1.3C+ 程序的结构程序的结构l2.C+程序的注释程序的注释l注释在程序中的作用是对程序进行注解和说明。在源程序注释在程序中的作用是对程序进行注解和说明。在源程序中加入注释,帮助我们对程序功能的理解,增强了程序的中加入注释,帮助我们对程序功能的理解,增强了程序的可读性。编译程序在对源程序进行编译时会自动忽略注释可读性。编译程序在对源程序进行编译时会自动忽略注释部分。因此注释部分对于程序的执行功能没有任何作用。部分。因此注释部分对于程序的执行功能没有任何作用。在源程序的任何地方都可加入注释,但多数情况下是在一在源程序的任何地方都可加入注释,但多数情况下是在一个语句行的结尾或单独一行进行注释(称为注释行)。个语句行的结尾或单独一行进行注释(称为注释行)。C+有两种加注释的方法:其一是使用双斜线有两种加注释的方法:其一是使用双斜线“/”,从它开始到该语句行结束的所有内容都被看做为注释;其从它开始到该语句行结束的所有内容都被看做为注释;其二是在二是在“/*”和和“*/”之内的所有内容被看做注释。之内的所有内容被看做注释。l这是一种沿用这是一种沿用C语言的注释方法。语言的注释方法。上一页返回1.4VisualC+6.0开发环境开发环境l目前目前C+有多种版本,但使用较为普遍的是有多种版本,但使用较为普遍的是VisualC+6.0。VisualC+6.0是美国是美国Microsoft公司研制开发的可视化公司研制开发的可视化C+语言,它是一个集语言,它是一个集C+程序程序源程序编辑、编译、连接、调试、运行和在线帮助等功能源程序编辑、编译、连接、调试、运行和在线帮助等功能于一体的软件开发工具。于一体的软件开发工具。l下面将简单介绍下面将简单介绍VisualC+6.0开发环境,使初学者掌开发环境,使初学者掌握应用握应用VisualC+集成环境进行集成环境进行C+程序的编辑、编程序的编辑、编译、连接和运行一个简单程序的全过程。译、连接和运行一个简单程序的全过程。下一页返回1.4VisualC+6.0开发环境开发环境1.4.1VisualC+6.0集成开发环境简集成开发环境简介介lVisualC+是是Microsoft公司提供的在公司提供的在Windows环环境下应用程序开发的境下应用程序开发的C/C+编译器,它是编译器,它是MicrosoftVisualStudio套件的一个组成部分。相比套件的一个组成部分。相比其他的编程工具而言,其他的编程工具而言,VisualC+在提供可视化的编程在提供可视化的编程方法同时,也适应编写直接对系统进行底层操作的程序。方法同时,也适应编写直接对系统进行底层操作的程序。随随VisualC+一起提供的一起提供的Microsoft基础类库(基础类库(MicrosoftFoundationClassLibrary,MFC)对)对Windows2000/NT/XP所用的所用的Win32应用程序接口应用程序接口(Win32ApplicationProgrammingInterface)进行了封装,这使得进行了封装,这使得Windows2000/NT/XP上一页下一页返回1.4VisualC+6.0开发环境开发环境l应用程序的开发可以使用完全的面向对象的方法进行,从应用程序的开发可以使用完全的面向对象的方法进行,从而能够大量地节省应用程序的开发周期,降低开发成本,而能够大量地节省应用程序的开发周期,降低开发成本,也使也使Windows程序员从大量的繁杂的劳动中解脱出来程序员从大量的繁杂的劳动中解脱出来lVisualC+软件包含有许多单独的组件,例如编辑器、软件包含有许多单独的组件,例如编辑器、编译器、连接器、生成实用程序、调试器以及各种各样为编译器、连接器、生成实用程序、调试器以及各种各样为开发开发MicrosoftWindows下的下的C/C+程序而设计的程序而设计的工具。工具。VisualStudio把所有的把所有的VisualC+工具结合在工具结合在一起,集成为一个整体,通过一个由窗口、对话框、菜单一起,集成为一个整体,通过一个由窗口、对话框、菜单、工具栏、快捷键等组成的完整系统,就可以观察和控制、工具栏、快捷键等组成的完整系统,就可以观察和控制整个开发过程。该环境就是整个开发过程。该环境就是VisualC+中所能中所能“看见看见”的所有东西,一般情况下,术语的所有东西,一般情况下,术语VisualC+就是指这个就是指这个产品,又是指它的开发环境。产品,又是指它的开发环境。上一页下一页返回1.4VisualC+6.0开发环境开发环境lVisualC+6.0集成开发环境的操作界面如集成开发环境的操作界面如图图11所示所示。l最顶行是窗口标题栏,将显示当前编辑的程序文件名。第最顶行是窗口标题栏,将显示当前编辑的程序文件名。第二行是菜单栏,菜单栏中的每一项都对应一个下拉菜单;二行是菜单栏,菜单栏中的每一项都对应一个下拉菜单;下拉菜单中的每一项都是一条操作命令,具有一定的操作下拉菜单中的每一项都是一条操作命令,具有一定的操作功能。第三行是按钮工具栏,单击其中各项,可以完成相功能。第三行是按钮工具栏,单击其中各项,可以完成相应的规定操作。屏幕中间的左半区是工作区窗口,右半区应的规定操作。屏幕中间的左半区是工作区窗口,右半区是程序编辑窗口。屏幕的最下部是状态输出窗口。是程序编辑窗口。屏幕的最下部是状态输出窗口。上一页下一页返回1.4VisualC+6.0开发环境开发环境1.4.2VisualC+6.0程序的开发流程程序的开发流程l用用C+语言编写好一个完整的程序后,要使程序达到预语言编写好一个完整的程序后,要使程序达到预期的功能,要有如下四个步骤:第一步要上机编辑源程序期的功能,要有如下四个步骤:第一步要上机编辑源程序,文件扩展名为,文件扩展名为.cpp,第二步是编译源程序生成目标代,第二步是编译源程序生成目标代码文件,目标代码文件名与源程序文件名相同,其扩展名码文件,目标代码文件名与源程序文件名相同,其扩展名为为.obj。第三步运行连接程序,将目标代码文件与。第三步运行连接程序,将目标代码文件与C+的库文件相连接生成可执行文件,可执行文件名与源程序的库文件相连接生成可执行文件,可执行文件名与源程序的文件名相同,扩展名为的文件名相同,扩展名为.exe。第四步运行可执行文件。第四步运行可执行文件,调试检查程序中的错误及验证能否实现预期的功能。,调试检查程序中的错误及验证能否实现预期的功能。l第一次使用第一次使用VisualC+6.0集成开发环境之前,最好建集成开发环境之前,最好建立一个专用子目录。该子目录专门用于保存立一个专用子目录。该子目录专门用于保存C+源程序源程序、目标文件、可执行文件以及系统自动生成的其他文件。、目标文件、可执行文件以及系统自动生成的其他文件。上一页下一页返回1.4VisualC+6.0开发环境开发环境l若在计算机上安装好了若在计算机上安装好了VisualC+6.0,应用该开发环,应用该开发环境开发境开发C+程序步骤如下:程序步骤如下:l(1)启动)启动VisualC+6.0集成开发环境。单击桌面左集成开发环境。单击桌面左下角的下角的“开始开始”“程序程序”“MicrosoftVisualStudio6.0”“MicrosoftVisualC+6.0”命令,即可进入命令,即可进入VisualC+6.0集成开集成开发环境。发环境。l(2)创建一个工程。)创建一个工程。l单击单击“文件文件”“新建新建”命令,弹出新建对话框。单击命令,弹出新建对话框。单击“工程工程”选项卡(见选项卡(见图图12),在),在“工程工程”列表中选择列表中选择“Win32ConsoleApplication”上一页下一页返回1.4VisualC+6.0开发环境开发环境l(Win32控制台应用程序),在控制台应用程序),在“工程工程”文本框输入工文本框输入工程名称,再在程名称,再在“位置位置”文本框中指定文件路径;单击文本框中指定文件路径;单击“确确定定”按钮。在弹出的按钮。在弹出的“Win32ConsoleApplicationStep1of1”对话框中选择对话框中选择“Anemptyproject”选选项(见项(见图图13),然后单击),然后单击“完成完成”按钮。再在按钮。再在“NewProjectInformation”对话框(见对话框(见图图14)中单击中单击“确定确定”按钮,即完成了对一个工程的创建工作(按钮,即完成了对一个工程的创建工作(见见图图15)。)。上一页下一页返回1.4VisualC+6.0开发环境开发环境l(3)创建编辑)创建编辑C+源程序。源程序。l单击菜单单击菜单“工程工程”“添加工程添加工程”“新建新建”命令,在弹命令,在弹出的出的“新建新建”对话框的文件列表中选择对话框的文件列表中选择“C+SourceFile”(见(见图图16),在),在“文件文件”文本文本框中输入文件名,单击框中输入文件名,单击“确定确定”按钮,完成新建按钮,完成新建C+源源程序文件工作,进入一个编辑程序文件工作,进入一个编辑C+源程序的窗口。源程序的窗口。l(4)编辑)编辑C+源程序文件的内容。源程序文件的内容。l在文件编辑窗口中输入源程序代码,输入完程序代码后单在文件编辑窗口中输入源程序代码,输入完程序代码后单击菜单击菜单“文件文件”“保存保存”命令保存已经输入的源程序文命令保存已经输入的源程序文件(见件(见图图17)。)。上一页下一页返回1.4VisualC+6.0开发环境开发环境(5)编译程序源文件。)编译程序源文件。l源程序文件编辑完成后,要将其编译成目标文件。编译时源程序文件编辑完成后,要将其编译成目标文件。编译时,在,在VisualC+6.0集成开发环境的菜单栏中单击集成开发环境的菜单栏中单击“编编译译”“编译编译”命令,即可对编辑窗口中的源程序文件进命令,即可对编辑窗口中的源程序文件进行编译,生成与源文件名相同、扩展名为行编译,生成与源文件名相同、扩展名为.obj的目标文的目标文件。件。l编译一个源程序的过程是:首先要处理预处理命令行,将编译一个源程序的过程是:首先要处理预处理命令行,将文件包含命令所指定的头文件用实际的头文件内容代替,文件包含命令所指定的头文件用实际的头文件内容代替,注意,使用注意,使用#include包含预处理命令也可以包含包含预处理命令也可以包含.cpp的程序文件;然后删除所有的注释内容,用一个空格取代的程序文件;然后删除所有的注释内容,用一个空格取代;再按行从上到下地进行语法分析;最后生成对应的目标;再按行从上到下地进行语法分析;最后生成对应的目标文件。文件。上一页下一页返回1.4VisualC+6.0开发环境开发环境l编译时检查出的错误分为两类:一类是错误编译时检查出的错误分为两类:一类是错误“Error”,也称为致命性错误,该类错误必须进行修改,否则不能进也称为致命性错误,该类错误必须进行修改,否则不能进行下一步的处理;另一类是警告性错误行下一步的处理;另一类是警告性错误“Warning”,它一般不影响进入下一步处理,但也应将其纠正。它一般不影响进入下一步处理,但也应将其纠正。l在编译完一个源程序文件后,将在状态输出窗口显示各类在编译完一个源程序文件后,将在状态输出窗口显示各类错误的信息,根据错误信息要进一步修改、调试程序,直错误的信息,根据错误信息要进一步修改、调试程序,直到编译后的状态输出窗口显示到编译后的状态输出窗口显示“0error(s)0warning(s)”