资源描述
面向对象技术实验指导书
(通信学院-电信工程系)
编著:黄健
目 录
第一章 C/C++实验基础知识 3
1.1 C/C++语言实验环境配置 3
1.2 Visual C++ 6.0 的使用 3
1.2.1 Visual C++介绍 3
1.2.2 Visual C++的安装和启动 3
1.2.3 常用功能键及其意义 4
1.2.4 输入和编辑源程序 5
1.2.5 编译、连接和运行 8
1.2.6 建立和运行包含多个文件的程序的方法 13
1.3 Visual C++ 6.0 工程相关文件介绍 20
1.4 Visual C++ 6.0 错误信息 20
1.4.1 程序错误的类型 20
1.4.2 错误信息的查询 22
1.5 Visual C++ 6.0 调试工具使用 24
1.5.1 设置工程的调试属性 24
1.5.2 学习设置断点进行单步调试 25
第二章C/C++实验要求 28
2.1 实验的意义和目的 28
2.2 实验过程总体要求 28
2.2.1 实验内容总体安排 28
2.2.2 实验前的准备工作 28
2.2.3 上机实验步骤 29
2.2.4 上机代码编写要求 29
2.2.5 实验报告编写 29
2.2.6 实验数据提交 29
2.2.7 实验参考资料 30
2.3 实验考核 31
2.3.1 平时实验过程考核 31
2.3.2 期末实验上机考试 31
2.3.3 实验成绩评定 31
第三章 实验内容与指导 32
3.1 实验一 数据类型与表达式 32
3.2 实验二 C++程序设计初步 34
3.3 实验三 函数与程序结构 36
3.4 实验四 类和对象 40
3.5 实验五 继承与派生 44
3.6实验六 多态与虚函数 48
3.7 实验七 运算符重载 50
第一章 C/C++实验基础知识
1.1 C/C++语言实验环境配置
C/C++语言实验环境配置要求。
1)硬件配置:
586 以上PC 兼容机或品牌机,配有彩色显示器、鼠标、键盘,内存不小于20MB,硬
盘自由空间不少于60MB。推荐配置为内存32MB 或64MB(或以上),硬盘自由空间500MB
以上。
2)软件配置:
1、操作系统: Windows98,windows 2000,windows XP,Linux,UNIX
2、集成开发环境:
(1)在Windows98,windows 2000,windows XP 系统下,主要的开发编译环境有Turbo C/C++ 3.0、Borland C++ 3.1、Microsoft Visual C++6.0、DJGPP,其中DJGPP 是GCC 在DOS/Windows 操作系统下的移植。本实验指导书使用的开发环境为Microsoft Visual C++6.0 英文版。汉化版本只是把部分菜单汉化了且用词很不准确。
(2)在Linux、UNIX 系统下,采用GCC 编译环境。本实验指导书不涉及相关内容,有兴趣的同学可以自行学习。
1.2 Visual C++ 6.0 的使用
1.2.1 Visual C++介绍
Visual C++是Microsoft 公司的Visual Studio 开发工具箱中的一个C/C++程序开发包。Visual Studio 提供了一整套开发Internet 和Windows 应用程序的工具,包括Visual C++, Visual Basic,Visual FoxPro,Visual InterDev,Visual J++以及其他辅助工具,如代码管理工具Visual SourceSafe 和联机帮助系统MSDN。Visual C++包中除包括C++编译器外,还包括所有的库、例子和为创建Windows 应用程序所需要的文档。
从最早期的 1.0 版本发展6.0 版本,到最新的.NET 版本,Visual C++已经有了很大的变化,在界面、功能、库支持方面都有许多的增强。6.0 版本在编译器、MFC 类库、编辑器以及联机帮助系统等方面都比以前的版本做了较大改进。
Visual C++一般分为三个版本:学习版、专业版和企业版,不同的版本适合于不同类型的
应用开发。实验中可以使用这三个版本的任意一种。
1.2.2 Visual C++的安装和启动
如果你的计算机未安装 Visual C++6.0,则应先安装Visual C++6.0。Visual C++是Visual
Studio 的一部分,因此需要Visual Studio 的光盘,执行其中的setup.exe,并按屏幕上的提示
安装即可。安转完毕后,在Windows 的“开始”菜单的程序子菜单中会出现“Microsoft visual Studio”子菜单,如图1-1 所示
图 1-1 Microsoft visual Studio 启动子菜单
在需要使用 Visual C++时,只需从桌面上顺序选择“开始”程序“Microsoft visual Studio”
Visual C++6.0 命令即可,此时屏幕上在短暂显示VisualC++6.0 的版权页面后,出现Visual
C++6.0 的由窗口、工具条、菜单、工具及其他部分组成的一个主界面。通过这个界面,用
户可以创建、测试、调试应用程序。如图
图 1-2 Visual C++6.0 界面
1.2.3 常用功能键及其意义
为了使程序员能够方便快捷地完成程序开发,开发环境提供了大量快捷方式来简化一些
常用操作的步骤。键盘操作直接、简单,而且非常方便,因而程序员非常喜欢采用键盘命令
来控制操作。下面是一些最常用的功能键,希望在实验中逐步掌握。
操作类型
功能键
对应菜单
含义
文件操作
Ctrl+N
File|New
创建新的文件、项目等
Ctrl+O
File|Open
打开项目、文件等
Ctrl+S
File|Save
保存当前文件
编辑操作
Ctrl+X
Edit|Cut
剪切
Ctrl+C
Edit|Copy
复制
Ctrl+V
Edit|Paste
粘贴
Ctrl+Z
Edit|Undo
撤消上一个操作
Ctrl+Y
Edit|Redo
重复上一个操作
Ctrl+A
Edit|Select
All
Del
Edit|Del
删除光标后面的一个字符
建立程序操作
Ctrl+F7
Build| Compiler current file
编译当前源文件
Ctrl+F5
Build|Run exe
运行当前项目
F7
Build|Build exe
建立可执行程序
F5
Build|Start Debugging
启动调试程序
调试
F5
Debug|Go
继续运行
F11
Debug|Step into
进入函数体内部
shift+F11
Debug|Step out
从函数体内部运行出来
F10
Debug|Step over
执行一行语句
F9
设置/清除断点
Ctrl+F10
Debug|Run
to
shift+F9
Debug|QuickWatch
快速查看变量或表达式的值
Shift + F5
Debug|Stop debugging
停止调试
注:这些快捷键命令都有对应的菜单和工具条按钮,如图 1.3:
编译工程
插入断点
链接目标文件
调试运行
停止编译
全速运行
图 1-3 快捷键命令菜单与按钮
1.2.4 输入和编辑源程序
先介绍最简单的情况,即程序只由一个源程序文件组成,即单文件程序(有关对多文件
程序的操作在本章的稍后介绍)。
1、新建一个C++源程序的方法
如果要新建一个 C++源程序,可采取以下的步骤:
在 Visual C++主窗口的主菜单栏中选择File(文件)命令,然后选择New(新建)命令,如图1-4。这时,展幕上出现一个 New(新建)对话框,单击此对话框的上方的Files(文件)属性页,在列表中选择“C++ Source File”项,表示要建立新的C++源程序文件,然后在对话框右半部分的Location(目录)文本框中输入准备编辑的源程序文件的存储路径(假设为
D:\VC++6.0\测试程序\其他测试\demo),表示准备编辑的源程序文件将存存放在“D:\VC++6.0\测试程序\其他测试\demo”子目录下。在其上方的File(文件)文本框中输入准备编辑的源程序文件的名字(输入MyFirstC),如图1-5。这样,即将进行输入和编辑的源程序就以MyFirstC.cpp 为文件名存放在“D:\VC++6.0\测试程序\其他测试\demo”目录下,如图1-6。当然,读者完全可以指定其他路径名和文件名。
图 1-4 选择File 菜单中的New 操作
C++控制台应用程序
图1.5 创建工程文件
图1.6 在指定的目录下建立的源文件
在单击 OK 按钮后,回到Visual C++主窗口,由于在前面已指定了路径(D:\VC++6.0\测试程序\其他测试\demo )和文件名(MyFirstC.cpp),因此在窗口的标题栏中显示出
MyFirstC.cpp。可以看到光标在程序编辑窗口闪烁,表示程序编辑窗口已激活,可以输入和
编辑源程序了。这里输入如图1-7 窗口中所示的程序。检查无误后,则将源程序保存在前面
指定的文件中,方法是:在主菜单栏中选择File(文件)命令,并在其下拉菜单中选择Save
(保存)命令。也可以用快捷键Ctrl+S 来保存文件。如果不想将源程序存放到原先指定的
文件中,可以不选择Save 命令,而选择Save As(另存为)命令,并在弹出的Save As(另
存为)对话框中指定文件路径和文件名。
1.7 C++程序的输入
2、打开一个已有的程序
如果你已经编辑并保存过 C++源程序,而希望打开你所需要的源程序文件,并对它进行
修改,方法是:
(1)在“资源管理器”或“我的电脑”中按路径打到已有的C++程序名(如C1-1.cpp)。
an active project workspace.Would you like to creat a default project workspace?”(此编译命令要求一个有效的项目工作区。你是否同意建立一个默认的项目工作区),见图1-9。单击Yes
(是)按钮,表示同意由系统建立默认的项目工作区,然后开始编译。也可以不用选择菜单
的方法,而用Ctrl+F7 或小图标来完成编译。
图 1-9 建立默认工作区提示
在进行编译时,编译系统检查源程序中有无语法错误,然后在主窗口下部的调试信息窗
口输出编译的信息,如果有错,就会指出错误的位置和性质,见图1-10。
1.9 编译错误提示信息
2、程序的调试
程序调试的任务是发现和改正程序中的错误,使程序能正常运行。编译系统能检查出程
序中的语法错误。语法错误分两类:一类是致命错误,以error 表示,如果程序中有这类错
误,就通不过编译,无法形成目标程序,更谈不上运行了。另一类是轻微错误,以warning
(警告)表示,这类错误不影响生成目标程序和可执行程序,但有可能影响运行的结果。因
此也应当尽量改正,使程序既无error,又无warning。
在图 1-10 中的调试信息窗口中可以看到编译的信息,指出源程序有一个error 和一个
warning。第7 行有致命错误,错误的种类是:在“}”之前漏了“;”。检查图1-10 中的程
序,果然发现在第6 行末漏了分号。同学们可能要问:明明是第6 行有错,怎么在报错时说
成是第7 行的错呢?这是因为C++允许将一个语句分写成几行,因此检查完第6 行末尾无分
号时还不能判定该语句有错,必须再检查下一行,直到发现第7 行的“}”前都没有“;”,
才能判定出错。因此在第7 行报错。在根据编译报错信息检查程序时,应检查其上下行。此
外编译信息指出第7 行还有一个warning,指出main 函数需要有一个返回值,程序中缺少一
个“return 0;”语句。
进行改错时,双击调试信息窗口中的某个报错信息的第1 行,光标就自动移到程序窗口中被报错的程序行,并用粗箭头指向该行。见图1-11
图 1-11 发现错误位置
根据提示信息: “error C2065: 'printf' : undeclared identifier”,判断没有加入预编译头文件:”stdio.h”,信息“error C2065: 'cout' : undeclared identifier”,没有加入头文件”iostream.h”.
修改后如图1.12所示,增加编译头文件stdio.h和iostream.h
图1.12 错误修改
再选择 Compile MyFirstC.cpp 命令重新编译,此时编译信息提示:“0 error(s),0
warning(s)”,即没有致使错误(error)和警告性错误(warning),编译成功,这时产生一个MyFirstC.obj 文件。见图1-13 中的下部调试信息窗口。
图1.13 语法编译通过
3、程序的连接
在得到目标程序后,就可以对程序进行连接了。此时应选择 Build(构建)→Build
MyFirstC.exe(构建MyFirstC.exe)命令,见图1-14。表示要求连接并建立一个可执行文件
MyFirstC.exe。
图 1-14 连接建立可执行文件
在执行连接后,在调试输出窗口显示连接时的信息,说明没有发现错误,生成了一个可
执行文件MyFirstC.exe。见图1-15。
图 1-15 可执行文件建立成功
以上介绍的是分别进行程序的编译与连接,也可以选择Build→命令(或按F7 键)一次完成编译与连接。对于初学者来说,还是建议分步进行程序的编译与连接,有利于对程序编译、解释、连接过程的理解。今后积累一定经验后,可以一步完成编译与连接。
4、程序的执行
在得到可执行文件MyFirstC.exe 后,就可以直接执行MyFirstC.exe 了。选择Build
→!Execute test.exe(执行MyFirstC.exe)命令。见图1-16。
图 1-16 运行程序可执行文件
在选择“!Execute test.exe”命令后,即开始执行MyFirstC.exe。也可以不通过选择菜
单命令,而且Ctrl+F5 来实现程序的执行。程序执行后,屏幕切换到输出结果的窗口,显示
出运行结果,见图1-17。
图 1-17 程序运行结果
可以看到,在输出结果的窗口中的第 1 行是程序的输出结果:
C语言方式的打印输出hello! C++语言方式的打印输出!
第2 行“Press any key to continue”并非程序所指定的输出,而是Visual C++在输出完运
行结果后由Visual V++6.0 系统自动加上的一行信息,通知用户“按任何一键以便继续”。当你按下任何一键后,输出窗口消失,回到Visual C++的主窗口,你可以继续对源程序进行修改补充或进行其他工作。
如果已完成对一个程序的操作,不再对它进行其他处理,应当选择File(文件)→Close
Workspace(关闭窗口)命令,以结束对该程序的操作。
1.2.6 建立和运行包含多个文件的程序的方法
上面介绍的是最简单的情况,一个程序只包含一个源程序文件。如果一个程序包含多个
源程序文件,则需要建立一个项目文件(project file),在这个项目文件中包含多个文件(包
括源文件和头文件)。项目文件是放在项目工作区(Workspace)中并在项目工作区的管理之
下工作的,因此需要建立项目工作区,一个项目工作区可以包含一个以上的项目。在编译时,
先分别对每个文件进行编译,然后将项目文件中的文件连接成为一个整体,再与系统的有关
资源连接,生成一个可执行文件,最后执行这个文件。
在实际操作时有两种方法:一种是由用户建立项目工作区和项目文件;另一种是用户只
建立项目文件而不建立项目工作区,由系统自动建立项目工作区。
1、由用户建立项目工作区和项目文件
(1)、先用前面介绍过的方法分别编辑好同一程序中的各个源程序文件,并存放在自己
指定的目录下,例如有一个程序包括filel.cpp 和file2.cpp 两个源文件,并已把它们保存在“D:\
计算机0501-20060405-张三\实验一”子目录下。
(2)、建立一个项目工作区。在如图1-4 所示的Visual C++主窗口中选择File(文件)
→New(新建)命令,在弹出的New(新建)对话框中选择上部的选择属性页Workspace name
(工作区名字),表示要建立一个新的项目工作区。在对话框中右部Workspace name(工作
区名字)文本框中输入你指定的工作区的名字(如wsl),见图1-18。
图 1-18 建立工作区
然后单击右下部的 OK 按钮。此时返回Visual C++主窗口,见图1-19。
可以看到在左部的工作区窗口中显示了“Workspace ws1:0 project(s)”,表示当前的工作
区名是wsl,其中有0 个project(没有在其中放入项目文件)。
(3)、建立项目文件。选择File(文件)→New(新建)命令,在弹出的New(新建)
对话框中选择上部的选择属性页Projects(项目,中文Visual C++把它译为“工程”),表示
要建立一个项目文件。见图1-20。
在对话框中左部的列表中选择“Win32 Console Application”项,并在右部的location(位置)文本框中输入项目文件的位置(即文件路径),在Project name(中文界面中显示为“工程”)文本框中输入你指定的项目文件名,假设输入projectl。在窗口右部选中Add to current workspace(添加至现有工作区)单选钮,表示新建的项目文件是放到刚才建立的当前工作区中的。然后单击OK(确定)按钮。此时弹出一个如图1-21 所示的对话框,在其中选中
An empty project 单选钮,表示新建立的是一个空的项目。
单击 Finish(完成)按钮。系统弹出一个New Project Information(新建工程信息)对话框(图1-22),显示了刚才建立的项目的有关信息。
在其下方可以看到项目文件的位置(文件路径)。确认后单击OK(确定)按钮。此时
又回到Visual C++主窗口,可以看到:左部窗口中显示了“Workspace’wsl’:1project(s)”
其下一行为“project1 files”,表示已将项目文件project1 加到项目工作区wsl 中,见图1-23。
图 1-19 一个空的工作区
图 1-20 建立一个新的项目
图 1-22 新建项目的信息
图 1-23 工作区中加入一个新项目
(4)、将源程序文件放到项目文件中。方法是:在Visual C++主窗口中依次选择Project
(工程)→Add To Project(添加到项目中,在中文界上显示为“添加工程”)→“Files…”
命令,见图1-24。
图 1-24 文件加入到项目中
在选择“Files…”命令后,屏幕上出现Insert Files into Project 对话框。在上部的列表框
中按路径找到源文件file1.cpp 和file2.cpp 所在的子目录,并选中file1.cpp 和file2.cpp。
单击 OK(确定)按钮,就把这两个文件添加到项目文件project1 中了。
(5)、编译和连接项目文件。由于已经把file1.cpp 和file2.cpp 两个文件添加到项目文件
project1 中,因此只须对项目文件project1 进行统一的编译和连接。方法是:在Visua1 C++
主窗口中选择Build(编译)→Build project1.exe(构建project1.exe)命令。
在选择 Build project1.exe 命令后,系统对整个项目文件进行编译和连接,在窗口的下部
会显示编译和连接的信息。如果程序有错,会显示出错信息,如果无错,会生成可执行文件
project1.exe。见图1-25。
图 1-25 项目的编译和连接
执行可执行文件。选择 Build(编译)→Execute project1.exe(执行project1.exe)命令,
即可。
2、用户只建立项目文件
上面介绍的方法是先建立项目工作区,再建立项目文件,步骤比较多。可以采取简化的
方法,即用户只建立项目文件,而不建立项目工作区,由系统自动建立项目工作区。
在本方法中,保留上一节中介绍的第(1)、(4)、(5)、(6)步,取消第(2)步,修改
第(3)步。具体步聚如下:
(1)分别编辑好同一程序中的各个源程序文件。同上一节中的第(1)步。
(2)建立一个项目文件(不必先建立项目工作区)。
在 Visual C++主窗口中选择File(文件)→New(新建)命令,在弹出的New(新建)
对话框中选择上部的选项卡projects(项目),表示要建立一个项目文件。见图1-26。在对话
框中左部的列表中选择“Win32 Console Application”项,在project name(中文Visual C++
中显示为“工程”)文本框中输入你指定的项目文件名(project1)。可以看到:在右部的中间单选钮处默认选定了Create new workspace(创建新工作区),这是由于用户未指定工作
区,系统会自动开辟新工作区。
图 1-26 建立一个新的Win32 Console Application 项目
图 1-27 建立新项目成功
单击 OK(确定)按钮,出现“Win32 Console Application-step 1 of 1”对话框,选中右
部的An empty project 单选钮,单击Finish(完成)按钮后,出现“New project information”
(新建工程信息)消息框。从它的下部可以看到项目文件的路径。单击OK(确定)按钮,
在弹出的Visual C++ 主窗口的左部窗口的下方单击File View 按钮, 窗口中显示
“Workspace`project1`:1 project(s)”,见图1-27。说明系统已自动建立了一个工作区,由于用户未指定工作区名,系统就将项目文件名project1 同时作为工作区名。
向此项目文件添加内容。步骤与方法一中的第(4)步相同。
编译和连接项目文件。步骤与方法一中的第(4)步相同。
执行可执行文件。步骤与方法一中的第(6)步相同。
显然,这种方法比前一种方法简单一些。在介绍单文件程序时,为了尽量简化手续,这
里没有建立工作区,也没有建立项目文件,而是直接建立源文件,实际上,在编译每一个程
序时都需要一个工作区,如果用户未指定,系统会自动建立工作区,并赋予它一个默认名(此
时以文件名作为工作区名
1.3 Visual C++ 6.0 工程相关文件介绍
序号 文件名 描述
1 *.dsw VC 工作区文件
2 *.dsp (Developer Studio Project)项目文件,文本格式。不熟悉的话不要手工修改
3 *.ncb 无编译浏览文件。当自动完成功能出问题时,可以删除此文件,编译工程后会自动生成。
4 *.opt 工程关于开发环境的参数文件,如VC 工具条位置信息等。
5 *.h C/C++程序头文件,可用文本编辑器打开
6 *.cpp C++源程序文件,可用文本编辑器打开
7 *.exe 程序可执行文件
8 *.plg 编译信息文件。编译时的error 和warning 信息文件(实际上是一个html文件),一般用处不大。在ToolsOptionsBuild 里面的选项可以控制这个文件的生成。
9 *.pch (Pre-Compiled File)是预编译文件。可以加快编译速度,但是文件非常大
10 *.pdb (Program Database)记录了程序有关的一些数据和调试信息,在调试的时候有用
11 *. obj 源程序文件的目标文件,编译后生成
12 *. ilk 源程序文件的连接文件,连接后生成
注:在 VC 下建立一个工程后,会自动产生1~4 类型的文件。加入*.h、*.cpp 文件编译后产生7~12 类型的文件。其中8~12 类型的文件位于工程目录下的Debug 目录下。1-4 类型的文件都是工程相关的文件,一般不要删除,因为删除后,必须手动的重新建立工程(1.2.6 详细描述了如何建立一个工程)。对于大型项目来说,删除这些文件的后果很严重。5~6 类型的文件还有什么可说的,不仅不能删除这些文件,还要备份这些文件。失去这些文件是灾难性的。7~12 类型的所有文件都是可以删除的,因为再次编译连接运行程序时,会再次自动生成这些文件。
1.4 Visual C++ 6.0 错误信息
1.4.1 程序错误的类型
1、严重错误(fatal error)
很少出现,通常是内部编译器出错。造成编译立即停止。
2、语法错误(error)
语法错误是指源程序中存在不符合C/C++语言语法规定的语句,例如将int 写成Int,括
号不匹配等。这些错误不改正是不能通过编译的。如图1-28
图 1-28 语法错误
3、警告错误(warning)
对于一些在语法上有轻微毛病但不影响程序运行的错误(如定义了变量但始终未使用),
编译时会发出警告信息,虽然程序能通过编译、连接、运行,但警告类的错误常常带来程序
非法操作、运行错误等问题。所以,尽量改正警告错误。如图1-29
图 1-29 警告错误
4、连接错误(Link error)
程序语法上没有问题,但是在连接时出现错误。这类问题常常是因为程序依赖函数、库
不匹配造成的。如图1-30
图 1-30 连接错误
5、逻辑错误
逻辑错误是指程序无语法错误,也能正常运行,但结果不对。这类错误常常是设计算法
时的错误,计算机无法检查出来。逻辑错误是最难改正的错误之一,引起错误的原因往往可
能很不起眼,比如就是一个变量没有初始化等,所以改正这类错误常常需要投入大量的精力。
6、运行错误
有时程序既无语法和逻辑错误,但是程序就是不能正常运行。多数情况下是输入数据和
程序要求的数据不匹配造成的,也可能是系统的支持问题。
在 C++中,语法、连接错误相对较为容易改正。而逻辑错误是最隐蔽的错误,比较难以
改正。运行错误则主要是在程序强壮性、兼容性上可能存在问题,可以通过提高程序的适应
能力来修正。而最容易让程序开发人员忽略的就是警告错误了,因为警告错误不一定会影响
程序的运行,但是正是这种不确定性也传递给了程序的执行,你不知道程序什么时候会出问
题,也许永远不会有问题,也许问题马上出现,也许问题n 年后出现,谁知道。所以,一定
要重视警告错误。表 1-1 是C++错误的前缀描述,在遇到错误时可以根据其前缀就知道错误等级了。
表1-1 C++错误的前缀描述
错误等级
错误前缀
错误编号范围
示例
严重错误
C1
001~999
编译错误
C2
001~999
error C2065: 'Int' : undeclared identifier(标识符,比如一个变量,未申明)。
如图1-28,Int 没有申明过。
警告错误
C4
001~999
warning C4101: 'i' : unreferenced local variable(局部变量申明后从未使用过)。如图1-29,
其中的i 变量从未使用过。
链接错误
LNK
1000~6026
LNK2001: unresolved external symbol
"symbol". (连接指定的函数或库异常)。如
图1-31,程序找不到main 函数。
1.4.2 错误信息的查询
只有详细地了解了错误的原因,才能正确地改正错误。Microsoft 的MSDN Library
(Microsoft 开发帮助文档库,如图1-31)提供了查询错误信息的功能。对于遇到的不明白
的错误,同学们应该学习使用MSDN 帮助文档库进行错误信息查询,获得错误信息的解释
和可能的改正方法。具体方法如下:
(1)选择MSDN Library(如图1-31)的索引属性页,在“键入要查找的关键字:”中
输入错误号(由错误前缀和编号组成),比如输入C2065,如图1-32 所示。
图 1-31 MSDN Library
图 1-32 在MSDN Library 中查找错误信息
(2)、在索引列表框中双击选择匹配的错误后,错误类型、可能原因、改正方法等信息
则显示在窗口的右边部分。如图1-32 所示:
1.5 Visual C++ 6.0 调试工具使用
在开发程序的过程中,需要不断地调试自己的程序,或检查错误,或测试程序的稳定性,
这就需要借助调试工具来进行。选择一个好的调试工具并能够熟练地使用它,将会使程序开
发变得更加容易,从而大大提高程序开发的效率。
目前有许多调试工具,集成在 Visual C++中的调试工具便具有相当强大的功能。
1.5.1 设置工程的调试属性
在 Visual C++中建立一个工程(Project)时,Visual C++都会自动创建一个Debug 目录,
在该目录下存放在开发过程进行调试时生成的文件以及生成的可执行文件(不同类型文件的
解释见1.3 节 Visual C++ 6.0工程相关文件介绍),不妨将此时生成的可执行文件称为Debug
版本。在Debug 版本当中,包含着Microsoft 格式的调试信息,而且不进行任何代码优化。
一般情况下,在程序的开发过程中使用Debug 模式。
在应用程序开发完成之后,要将程序发行时,需要编译形成另一种版本的可执行文件,
称为Release 版本,在Release 版本中对可执行程序的二进制代码进行了优化,其中不包含
任何的调试信息。要建立Release 版本的可执行文件,可以选择菜单Project 中的Setting 命
令,这时屏幕上面弹出Project Settings 对话框,如图1-33 所示。在Settings For 下拉列表中
选择Release,按OK 按钮退出。
如果要在 Visual C++中调试程序,则工程的应设为Debug 版本。一般Visual C++建立一
个工程(Project)时,默认采用Debug 版本。
图 1-33 设置工程的调试属性
1.5.2 学习设置断点进行单步调试
通常,一个应用程序是连续运行的,但是在程序调试的过程中,往往需要在程序的运行
过程的某一阶段来观测应用程序的状态,所以必须使程序在某一地点停下来。在Visual C++
中,可以通过设置断点来达到这样的目的。在设置好断点之后,当程序运行到设立断点处时
就停止运行,此时就可以利用各种工具来观察程序的状态,也可以设置各种条件使程序按要
求继续运行,这样就可以进一步观测程序的流向。
在 Visual C++中,可以设置多种类型的断点,这些断点起作用的方式各不相同,可以将
它们分为三类,即:位置断点、逻辑断点以及与Windows 消息有关的断点。下面我们只介
绍简单位置断点的设置方法,其它高级断点的设置可以在今后进一步学习中掌握。
1、设置位置断点
位置断点,这是一类最简单的断点类型,其设置方法也最为简单,只要把光标移到要设
断点的位置(当然这一行必须包含一条有效语句);然后按工具条上的add/remove breakpoint
按钮或按快捷键F9;如图1-34:
图 1-34 设置断点按钮
这时将会在屏幕上看到在这一行的左边出现一个红色的圆点,表示在该位置设立了一个断点,如图1-35 所示。如果你想取消断点,将光标移动到设置断点的代码行,按F9。
2、启动调试
按 F5 或者在Build 菜单中,选择Start Debug 然后选择Go,就可以启动调试程序。程序
会一直运行到需要用户输入或者有断点的代码处。如图1-37 处的小黄箭头,表明程序运行到该处停止下来,等待下一步调试命令。
3、查看变量值
查看变量值有多种方式,你可以选择你喜欢的方式进行。
(1)你可以将鼠标移动到程序的变量名处,系统会自动为你显示变量的值;
(2)复杂变量(如对象)可以通过QuickWatch 查看,方法是:将光标定位到所要查看值
的变量处,按鼠标右键,选择QuickWatch 菜单,就可以看到变量值。
(3)启动调试程序后,屏幕下方将会出现两个输出窗口,一个是Watch,另一个是Variable。
Watch 窗口显示变量名和变量值,你可以在Watch 窗口中加上你想观察值的变量名,也可以直接从源代码中选择变量名,并把它拖动到Watch 窗口中。Variable 窗口显示程序当前运行上下文涉及的变量的值。如图 1-37:
图 1-35 设置一个断点
图 1-36 启动调试
图 1-37 查看变量数据
4、控制程序执行
你可以控制程序单步执行(F10)、跟踪到一个函数内部(F11)、从一个函数运行出来(shift+F11)、运行到光标所在位置(Ctrl+F10),以便方便地调试程序。这些命令用于在某个局部范围详细地调试程序。你也可以通过设置断点(F9)然后用直接运行(GO 或者F5)来控制程序直接运行到断点位置。如果你设置了多个断点,程序将会在遇到的第一个断点处停下来。要从断点处继续运行,可以用上面所说的各种命令(F5, F10, F11, Shift+F11,Ctrl+F10)
图 1-38 调试控制工具条
5、结束调试
要结束调试,可以按 shift+F5 或者选择菜单Debug|Stop Debugging。当结束调试后,所
有调试窗口会自动关闭,Debug 菜单也会自动还原为Build 菜单。
第二章C/C++实验要求
2.1 实验的意义和目的
程序设计是计算机专业的本,计算机专业大量的理论和实践学习,比如,从《数据结构》、
《面向对象程序设计》、《操作系统》到毕业设计,都会用到程序设计,而C++程序
设计语言则是进行程序设计的基础工具。
正如我们在学习语言时,不能仅仅停留在“听得懂”,而要学会能说会道,才能有效地
和别人进行交流。类似的,学习C++程序设计不能仅满足于“懂得了”,满足于了解语法和
能看懂书上的程序,而应当掌握程序设计的全过程,即能独立编写源程序,独立调试运行程
序,独立分析运行结果,学会利用C++程序设计语言和计算
展开阅读全文