《C++程序设计教程实验指导书.docx》由会员分享,可在线阅读,更多相关《C++程序设计教程实验指导书.docx(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、面向对象程序设计 实验指导书前 言本书是本科课程面向对象程序设计的实验指示书,一般人员也可以使用它作为学习C+语言的上机指导。因为选择以Microsoft公司的C+开发环境Visual C+作为实验环境,因此书的前一部分介绍了Visual C+的一些基本知识,并且在实验进行的过程中穿插介绍使用Visual C+的一些技巧。书的内容分为两大部分:第一部分介绍Visual C+实验环境;第二部分是具体的实验安排。书中共安排了八次实验,每个实验3个学时。具体安排是:实验序号实验内容1熟悉实验环境2简单程序开发3函数与程序结构4复杂数据类型5结构和类6继承与虚函数7重载与文件I/O8面向对象程序设计其
2、中第一个实验和最后一个实验是有关Visual C+实验环境的,其他每个实验与C+语言的一个重要知识点对应。每个实验都列出了实验目的、实验要求以及思考问题,一些实验还列出了测试数据。使用本书前,请先阅读以下内容:1C+语言实验环境配置要求硬件配置:586以上PC兼容机或品牌机,配有彩色显示器、鼠标、键盘,内存不小于20MB,硬盘自由空间不少于60MB。推荐配置为内存32MB或64MB(或以上),硬盘自由空间500MB以上。软件配置:操作系统:Windows95, Windows98, Windows NT3.51以上版本。开发集成环境:Microsoft Visual C+5.0以上版本2建立自
3、己的工作目录你需要在计算机上先建立自己的工作目录,所有的实验都在该工作目录下进行。使用Visual C+建立新项目时,需要指定该目录作为项目所在的目录。本书中假设你的工作目录为c:studentyour_name,具体的实验目录由你的指导教师指定。3安装Visual C+Visual C+ 6.0和Visual C+ 5.0最大的不同是在联机帮助系统上做了很大改变。Visual C+ 5.0的帮助系统直接集成在开发环境之中,在安装Visual C+ 5.0时就可以选择安装帮助内容。而Visual C+ 6.0的联机帮助系统采用了MSDN(Microsoft Developer Network)
4、库,在安装Visual C+ 6.0时,只安装了MSDN的索引,实际的内容在光盘上。如果希望能脱离光盘使用帮助系统,需要在安装了Visual C+ 6.0以后,再运行MSDN的安装程序,把完整的库装到硬盘上。目 录第一部分 VISUAL C+实验环境介绍.3一、Visual C+简介3二、项目开发过程4三、集成开发环境Developer Studio4四、常用功能键及其意义7第二部分 实验8实验一熟悉实验环境8实验二简单程序开发15实验三函数与程序结构17实验四复杂数据类型20实验五结构和类23实验六继承与虚函数28实验七重载与文件I/O32实验八面向对象程序设计34第一部分 Visual C
5、+实验环境介绍一、Visual C+简介Visual C+是Microsoft公司的Visual Studio开发工具箱中的一个C+程序开发包。VisualStudio提供了一整套开发Internet和Windows应用程序的工具,包括VisualC+, Visual Basic, Visual Foxpro, Visual InterDev, Visual J+以及其他辅助工具,如代码管理工具Visual SourceSafe和联机帮助系统MSDN。Visual C+包中除包括C+编译器外,还包括所有的库、例子和为创建Windows应用程序所需要的文档。从最早期的1.0版本,发展到最新的6.
6、0版本,Visual C+已经有了很大的变化,在界面、功能、库支持方面都有许多的增强。最新的6.0版本在编译器、MFC类库、编辑器以及联机帮助系统等方面都比以前的版本做了较大改进。Visual C+一般分为三个版本:学习版、专业版和企业版,不同的版本适合于不同类型的应用开发。实验中可以使用这三个版本的任意一种。Visual C+集成开发环境(IDE)集成开发环境(IDE)是一个将程序编辑器、编译器、调试工具和其他建立应用程序的工具集成在一起的用于开发应用程序的软件系统。Visual C+软件包中的Developer Studio就是一个集成开发环境,它集成了各种开发工具和VC编译器。程序员可以
7、在不离开该环境的情况下编辑、编译、调试和运行一个应用程序。IDE中还提供大量在线帮助信息协助程序员做好开发工作。Developer Studio中除了程序编辑器、资源编辑器、编译器、调试器外,还有各种工具和向导(如AppWizard和ClassWizard),以及MFC类库,这些都可以帮助程序员快速而正确地开发出应用程序。向导(Wizard)向导是一个通过一步步的帮助引导你工作的工具。Developer Studio中包含三个向导,用来帮助程序员开发简单的Windows程序,它们是:AppWizard:用来创建一个Windows程序的基本框架结构。AppWizard向导会一步步向程序员提出问题
8、,询问他所创建的项目的特征,然后AppWizard会根据这些特征自动生成一个可以执行的程序框架,程序员然后可以在这个框架下进一步填充内容。AppWizard支持三类程序:基于视图/文档结构的单文档应用、基于视图/文档结构的多文档应用程序和基于对话框的应用程序。也可以利用AppWizard生成最简单的控制台应用程序(类似于DOS下用字符输入输出的程序)。ClassWizard:用来定义AppWizard所创建的程序中的类。可以利用ClassWizard在项目中增加类、为类增加处理消息的函数等。ClassWizard也可以管理包含在对话框中的控件,它可以将MFC对象或者类的成员变量与对话框中的控件
9、联系起来。ActiveX Control Wizard:用于创建一个ActiveX控件的基本框架结构。ActiveX控件是用户自定义的控件,它支持一系列定义的接口,可以作为一个可再利用的组件。MFC库库(library)是可以重复使用的源代码和目标代码的集合。MFC(Microsoft Fundamental Casses)是Visual C+开发环境所带的类库,在该类库中提供了大量的类,可以帮助开发人员快速建立应用程序。这些类可以提供程序框架、进行文件和数据库操作、建立网络连接、进行绘图和打印等各种通用的应用程序操作。使用MFC库开发应用程序可以减少很多工作量。 二、项目开发过程在一个集成的
10、开发环境中开发项目非常容易。一个用C+开发的项目的通用开发过程可以用左图表示。建立一个项目的第一步是利用编辑器建立程序代码文件,包括头文件、代码文件、资源文件等。然后,启动编译程序,编译程序首先调用预处理程序处理程序中的预处理命令(如#include,#define等),经过预处理程序处理的代码将作为编译程序的输入。编译对用户程序进行词法和语法分析,建立目标文件,文件中包括机器代码、连接指令、外部引用以及从该源文件中产生的函数和数据名。此后,连接程序将所有的目标代码和用到的静态连接库的代码连接起来,为所有的外部变量和函数找到其提供地点,最后产生一个可执行文件。一般有一个makefile文件来协
11、调各个部分产生可执行文件。 可执行文件分为两种版本:Debug和Release。Debug版本用于程序的开发过程,该版本产生的可执行程序带有大量的调试信息,可以供调试程序使用,而Release版本作为最终的发行版本,没有调试信息,并且带有某种形式的优化。学员在上机实习过程中可以采用Debug版本,这样便于调试。选择是产生Debug版本还是Release版本的方法是:在Developer Studio中选择菜单Build|Set Active Configuration,在弹出的对话框中,选择所要的类型,然后选择OK关闭对话框。Visual C+ 集成开发环境中集成了编辑器、编译器、连接器以及调
12、试程序,覆盖了的开发应用程序的整个过程,程序员不需要脱离这个开发环境就可以开发出完整的应用程序。三、集成开发环境Developer Studio进入Developer Studio如果你使用的是Visual C+ 6.0,则要进入Developer Studio,需要单击任务栏中“开始”后选择“程序”,找到Microsoft Visual Studio 6.0文件夹后,单击其中的Microsoft Visual C+6.0图标,则可以启动Developer Studio。如果你使用的是Visual C+ 5.0,则要进入Developer Studio,需要单击任务栏中“开始”后选择“程序”,
13、找到Microsoft Visual C+ 5.0文件夹后,单击其中的Microsoft Visual C+5.0图标,则可以启动Developer Studio。Developer Studio的界面Developer Studio用户界面是一个由窗口、工具条、菜单、工具及其他部分组成的一个集成界面。通过这个界面,用户可以在同一环境下创建、测试、调试应用程序。VC5和VC6的Developer Studio的初始化界面有一些小的差异,VC5的界面如下:主要部分介绍如下: 工具条和菜单,用于提供用户操作的命令接口。菜单以文字和层次化的方式提供命令接口,工具条由一系列按钮组成。这些按钮用一系列小
14、的位图标志。工具条以图标方式提供快速的命令选择。菜单和工具条在开发的不同进程有不同显示内容。当第一次打开Developer Studio时,标准的工具条和菜单就会显示出来,随着开发的不同步骤,不同的工具条就会自动显示出来,菜单也会有所变化。工具条有很多种,你可以显示任意多的工具条,只要屏幕空间允许。工具条可以任意移动,也可以放大缩小。工具条和菜单条功能基本相同,唯一的区别是:菜单条总占据一行,并且一般不能隐藏。 工作区窗口,这个窗口包含关于正在开发的这个项目的有关信息。在没有开发任何项目时,该窗口显示系统的帮助目录。当打开一个项目以后,工作区窗口将会显示关于当前项目的文件信息和类的信息。下图是
15、打开一个项目hello以后的工作区窗口(假设该项目由两个文件cpp1.cpp, cpp2.cpp组成)。 文档窗口区,这个区域可以显示各种类型的文档,如源代码文件、头文件、资源文件等。可以同时打开多个文档。 输出窗口,输出窗口用来显示几种信息,可以通过选择不同的标签显示不同的信息。这些信息包括:编译连接结果信息(Build标签)、调试信息(Debug标签)、查找结果信息(Find in Files标签)。其中查找结果信息有两个标签,可以显示两次在文件中查找指定内容的结果VC6因为在联机帮助系统上比VC5做了很大改进,所以在工作区窗口中没有VC5的InfoView,初始化界面的其他部分都与VC5
16、相似。Deleveloper Studio使用Microsoft Developer Network(MSDN)库作为它的联机帮助系统。其界面如下:总的来说,窗口和命令接口(包括工具条和菜单条)是构成界面的最主要组成部分。通常有两种窗口:文档窗口和可附着(docking)窗口。文档窗口显示在文档窗口区,用于显示和编辑文档,其的大小和位置可以随其所处的Developer Studio窗口的改变而改变,可以最大化和最小化。可附着窗口可以附着于应用程序窗口的边界,也可以浮在屏幕上的任何位置。可附着窗口有:工作区(workspace)窗口,输出(output)窗口,调试窗口(包括variable, w
17、atch, local等窗口)等。文档窗口的位置、大小及是否可见和它所在的项目有关,docking窗口的位置、大小及是否可见则与项目进行的状态以及各种编辑和调试的操作有关。各种窗口和各种工具条以及菜单构成了界面的布局。一旦用户决定了一种界面布局,系统就会为一直为用户保持这种布局,直到用户下一次改变该布局为止。获得帮助信息大多数时候,你可以通过按F1得到上下文帮助。如在编辑文件时按F1可以得到有关编辑的帮助,在编译连接错误信息上按F1可以得到关于该错误的帮助信息。如果想系统地获得帮助,在VC5中可以单击工作区窗口的InfoView标签,从其中选择要想了解的内容。要想查找关于某个话题的帮助,可以选
18、择菜单Help|Search,在查询对话框中进行查找。VC6中,可以通过选择菜单Help|Contents来启动MSDN查阅器,MSDN查阅器是一个功能强大的程序,可以方便地浏览、查找信息,要想知道具体如何使用MSDN查阅器,可以在MSDN查阅器中选菜单Help下的命令。Visual C+的编辑器Developer Studio包含一个功能强大的编辑器,可以编辑将被编译成Windows程序的Visual C+源文件。这个编辑器有点象字处理器,但是没有字处理器具备的复杂的排版、文本格式等功能,它注重的是如何帮助程序员快速高效地编制程序。它具有以下特点: 自动语法。用高亮度和不同颜色的字来显示不同
19、的语法成分,如注释、关键字和一般代码用不同的颜色显示 自动缩进。帮助你排列源代码,使其可读性更强 参数帮助。在编辑时用到预定义的windows函数时,可以自动为你显示函数参数 集成的关键字帮助。能够使你快速得到任何关键字、MFC类或Windows函数的帮助信息(按F1即可) 拖放编辑。能够用鼠标选择文本并自由拖动到任意位置 自动错误定位。能自动将光标移动到有编译错误的源代码处。当你打开一个源代码文件时,就可以利用编辑器对其进行编辑。源代码文件在文档显示区显示,每个文件有独立的显示窗口。如果你选择用其他编辑器编辑源文件,必须将它以纯文本的方式保存。VC的编译器不能处理其中有特别格式字符的文件。四
20、、常用功能键及其意义为了使程序员能够方便快捷地完成程序开发,开发环境提供了大量快捷方式来简化一些常用操作的步骤。键盘操作直接、简单,而且非常方便,因而程序员非常喜欢采用键盘命令来控制操作。下面是一些最常用的功能键,希望学员在实验中逐步掌握。操作类型功能键对应菜单含义文件操作Ctrl+NFile|New创建新的文件、项目等Ctrl+OFile|Open打开项目、文件等Ctrl+SFile|Save保存当前文件编辑操作Ctrl+XEdit|Cut剪切Ctrl+CEdit|Copy复制Ctrl+VEdit|Paste粘贴Ctrl+ZEdit|Undo撤消上一个操作Ctrl+YEdit|Redo重复上
21、一个操作Ctrl+AEdit|Select All全选DelEdit|Del删除光标后面的一个字符建立程序操作Ctrl+F7Build| Compiler current file编译当前源文件Ctrl+F5Build|Run exe运行当前项目F7Build|Build exe建立可执行程序F5Build|Start Debugging启动调试程序调试F5Debug|Go继续运行F11Debug|Step into进入函数体内部shift+F11Debug|Step out从函数体内部运行出来F10Debug|Step over执行一行语句F9设置/清除断点Ctrl+F10Debug|Run
22、 to cursor运行到光标所在位置shift+F9Debug|QuickWatch快速查看变量或表达式的值Shift + F5Debug|Stop debugging停止调试第二部分 实验注意事项:(1) 每次实验以前,需要详细阅读实验目的、实验要求和实验提示,以便能准确地理解实验要求,达到实验的目的。有测试数据要求的,需要给出测试结果,有要求回答问题的,需要给出问题的回答。每次实验都有几个题目,要求为每个题目创建不同的项目,以便于检查。(2) 有的实验前后有联系,需要先完成前面的实验再进行后面的实验,如类和继承的实验。请务必按照先后顺序完成实验。(3) 辅导老师那儿有关于实验的详细解答,
23、如果有疑问,可以请教辅导老师。实验一 熟悉实验环境实验目的了解和使用VC集成开发环境熟悉VC环境的基本命令和功能键,熟悉常用的功能菜单命令学习使用VC+环境的帮助学习完整的C+程序开发过程理解简单的C+程序结构了解用Visual C+开发Windows MFC应用程序的过程实验内容本次实验你将学习有关Visual C+开发环境的一些知识,并尝试实现一个简单的DOS程序和Windows程序。通过本次实验,你可以了解用Visual C+开发C+应用程序的过程。1. 熟悉Visual C+实验环境实验步骤(1) 启动Developer Studio,看看初始化界面由哪些部分组成(2) 查看各菜单项,
24、看看都有哪些子菜单和命令(3) 将鼠标放置于各工具条图标上,系统会自动显示该图标代表的命令含义,了解一下都有哪些命令。(4) 在任意工具条上单击鼠标右键,弹出式菜单上将显示所有可用的工具条,选择其中没有对号()的项,看看有什么效果,再选择有对号的项,又有什么效果?(5) 将鼠标移动到任意工具条上,将鼠标放到图标间隙,按下鼠标左键不放,移动鼠标到屏幕中间,有什么现象发生?再将它拖回到原来位置,有什么现象发生?(6) 将鼠标移动到左边的工作区窗口,按下鼠标左键不放,移动鼠标到屏幕中间,有什么现象发生?再将它拖回到原来位置,有什么现象发生?(7) 将鼠标移动到下边的输出窗口,按鼠标右键,弹出一个菜单
25、,选择其中的菜单项”Hide”,结果如何?要重新显示该窗口,选择菜单View|Output,窗口是不是又显示出来了?(8) 学习使用帮助系统。如果你用的是Visual C+5.0,则在工作区窗口的InfoView中选择你感兴趣的内容,双击它,在文档区显示具体的帮助信息。如果你用的是Visual C+6.0,选择菜单Help|Contents,启动MSDN联机帮助系统,学习使用该帮助系统。联机帮助系统是一个相对独立的程序,它和Developer Studio是两个程序,但是它的启动和停止都受Developer Studio影响。MSDN联机帮助系统运行的前提条件是Developer Studio
26、在运行。(9) 选File|Exit退出Developer Studio。2. 控制台应用用AppWizard建立一个控制台应用,在终端上输出”Hello”。术语:“控制台应用程序”是一个在DOS窗口中运行的基于字符的程序。由于这种模式的应用程序比Windows程序简单,我们先选择利用Visual C+来建立这样一个应用,这样使得我们可以将精力先投入到学习使用C+编程语言,而不需要把过多的精力投入到学习复杂的Windows编程中去。实验步骤1) 创建第一个应用首先创建一个项目(project),项目将代表你的应用,存放你应用的所有信息,包括源文件、资源文件、编译连接设置等。创建项目的步骤为:(
27、1) 启动Developer Studio(2) 从主菜单中选择File|New,将显示出New对话框(3) 选择Projects标签,并从列表中单击Win32 Console Application(4) 在“Location”编辑框中输入你的工作目录名称,如c:studentyour_name(问你的指导教师)(5) 在对话框的右上角的“project name”编辑框内键入项目的名字,如”Hello”,系统将自动为你的项目分配一个默认的目录(6) 单击OK继续(7) 如果是VC 6.0,系统将显示一个询问项目类型的程序向导,选择“an empty project”(8) 单击Finish
28、或OK结束配置,创建应用程序这时系统为你创建一个新的项目,并且在左边的工作区窗口中将出现你项目的名字。工作区窗口除原来的InfoView标签外又增加了两个标签(如果是Visual C+6.0,则没有InfoView标签):ClassView和FileView。ClassView从类的角度显示项目中建立的各个类,双击某个类名将会在右边的文档显示区显示类的定义文件并把文件的当前位置定位到所选的类;FileView显示构成项目的各个文件,选择某一文件将会在右边的文档显示区显示文件内容;InfoView是VC5的帮助文件目录,在这里可以选择所要获取帮助的标题,在右边将显示帮助内容。2) 编辑你的第一个
29、C+源程序用下面的方法在你创建的项目中添加一个文件:(1) 在主菜单上选择File|New(2) 在New对话框中选择File标签,单击“C+ Source File”(3) 选中Add to Project复选框(4) 在右边的File name编辑框中为文件指定一个名字,如Hello,系统将自动为你加上后缀.cpp。新的空白文件将自动打开,显示在文档显示区。在文件中输入以下内容(不包括上下两条横线):/hello world example#include int main() cout hello!TextOut(50,50,Hello, World);(5) 按Ctrl+s或者选菜单F
30、ile|Save来保存所作的修改5) 编译连接并运行重新编译连接该项目,运行程序,你可以用Ctrl+F5直接运行程序,系统将询问你是否重新编译该项目,回答“是(Yes)”,如果有编译错误,仔细检查你加的一句话,是否有错。当编译连接通过后,系统会自动运行该程序。结果与上面有什么不同?经过上述修改后,程序可以输出一行文字“Hello, World”。这是你实现的第一个Windows程序!是不是很简单?!不要担心有很多不懂的地方,后面的实验中你会慢慢理解。现在你应该会觉得:哦,原来Windows程序的开发这么简单!4. 编写简单的计算程序输入圆的半径,计算圆的周长和面积并输出。测试数据输入:2输出:
31、The perimeter of the circle : 12.5664The area of the circle : 12.5664输入:10输出:The perimeter of the circle : 62.8318The area of the circle : 314.159实验步骤1) 创建一个控制台项目选择菜单File|New,在Projects标签下选择Windows32 Console Application,输入项目名称“circle”,然后按OK2) 在项目中增加一个文件选择菜单File|New,在Files标签下选择C/C+ Source File,输入文件名称“
32、circle”,然后按OK3) 在文件中输入以下内容/-/该程序让用户输入圆的半径Radius,输出圆的周长Perimeter和面积Area#include #include const double PI = 3.14159;/定义一个常量PIint main() int radius;double perimeter, area;cout radius;perimeter = 2 * PI * radius;/周长=2Rarea = PI * pow(radius, 2);/面积=R2cout The perimeter of the circle : perimeter endl;cou
33、t The area of the circle : area endl;return 0;注:power(radius,2)表示求radius的平方,power(x, y)是系统预定义的函数,该函数计算x的y次方。该函数的原型在文件math.h中说明。4) 编译、连接并运行程序如果你输入的程序有误,用下面的方法定位并修改错误。直到编译连接通过。运行程序,测试数据。编译和连接错误定位l 开发环境下方的输出窗口(Output)显示编译和连接过程中出现的错误,错误信息包括:错误出现的文件名、行号、错误代码。l 如果不懂错误消息,将光标移动到该错误信息,按F1,就可以显示该错误的帮助信息。l 在ou
34、tput窗口,双击错误或者选择该错误再按ENTER键,系统自动将光标移动到发生错误的源程序行,你然后就可以改正错误。l F4键可以选择并定位下一个错误思考问题(1) 程序中为什么要将头文件math.h包含进来?(2) 建立控制台应用程序的通用步骤是怎样的?实验二 简单程序开发实验目的了解基本数据类型的字节宽度和范围表示理解并掌握程序的分支、循环结构提高程序可读性学习过程化程序设计方法进一步学习掌握查找与修改编译错误的方法初步学习调试方法实验内容1. 基本数据类型的长度编写一个程序,输出基本数据类型char, short, int, long, float, double和指针类型void *,
35、 char *, short *, int *, long *, float *, double *的数据类型的长度。实现要求:搞清你所使用系统上运行的C+编译器中每个基本数据类型的长度。实现提示:利用函数sizeof(数据类型名)来得到各个数据类型的长度编辑技巧Visual C+编辑器功能非常强大,它具有许多优点,你可以在不断的探索中对其了解。下面的特点你可能已有所体会: 自动语法。用高亮度和不同颜色的字来显示关键字和注释内容 自动缩进。帮助你排列源代码,使其可读性更强 参数帮助。显示预定义的windows函数的参数 集成的关键字帮助。能够使你得到任何关键字、MFC类或Windows函数的帮
36、助信息(按F1即可) 拖放编辑 自动错误定位。能自动将光标移动到有编译错误的源代码处。 拖放编辑在本次实验中非常有效,因为你需要写很多类似的代码行,借助于拖放功能,你可以方便地实现代码的移动或复制。具体操作方式为:(1) 将鼠标放置在要复制的内容的开始部分,按下鼠标左键不放,拖动鼠标,直到要复制内容的结束部分,放开鼠标,此时你选的部分成为反显;(2) 将鼠标放在选中内容的任意部位,按下鼠标左键,此时鼠标右下方出现一个虚的长方形标志,该标志就表示你将要拖动的内容。如果你想复制所选的内容,则再按住Ctrl键(缺省为移动操作),此时鼠标右下方的长方型标志中间出现了一个十字形;(3) 按住鼠标左键不放,拖动鼠标,你会看到一个虚的光标跟随鼠标移动,将它移动到想要放代码的新位置,松开鼠标左键(如果按了Ctrl键,在松开鼠标以后再松开按键)。(4) 你所选的代码就可以移动(或复制)到新的位置。思考问题为什么所有的指针