VC++6.0面向对象程序设计上机指导书 掌握VC上机的过程 在读者已掌握 Windows操作系统基础上,学会用 Visual c++完整的完成 个程序从输入到运行输出结果的全过程 Visual c++6.0是 Microsoft公司开发的基于C/C+的集成工具,是面向 对象的、可视化的软件开发环境。主要用于编写在 Windows操作系统上运行的 应用程序。包括编辑器、编译器、调试器、连接器和资源管理器等。另外,还 提供了许多向导。用户可利用VC以两种方式编写 Windows应用程序,一种是 基于 Windows API的C编程方式,另一种是基于MFC的C++编程方式。C编程 方式是传统的、久经考验的编程方式,代码效率较高,但开发难度与开发工作 量大。C艹编程方式代码运行效率相对较低,但开发难度小,开发工作量小 在C艹+编程方式中,主要以MFC提供的许多类库,包括对话框、文档/视图结构、 图形处理、鼠标消息处理、颜色的使用、滚动处理、文件读写、文档打印和多 视图等作为基础 要学习用MFC的编程,首先要学习面向对象的程序设计的基本知识。因此 结合我们的课程,对习题用VC来编写面向对象的程序,并在VC上编译运行 这对以后学习用MFC编程很有好处。在这里为了直观、方便,我们仍在MS-D0S 环境下运行可执行程序,但这并不影响以后进一步学习MFC 一、 Visual c++的上机过程 安装好 Visual c++后,在 Windows的“程序”菜单中有如图1菜单 打开0ic文档 】收藏夹B) 一文档Q) 诊 crosaft活页殘 设置() Windo资盪型题 助 虑 注销毛根生 关闭系①D and Delph 4 Inter Bat口ient5 图1
1 VC++6.0 面向对象程序设计上机指导书 掌握 VC 上机的过程 在读者已掌握 Windows 操作系统基础上,学会用 Visual C++完整的完成 一个程序从输入到运行输出结果的全过程。 Visual C++ 6.0 是 MicroSoft 公司开发的基于 C/C++的集成工具,是面向 对象的、可视化的软件开发环境。主要用于编写在 Windows 操作系统上运行的 应用程序。包括编辑器、编译器、调试器、连接器和资源管理器等。另外,还 提供了许多向导。用户可利用 VC 以两种方式编写 Windows 应用程序,一种是 基于 Windows API 的 C 编程方式,另一种是基于 MFC 的 C++编程方式。C 编程 方式是传统的、久经考验的编程方式,代码效率较高,但开发难度与开发工作 量大。C++编程方式代码运行效率相对较低,但开发难度小,开发工作量小。 在 C++编程方式中,主要以 MFC 提供的许多类库,包括对话框、文档/视图结构、 图形处理、鼠标消息处理、颜色的使用、滚动处理、文件读写、文档打印和多 视图等作为基础。 要学习用 MFC 的编程,首先要学习面向对象的程序设计的基本知识。因此 结合我们的课程,对习题用 VC 来编写面向对象的程序,并在 VC 上编译运行。 这对以后学习用 MFC 编程很有好处。在这里为了直观、方便,我们仍在 MS-DOS 环境下运行可执行程序,但这并不影响以后进一步学习 MFC。 一、Visual C++ 的上机过程 安装好 Visual C++ 后,在 Windows 的“程序”菜单中有如图 1 菜单。 图 1
鼠标双击 Microsoft visual c+-5.0(6.0)后,得到的屏幕:图2 le Edit View Insert Project Build Tools window Help 自回启2园曾3 IEDN Build Debug x Find in Files ix Find in Files 2ARal Ready 图2 编辑源程序和错误修改及文件存盘 当你在纸上已编好了C++的源程序,想输入源程序时,称为编辑源程序的 操作,可点击以上的屏幕中的File菜单中的New菜单:图3,得到如下的屏 幕:图4 Project Build Fools Yandow Elp +6 Recant 2L】s Recent Workspaces NBuild Debug A Find in Files 1 X Find in Files 2R<ll Creates a new document project 图3
2 鼠标双击 MicroSoft Visual C++ 5.0(6.0)后 ,得到的屏幕:图 2 图 2 1. 编辑源程序和错误修改及文件存盘 当你在纸上已编好了 C++的源程序,想输入源程序时,称为编辑源程序的 操作,可点击以上的屏幕中的 File 菜单中的 New 菜单:图 3,得到如下的屏 幕:图 4 图 3
Files Projects Workspaces Other Documents Project name: Wizard Location C: PROGRAM FILES\DEVSTUDI a Wizard c Create new workspace C Add tu current worksp BWin 32 Static Library Platforms: Cancel 图4 选中 Files卡片,并选C++ Source file菜单,点击OK:图5 les Projects I Workspaces I Other Documents I ODBC Script File Cancel 图 得到如下的屏幕图6,即可在光标处开始输入源程序 在输入的过程中,完全可以用 Microsoft Word的方法对文字进行插入、 删除、修改、复制、粘贴、移动等操作。图7 当程序输入完毕,可用File菜单中的Save菜单,把程序存到你的盘和文 件夹(保存在:)及你所取的文件名(文件名:)中:图8 以后,想再把该程序调入时,可用File菜单中的Open菜单,在你的盘和
3 图 4 选中 Files 卡片,并选 C++ Source File 菜单,点击 OK: 图 5 图 5 得到如下的屏幕图 6,即可在光标处开始输入源程序。 在输入的过程中,完全可以用 Microsoft Word 的方法对文字进行插入、 删除、修改、复制、粘贴、移动等操作。图 7 当程序输入完毕,可用 File 菜单中的 Save 菜单,把程序存到你的盘和文 件夹(保存在:)及你所取的文件名(文件名:)中:图 8 以后,想再把该程序调入时,可用 File 菜单中的 Open 菜单,在你的盘和
文件夹( Directories)中,选中文件名( Files),单击“打开”即可打开 图6 IR Eile Edit Yiew Insert Project Build Tools YindowHolp AiX 自回③2,四四 JEDNBuild/Debug X Find in Files 1 X Find in Files 2ARaLl Ln 1,Col1REC CoLJovR READ 图7 注意:取文件名时,名字中间不能有点,如取成“mao1.1”是错误的,到时编 译将会出错,要取成“maol1”(用下划线),后面加“,cpp”成为“maol1.cpp” “.cpp”是C++源程序文件专用的扩展名。 保存为 图区 保存在① 回划画 ca circle. cpp c:mvc2_16. cpp e:mvc2_3 c: mvc2_1 ca mvc2_17 c:mvc2_4. cpp eamvc3 e ci mvc2_ c: mvc2_5.cpp lca mve2_11.cpp ef mve2_19 ca_6.cpp myc cmvc_12. cpp e:mvc2_7. cpp ea]mve3_ cmvc_13. cpp ca mvc2_20.cpp c:mvc2_8 cmvc_14.cpp camvc2_9. cpl G习mvc3 ca mve2_15. cpp c G习mve3 文件名四):2s 保存 保存类型〔℃): Text fil1e(*,* 图 编译源程序和出错调试
4 文件夹(Directories)中,选中文件名(Files),单击“打开”即可打开。 图 6 图 7 注意:取文件名时,名字中间不能有点,如取成“mao1.1”是错误的,到时编 译将会出错,要取成“mao1_1”(用下划线),后面加“.cpp”成为“mao1_1.cpp”。 “.cpp”是 C++源程序文件专用的扩展名。 图 8 2.编译源程序和出错调试
当程序输入和程序存盘以后,可选 Build莱单 Compile进行编译源程序: 单击 Compile菜单系统进行编译,若有错误会显示出错信息( Message),错 分严重性错误(Eror)和警告性错误( Warning)图9。如下面程序的第 6行前缺少“;”号( Statement missing; Function call missing)) 9行缺少 ))。 自回國 园e int a, int b) /函数原型的说明 t int x,y, sun cout<输入二个数:<"\n 个数 sumadd(x 数add,将函数返回值赋给变量 +<数知旱 dp: \d_cp 九江cp例题mc2_1.pp(6): error c2146: syntax error \d cpp语言九江cpp例题\mc21.cpp(9): error C2143: syntax error Error executing cl.exe nuc2_1.obj-2 error(s),0 warning(s) kDABuild debug Find in Files 1 X find in Files 2rall Ready Ln 9, Col 1 REC CoL JovR READ 图 移动右边的滑块,可显示所有的出错信息。把光标对准行号如(6)图10, 双击鼠标,会自动指向出错的源程序行。在出错的源程序行中仔细地查找出 错的原因。VC艹+有各种各样的编译出错信息,要学会看懂它(英文的),可 参看“帮助”,或请教指导老师。指导老师自己要多作编程的训练,增强查 BOrl 和是:n",sum)//输出 唱含被大分国话被包值始安量 return 0i int add cint a, int b) 函数(返回)值为整型 return ∥将e的值返回,通过带回调用处 g D: \MA0 6.CPP Error D: \MAO 6.CPP 10: St Warning D: \ MAO 6. CPP 11: Function should return a value
5 当程序输入和程序存盘以后,可选 Build 菜单 Compile 进行编译源程序: 单击 Compile 菜单系统进行编译,若有错误会显示出错信息(Message),错 误分严重性错误(Error)和警告性错误(Warning)图 9。如下面程序的第 6 行前缺少“;”号(Statement missing ;Function call missing )),第 9 行缺少“)”号(Function call missing ))。 图 9 移动右边的滑块,可显示所有的出错信息。把光标对准行号如(6)图 10, 双击鼠标,会自动指向出错的源程序行。在出错的源程序行中仔细地查找出 错的原因。VC++有各种各样的编译出错信息,要学会看懂它(英文的),可 参看“帮助”,或请教指导老师。指导老师自己要多作编程的训练,增强查
错经验。 图10 回到编辑状态,修改源程序,重新编译,直到没有错误为止:图1 网口区 B Eile Edit View Insert Project Build Tools Window Help 排 include< iostream.h /函数原型的说明 int nain( cout<输入二个数:<"Ⅶn 个数 add,将函数返回值赋给变量 //输出 return 5 -Configuration: mvc2_1- Win32 Debug nvca_1.cpp nvc2-1.obj-a error(s),g warning(s) MDABuild debug A find in Files 1 A find in Files 2Ariall Ln 9, Col 16 REC coL lovR READ 图11 3.连接目标程序和出错调试 当编译没有错误或只有个别的警告性错误(如 float x;x=3.4;这时会 出现警告性错误,因为ⅹ是单精度的浮点数,而常数3.4默认为双精度的浮 点数,赋值时会出现警告,这种警告性错误可以不管它,如要不警告,可改 为x=3.4f),就可以进行连接目标程序,产生可执行程序。可选 Build菜单 的 Build菜单:图12,单击 Build菜单系统进行连接目标程序,产生可执行 程序,若有错误会显示出错信息( Message),错误分严重错误(Eror)和 1B Eil. tait yi- Inset project build Too →日 如→②回 %的三“ dat如11 Dependant ut输入二个数:" bucer Benote Connetion I Execute ave2.1.ex 奖箱是代(m d, int b) 交 返回)值为整型 c的值返回,通过ad带回调用久 mvc2_1.obj-8 error(s),e warning(s) FDNBuildADebua A Find in Files 1A Find in Files 2AR .Il Ln 7, Col 25 RECICoLJovR 闽开始国览一课件 r文KEa23
6 错经验。 图 10 回到编辑状态,修改源程序,重新编译,直到没有错误为止:图 11 图 11 3.连接目标程序和出错调试 当编译没有错误或只有个别的警告性错误(如 float x; x=3.4;这时会 出现警告性错误,因为 x 是单精度的浮点数,而常数 3.4 默认为双精度的浮 点数,赋值时会出现警告,这种警告性错误可以不管它,如要不警告,可改 为 x=3.4f),就可以进行连接目标程序,产生可执行程序。可选 Build 菜单 的 Build 菜单:图 12,单击 Build 菜单系统进行连接目标程序,产生可执行 程序,若有错误会显示出错信息(Message),错误分严重错误(Error)和
警告性错误 4.运行可执行程序和出错调试 当连接成功后,可运行可执行程序:图13选菜单! Execute mao2_1.exe 进入运行屏幕,输入数据,得出运行结果:图14 当运行出错时,最主要的原因是程序的逻辑错。这时要仔细的检查源 程序进行修改。只要改动一点点,就要重新进行编译和连接。另外,在运行 时,如数据的格式输入出错也会引起错误,如上例中应该用逗号分开两个整 数,而用空格分开时就会引起错误。有的程序在 scanf中少了地址符&,编 译和连接是不作为错误的,运行时也就出错了 Ea区 IB Eil. Idit yie Insert Roject Build Iols Indos B-lp 白回的 AA Centile ave2 1. epp Cu1+FT 和→的G的 int addcint trent 4st出1 Dependant, Start Debug C入二个数“(m Set Active Config dd(int a, int b) 脂变量 返回)值为整型 将c的值返回,通过ad带回调用处 g error(s),a warning(s) LI.BUild(Debug X Find in Files 1X Find in Files 2AR<Ll Executes the program Ln 5. Col 1 RECICoL OvR READ 7
7 警告性错误。 图 12 4. 运行可执行程序和出错调试 当连接成功后,可运行可执行程序:图 13 选菜单!Execute mao2_1.exe 。 进入运行屏幕,输入数据,得出运行结果:图 14 。 当运行出错时,最主要的原因是程序的逻辑错。这时要仔细的检查源 程序进行修改。只要改动一点点,就要重新进行编译和连接。另外,在运行 时,如数据的格式输入出错也会引起错误,如上例中应该用逗号分开两个整 数,而用空格分开时就会引起错误。有的程序在 scanf 中少了地址符&,编 译和连接是不作为错误的,运行时也就出错了。 图 13
口区 1x2画幽网回A阪 输入数据123456,得出运行结果:图15 数和是:579 Press any key to continu 敲任意键,回到源程序状态 二、不退出VC再编一个C+源程序
8 图 14 输入数据 123 456 ,得出运行结果:图 15 图 15 敲任意键,回到源程序状态。 二、不退出 VC 再编一个 C++源程序
不退出WC再编一个C+源程序,有时在连接时会出错。如再编一个叫 mvc22.cpp的C++源程序如图16 IB Eile Kit yi Insert Preject Fuild Tools Mindow Help 心日日。电的,曾 □· \Build A Debug A Find in Files1 A Find in files2入H 图16 该源程序编译通过没有错误,当连接时会出显如图17的情况: ave2_1-liereseft Develeper Studie-Leve2_2.eppl 西囟 atch Buile Execute ave2 1. exe Ctrl+P5 DEbug x Find in Files 1A Find in Files 2Rd Ln 1, Col1 RECICoL JovR RE 开图国浏·课件"astd-远|ma1-na 图17 其中, Compile mvc2_2.cpp表示编译的是mvc22.cpp源程序。而 Build
9 不退出 VC 再编一个 C++源程序,有时在连接时会出错。如再编一个叫 mvc2_2.cpp 的 C++源程序如 图 16 图 16 该源程序编译通过没有错误,当连接时会出显如图 17 的情况: 图 17 其中,Compile mvc2_2.cpp 表示编译的是 mvc2_2.cpp 源程序。而 Build
mvc21.exe表示连接的还是前一个程序,二者不一致。这时连接出错。要解 E Eil. Idit yi- Insert trojet Build Ioois YindosB-lp 已日日2,,已国岩%B 和中②阁 !回 e ENuc2.1 classes include (iostream.h> t<< Hello, your n a回 K.? Int muc2_2.obj-a error(s),0 warning(s) EDABuild A Debug A Find in Files 1 A Find in Files 2AR.ll 图18 的按钮,打开工作空间窗口,出现如图19,单击鼠标所指的Fi1.按钮 图19 单击出现如图20的mvc21 files 10
10 mvc2_1.exe 表示连接的还是前一个程序,二者不一致。这时连接出错。要解 决这个问题,可击图 18 鼠标所指的打开工作空间(Working space) 图 18 的按钮,打开工作空间窗口,出现如图 19,单击鼠标所指的 Fil...按钮 图 19 单击出现如图 20 的 mvc2_1 files