收藏 分享(赏)

面向对象程序设计26921.doc

上传人:dreamzhangning 文档编号:2704910 上传时间:2018-09-25 格式:DOC 页数:18 大小:103KB
下载 相关 举报
面向对象程序设计26921.doc_第1页
第1页 / 共18页
面向对象程序设计26921.doc_第2页
第2页 / 共18页
面向对象程序设计26921.doc_第3页
第3页 / 共18页
面向对象程序设计26921.doc_第4页
第4页 / 共18页
面向对象程序设计26921.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、面向对象程序设计实验指导书(适用:计 09)彭召意 编写计算机与通信学院2011.3I目录实验一 Visual C+6.0 开发环境的使用以及 C+函数的应用1实验二 C+数组、指 针、结构体的使用.3实验三 类和对象的创建 4实验四 类的构造函数、析构函数和友员成员应用.5实验五 运算符重载.6实验六 类的继承与派生 7实验七 类的多态性与虚函数.8实验八 VC+6.0 基于 WINDOWS 平台的程序设计 .9实验九 VC+6.0 基于对话框的程序设计 12附录:各实验的程序代 码 .151实验一(实验课时:2 实验性质:设计)实验名称: Visual C+6.0 开发环境的使用以及 C+

2、函数的应用实验目的: (1)熟悉 Visual C+6.0 开发环境;(2)学习使用 Visual C+6.0 编写标准的 C+控制台程序;(3)练习 C+函数的定义及使用;(4)熟悉 C+函数实参和形参的对应关系以及“值传递”的方式;(5)熟悉 C+函数的嵌套调用和递归调用的方法;(6)练习多文件的程序的编译和运行方法;(7)熟悉在 Visual C+6.0 环境下进行程序的简单调试。实验设备: (1)硬件:个人微机(配置不低于:CPU 为 P4,主频 1.6G,内存 256MB,硬盘 40GB) ;(2)软件:操作系统为 WindowsXP(或 2000、server2003 等) ,工具

3、软件为Visual C+6.0。实验内容: (1)熟悉 Visual C+6.0 编译系统的常用功能;(2)编程 1:编辑、编译及运行 c+程序 c1.cpp,即求 a 和 b 两个数之和。观察和分析编译信息,并观察运行结果。(3)编程 2:编写一个程序 c2.cpp,用来求 2 个或 3 个整数的最大数。要求:用重载函数的方法来求最大数;函数原型:int max( int a, int b) 和 int max( int a, int b,int c)。(4)编程 3:编写一个程序 c3.cpp,求: a!+ b! + c!的值。要求:使用递归函数。(5)把第 3 个程序中的主程序和函数分开

4、到两个源程序文件中,分别进行编译后,再运行;(6)使用 debug 调试功能:追踪第 3 个程序中函数的运行。(7)思考:在第 3 个程序中,如果 a,b,c 的值较大,则显示的结果会怎样?这时如何解决此问题?(提示:显示的结果会不对,可能还会是负数,定义一个数组来存放最后结果。)实验要求: (1)掌握 Visual C+6.0 开发环境的常用功能及使用;(2)掌握 C+函数的定义及使用;(3)熟悉 C+函数实参和形参的对应关系以及嵌套调用和递归调用的方法;(4)掌握多文件的程序的编译和运行方法;(5)掌握使用 Visual C+6.0 的 debug 调试功能,并能使用 step into

5、追踪到函数内部;2(6)程序格式规范,程序运行正确;(7)认真书写实验报告,如实填写各项实验内容。实验步骤: (1)启动 Visual C+6.0 开发环境;(2)熟悉 Visual C+6.0 编译系统的常用功能;(3)在 file 菜单中,新建 C+源程序 c1.cpp; (4)编辑 C+源程序文件 c1.cpp 的内容。(5) 编译 c1.cpp,系统会提示是否创建工程(由于前面没有创建工程) ,选择“是” 。则创建一个工程;(6)程序编译正确时,则可建立可执行程序;(注意观察每步的结果)(7)运行可执行文件;(8)关闭工作空间。(9)对编程 2,重复步骤(3)-(8) ,把程序名改动,

6、重建一个新的程序,进行编程调试。(10)对编程 3,在 file 菜单中,新建 C+源程序 cpp3_1; (11)编辑 C+源程序文件 cpp3_1 的内容;(12) 编译 cpp3_1,系统会提示是否创建工程(由于前面没有创建工程) ,选择“是” ,则创建工程;(13)在 file 菜单中,新建 C+源程序 cpp3_2; (14)编辑 C+源程序文件 cpp3_2 的内容;(15)编译文件 cpp3_2 时,系统提示是否加入到此工程,选择“是” ,则把文件 cpp3_2 加入到该工程中。(16)编译和运行此程序,并注意观察每步的结果。(17)使用调试功能:运行到光标处、单步跟踪、查看变量

7、值。(18)使用关闭工作空间。注意:若编译时出错:“fatal error c1010:unexpexted end of file while looking for precompiled header directive.”;该文件需要包含头文件:stdafx.h,即在开头有语句:#include “stdafx.h”思考题:假如已建立了两个 C+源程序 c1.cpp 和 c2.cpp。先用 open 打开 c1.cpp,并完成了编译、连接和运行,再打开 c2.cpp,对它进行编译和连接。此时会出现什么问题?原因何在?怎样解决?3实验二(实验课时:2 实验性质:设计)实验名称: C+数组

8、、指针、结构体的使用实验目的: (1)练习 C+数组的定义及使用;(2)练习 C+指针的定义及使用;(3)练习 C+结构体的定义及使用;(4)进一步学习 VC+6.0 开发环境的 debug 调试功能。实验设备: (1)硬件:个人微机(配置不低于:CPU 为 P4,主频 1.6G,内存 256MB,硬盘 40GB) ;(2)软件:操作系统为 WindowsXP(或 2000、server2003 等) ,工具软件为Visual C+6.0。实验内容: 事先编好程序,上机调试和运行程序,分析结果。(1)编程 1:有一个 3*4 的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和列号

9、;(2)编程 2:建立一个动态链表并进行输出和删除管理。链表的每个节点为学生信息,包括:学号,姓名,性别,下一学生信息的指针。程序的工作:(a)建立三个学生信息的节点,然后顺序输出该三个学生信息;(b)删除中间的节点,再顺序输出学生信息。(3)使用 debug 调试功能单步调试程序的运行,并设置断点。实验要求: (1)掌握 C+数组、指针、结构体的定义及使用;(2)能进一步使用 Visual C+6.0 的 debug 调试功能:单步调试、设置断点等;(3)程序格式规范,程序运行正确;(4)认真书写实验报告,如实填写各项实验内容。实验步骤: (1)启动 Visual C+6.0 开发环境;(2

10、)熟悉 Visual C+6.0 编译系统的常用功能;(3)在 file 菜单中,新建 C+源程序 c2-1.cpp;(4)编辑 C+源程序文件 c2-1.cpp 的内容;(5) 编译 c2-1.cpp,系统会提示是否创建工程(由于前面没有创建工程) ,选择“是” ,则创建一个工程;(6)程序编译正确时,则可建立可执行程序,在调试执行时,使用单步调试、设置断点等功能;(7)运行可执行文件;(8)关闭工作空间。(9)重复(3)-(8) ,把程序名改动,重建一个新的程序,继续完成。45实验三(实验课时:2 实验性质:设计)实验名称: 类和对象的创建实验目的: (1)熟悉 C+面向对象的程序设计的基

11、本概念;(2)练习类的定义和对象的创建;(3)练习对象的成员函数的调用方法以及对象的初始化;实验设备: (1)硬件:个人微机(配置不低于:CPU 为 P4,主频 1.6G,内存 256MB,硬盘 40GB) ;(2)软件:操作系统为 WindowsXP(或 2000、server2003 等) ,工具软件为Visual C+6.0。实验内容: 事先编好程序,上机调试和运行程序,分析结果。(1)编程 1:定义并实现一个简单的学生类:公有属性为:学号、姓名、班级,成员函数为输入和显示一个学生的上述信息;(2)将程序(1)中的数据成员改为私有的,考虑对程序有何影响;(3)编程 2:编辑并运行教材C+

12、面向对象程序设计中的第 2 章习题 2;(4)编程 3:编辑并运行教材C+面向对象程序设计中的第 2 章习题 3。实验要求: (1)掌握 C+类和对象的基本概念;(2)掌握 C+类和对象的定义及使用;(3)掌握对象的成员函数的调用方法;(4)程序格式规范,程序运行正确;(5)认真书写实验报告,如实填写各项实验内容。实验步骤: (1)启动 Visual C+6.0 开发环境;(2)创建一个项目;(3)建立 C+源程序文件;(4)编辑 C+源程序文件内容;(5)建立并运行可执行程序;(6)关闭工作空间。6实验四(实验课时:2 实验性质:设计)实验名称: 类的构造函数、析构函数和友员成员应用实验目的

13、: (1)练习类的构造函数、析构函数的定义和使用方法;(2)练习对象数组、对象指针的使用;(3)练习友员函数的定义和使用;实验设备: (1)硬件:个人微机(配置不低于:CPU 为 P4,主频 1.6G,内存 256MB,硬盘 40GB) ;(2)软件:操作系统为 WindowsXP(或 2000、server2003 等) ,工具软件为Visual C+6.0。实验内容: (1)编程:编辑并运行教材 C+面向对象程序设计中的例 3.5;(2)修改上述程序:修改定义析构函数,在析构函数中输出学号 num。再运行程序,观察运行结果。(3)修改上述 main 程序:使用对象指针,用 new 生成一个

14、学生对象,然后,用 delete 清除该对象,使用单步运行观察运行结果。(4)修改上述程序:增加一个私有数据成员成绩 score;增加定义一个无参的构造函数;增加一个成员函数 readdata:输入一学生的学号和成绩;增加一个成员函数getscore:取得学生的成绩。再修改 main 函数;定义一个班的同学(假如一个班有 10 位同学) ,输出该班的平均成绩。 (提示:采用对象数组)(5)增加定义一个友元函数 fdisplay,在该函数中输出指定学生的学号、姓名、成绩。(6)分别运行上述程序,并分析结果。注意:在增加一个新的功能时,可以把暂时不需要的功能代码给注释掉。实验要求: (1)掌握 C

15、+类的构造函数、析构函数的定义和使用方法;(2)掌握 C+对象数组、对象指针的使用;(3)掌握友员函数的定义和使用;(4)程序格式规范,程序运行正确;(5)认真书写实验报告,如实填写各项实验内容。实验步骤: (1)启动 Visual C+6.0 开发环境;(2)创建一个项目;(3)建立 C+源程序文件;(4)编辑 C+源程序文件内容;(5)建立并运行可执行程序;(6)关闭工作空间。7实验五(实验课时:2 实验性质:设计)实验名称: 运算符重载实验目的: (1)进一步了解运算符重载的概念和使用方法;(2)掌握几种常用的运算符重载的方法;(3)了解转换构造函数的使用方法。实验设备: (1)硬件:个

16、人微机(配置不低于:CPU 为 P4,主频 1.6G,内存 256MB,硬盘 40GB) ;(2)软件:操作系统为 WindowsXP(或 2000、server2003 等) ,工具软件为Visual C+6.0。实验内容: 事先编好程序,上机调试和运行程序,分析结果。(1)有两个矩阵 a 和 b,均为 2 行 3 列。求两个矩阵之和。重载运算符“+” ,使之能用于矩阵相加。如: c=a+b。 (参见C+面向对象程序设计 第 4 章第 4 题)(2)定义一个 Teacher(教师 )类和一个 Student(学生)类,二者有一部分数据成员是相同的,例如 num(号码), name(姓名),s

17、ex(性别)。编写程序,将一个 Student 对象( 学生)转换为 Teacher(教师) 类,只将以上 3 个相同的数据成员移植过去。可以设想为: 一位学生大学毕业了,留校担任教师,他原有的部分数据对现在的教师身份来说仍然是有用的,应当保留并成为其教师的数据的一部分。 (参见C+面向对象程序设计第 4 章第 7 题)实验要求: (1)掌握 C+运算符重载的概念和使用方法;(2)熟悉转换构造函数的使用方法;(3)程序格式规范,程序运行正确;(4)认真书写实验报告,如实填写各项实验内容。实验步骤: (1)启动 Visual C+6.0 开发环境;(2)创建一个项目;(3)建立 C+源程序文件;

18、(4)编辑 C+源程序文件内容;(5)建立并运行可执行程序,并分析结果;(6)关闭工作空间。8实验六(实验课时:2 实验性质:设计)实验名称:类的继承与派生实验目的: (1)进一步理解继承与派生的概念;(2)掌握通过继承派生出一个新的类的方法;实验设备: (1)硬件:个人微机(配置不低于:CPU 为 P4,主频 1.6G,内存 256MB,硬盘 40GB) ;(2)软件:操作系统为 WindowsXP(或 2000、server2003 等) ,工具软件为Visual C+6.0。实验内容: 事先编好程序,上机调试和运行程序,分析结果。(1)编程:编辑修改、补充并运行教材C+面向对象程序设计中

19、的例5.3:修改它的错误,使它成为一个正确的程序;在基类 Student 中增加一个成员函数ReadData()用于输入 num、name、sex 。(2)编程:在上述工程中增加一个 Teacher(教师)类,采用多重继承方式由Student 和 Teacher 类公有派生出新类 Student_Teacher。要求: Teacher 类的保护成员有:name 、sex 、title(职称) 、wages(工资) 。两个基类中的 name、sex 同名,在引用这些数据成员时,指定作用域。 在派生类 Student_Teacher 中,增加两个成员函数:ReadF1()用于读入:num、name

20、 、sex 、title、wages 。Show ()用于输出数据,在 Show()中,首先调用Student 类的 display()函数用于输出 num、name、sex,然后再用 cout 语句输出title、wages 。 在类体中声明成员函数,在类外定义成员函数。思考题:类的三种继承方式的主要区别是什么?实验要求: (1)掌握继承与派生的概念;(2)掌握通过继承派生出一个新的类的方法;(3)程序格式规范,程序运行正确;(4)认真书写实验报告,如实填写各项实验内容。实验步骤: (1)启动 Visual C+6.0 开发环境;(2)创建一个项目;(3)建立 C+源程序文件;(4)编辑 C

21、+源程序文件内容;(5)建立并运行可执行程序;(6)关闭工作空间。9实验七(实验课时:2 实验性质:设计)实验名称: 类的多态性与虚函数实验目的: (1)了解多态性的概念;(2)了解虚函数的作用和使用方法;(3)了解纯虚函数和抽象类的概念和用法。实验设备: (1)硬件:个人微机(配置不低于:CPU 为 P4,主频 1.6G,内存 256MB,硬盘 40GB) ;(2)软件:操作系统为 WindowsXP(或 2000、server2003 等) ,工具软件为Visual C+6.0。实验内容: 事先编好程序,上机调试和运行程序,分析结果。(1)编程:定义抽象基类 shape,由它派生出 3 个

22、派生类: Circle(圆形) 、Rectangle(矩形 )、Triangle(三角形) ,用一个函数 printArea 分别输出以上三者的面积,3个图形的数据在定义对象时给定。 (参见C+面向对象程序设计 第 6 章第 4 题)(2)运行上述程序,并分析结果。实验要求: (1)掌握多态性的概念;(2)掌握虚函数的作用和使用方法;(3)掌握纯虚函数和抽象类的概念和用法;(4)程序格式规范,程序运行正确;(5)认真书写实验报告,如实填写各项实验内容。实验步骤: (1)启动 Visual C+6.0 开发环境;(2)创建一个项目;(3)建立 C+源程序文件;(4)编辑 C+源程序文件内容;(5

23、)建立并运行可执行程序,并分析结果;(6)关闭工作空间。思考题:虚函数的作用是什么?10实验八(实验课时:2 实验性质:设计)实验名称: VC+6.0 基于 WINDOWS 平台的程序设计实验目的: (1)熟悉 Visual c+基于 WINDOWS 平台程序设计(单文档和多文挡机制) ;(2)熟悉消息响应函数的创建和使用;(3)熟悉程序界面中的菜单和工具栏的使用;(4)熟悉文档/视图结构的视图重绘和输出。实验设备: (1)硬件:个人微机(配置不低于:CPU 为 P4,主频 1.6G,内存 256MB,硬盘 40GB) ;(2)软件:操作系统为 WindowsXP(或 2000、server2

24、003 等) ,工具软件为Visual C+6.0。实验内容: (1)编程:用 Visual c+设计出不用编写一行代码的文本编辑器 (基于多文挡),并简单测试文本文件的编辑、读取、存取等功能;(2)编程:用 Visual c+设计出基于单文挡/视图结构的程序,并修改程序中的菜单(名称自定) ;(3)添加一个菜单消息响应函数,功能为:显示一对话框“Click Me.” ;(4)在另一菜单中添加菜单消息响应函数,功能为:弹出一个自定义的对话框,对话框上的功能自定(可以很简单的只放上基本的控件) ;(5)在工具栏上添加 3 个简单的工具,功能分别为:(a)在视图的位置(10,15)处输出一行文字“

25、这是简单的输出文本示例。 ”;(b)在在视图的位置(80,120)处画一个矩形(其大小为(50,50) ) ;(c)擦除刚画的矩形框。并编写该功能的代码。实验要求: (1)熟悉 Visual c+框架有关的文挡,视图等概念;(2)学会如何在 Visual c+中建立简单的工程及添加消息响应函数的方法。 ;(3)熟悉视图的输出;(4)程序格式规范,程序运行正确;(5)认真书写实验报告,如实填写各项实验内容。实验步骤: (1)启动 Visual C+6.0 开发环境;(2)创建项目:选择 File|New 命令,在 New 对话框中生成一个自己命名的项目 Ch901。在 MFC AppWizard

26、 Step1 对话框中选中多文档按钮,并要确认Document/View architecture support 复选框被选中。如果不选中它,则 MFC AppWizard 就不会自动为文挡/视图结构生成代码了。在 MFC AppWizard Step1 对话框中单击 Next 按钮,进入 Step2 对话框。这个对话框询问是否要加入对数据库访问的支持,不需要支持数据库,选中 None 单选按钮。在 MFC AppWizard Step2 对话框中单击 Next 按钮,选默认选项。11在 MFC AppWizard Step3 对话框中单击 Next 按钮,选默认选项。在 MFC AppWi

27、zard Step4 对话框中单击 Next 按钮,选默认选项。在 MFC AppWizard Step5 对话框中单击 Next 按钮,在 Base class 下拉列表中选择 CEditView 选项,代表以 CEditView 作为 CCh901View 的父类,而不是通常的CView。这样就能得到一个具有文本编辑功能的视图类 CCh901View 了。单击 MFC AppWizard Step6 对话框中的 Finish 按钮, 这时 Visual c+将显示一个对话框提示程序员即将生成的程序框架的信息,在这个对话框中单击 OK 按钮。这样就生成了一个具有文本编辑功能的应用程序,编辑运

28、行 Ch901 项目,然后进行测试。(3)另建一个单文档界面项目,并添加菜单: 按照前面生成 ch901 项目的方法生成 ch902 项目(最后视图类不要改动)在 ch902 项目的菜单资源中,添加菜单资源:“其他功能”|“菜单演示”,菜单 ID 重命名: ID_Test。选择 Visual C+的 View|classWizard 命令,在 MFC ClassWizard 对话框中单击 Message Maps 标签。在 Message Maps 选项卡中的 class name 下拉列表中选择 CMainFrame 类,然后在 object IDS 列表中选择 ID_Test 控件。双击

29、Message 列表中的 COMMAND 消息,MFC ClassWizard 将在CMainFrame 类中自动添加一个成员函数:OnTest,用于响应这个消息。编辑 CMainFrame 类的 OnTest 函数,添加如下代码:MessageBox(“这是一个命令的演示程序。 ”);或MessageBox( “Click Me.”)。编译运行 ch902 项目,选择“其他功能”| “菜单演示”命令,程序就会显示一个消息对话框。(8)添加一个对话框资源,再增加一个基于此对话框的类,然后在另一菜单中添加菜单消息响应函数,功能为:弹出一个自定义的对话框(该对话框就是刚才新建的对话框) 。(9)添

30、加工具栏上的按钮,然后添加相应代码。提示:输出文本的成员函数为 pDC-TextOut(10,15,“ 这是简单的输出文本示例。“);画矩形的成员函数可以写为 pDC-Rectangle(80,120,80+50 ,120+50);/ 在视图的 OnDraw 函数中重绘视图窗口的函数为:Invalidate();(重绘整个视图) 或 InvalidateRect(CRect,FALSE); (重绘视图的一个矩形区)并且可以设置一个标识变量,记住是画矩形还是擦除矩形。(10)全部完成后,关闭工作空间。附录:(1)注意知识点:Windows 将应用程序分为单文档程序和多文档程序。单文档界面程序是指

31、整个应用12程序中在一个时间内只能打开一个文档,显示在一个视图中;而多文档界面程序则可同时打开多个文档,在不同的视图中独立编辑,不受干扰。视图,也就是窗口的客户区,用于显示用户正在编辑的文档,是用户的工作区,在MFC 中对 Cview 类及其派生类。文档,代表用户正在视图上编辑的文件,负责文件的读写,在 MFC 中对应Cdocument 类及其派生类(2)相关知识点:菜单是一种资源,它由多个命令组成,每个命令都有一个 ID 值,这个 ID 值用于在程序中识别不同的命令,当某个命令被选择时,会发出 WM_COMMAND 消息,可以通过使用 MFC ClassWizard 将这个消息以及发出这个消

32、息的命令映射到某一个类的成员函数上。菜单本身有一个 ID 值,用于同其他资源相区别。对话框也是一种资源。使用 MFC 类库进行编程时,可使用 CDialog 类来派生出用于处理对话框功能的类,对于任何一个由程序员自定义的对话框,都需要为该对话框单独设计一个类,这个类从 CDialog 类继承。每个 CDialog 类(及其派生类)都必须同一个对话框资源相联系。在菜单中添加一个菜单命令:“其他功能” |“菜单演示”打开菜单资源编辑窗口,双击菜单栏上最右边的“帮助”菜单右边的虚框,然后在Menu Item properties 对话框中的 Caption 文本框中输入“其他功能(if(UpdateData()= =TRUE)/取用户输入的数据nA=m_nFirstNum;nB=m_nSecondNum;m_nResult=nA+nB;UpdateData(FALSE);/将结果传给对话框上的控件(6)程序编译正确时,则可建立可执行程序;(7)在对话框上添加一个菜单。首先要建立菜单资源,然后,在对话框的设置中,把菜单资源加进去。最后,编写菜单对应的功能代码。运行测试。(8)在对话框上添加其他的控件,设置这些控件的属性,再练习这些控件的使用;(9)关闭工作空间。16附录:各实验的程序代码

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报