您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《面向对象程序设计》实验指导书 (1-6个实验,含参考代码)
面向对象程序设计实验指导书(适用:电子信息11级)彭召意陶立新编写计算机与通信学院2014.9I目录实验一C++基础的应用...................................................................................................................1实验二类和对象的应用.................................................................................................................3实验三类的构造函数、析构函数的应用.....................................................................................4实验四友员和运算符重载.............................................................................................................5实验五类的继承与派生.................................................................................................................6实验六类的多态性与虚函数.........................................................................................................7附录:各实验的程序代码...............................................................................................................81实验一C++基础的应用(实验课时:2实验性质:设计)实验名称:C++基础的应用实验目的:(1)进一步学习VC++6.0开发环境及程序调试方法。(2)练习C++函数的定义及使用;(3)练习C++数组的定义及使用;(4)练习C++指针的定义及使用;(5)练习C++结构体的定义及使用;(6)练习多文件的程序的编译和运行方法;实验设备:(1)硬件:个人微机(配置不低于:CPU为P4,主频1.6G,内存256MB,硬盘40GB);(2)软件:操作系统为WindowsXP(或2000、server2003等),工具软件为VisualC++6.0。实验内容:(1)熟悉VisualC++6.0编译系统的常用功能,特别是debug调试功能;(2)编程1:编写一个程序c1.cpp,用来求2个或3个整数的最大数。要求:用重载函数的方法来求最大数;函数原型:intmax(inta,intb)和intmax(inta,intb,intc)。(3)编程2:编写一个程序c2.cpp,求:a!+b!+c!的值。要求:使用递归函数。主程序和函数分开到两个源程序文件中,分别进行编译后,再运行;(4)编程3:有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和列号;(5)编程4:建立一个动态链表并进行输出和删除管理。链表的每个节点为学生信息,包括:学号,姓名,性别,下一学生信息的指针。程序的工作:(a)建立三个学生信息的节点,然后顺序输出该三个学生信息;(b)删除中间的节点,再顺序输出学生信息。(6)使用debug调试功能:追踪第2个程序中函数的运行。(7)思考:在第2个程序中,如果a,b,c的值较大,则显示的结果会怎样?这时如何解决此问题?(提示:显示的结果会不对,可能还会是负数,定义一个数组来存放最后结果。)实验要求:(1)掌握VisualC++6.0开发环境的常用功能及使用,能进一步使用VisualC++6.0的debug调试功能:单步调试、设置断点等;(2)掌握C++函数的定义及使用,掌握函数的嵌套调用和递归调用的方法;(3)掌握C++数组、指针、结构体的定义及使用;(4)掌握多文件的程序的编译和运行方法;(5)程序格式规范,程序运行正确;(6)认真书写实验报告,如实填写各项实验内容。2实验步骤:(1)启动VisualC++6.0开发环境;(2)熟悉VisualC++6.0编译系统的常用功能;(3)在file菜单中,新建C++源程序c1.cpp;(4)编辑C++源程序文件c1.cpp的内容。(5)编译c1.cpp,系统会提示是否创建工程(由于前面没有创建工程),选择“是”。则创建一个工程;(6)程序编译正确时,则可建立可执行程序;(注意观察每步的结果)(7)运行可执行文件;(8)关闭工作空间。(9)对编程2,在file菜单中,新建C++源程序cpp2_1;(10)编辑C++源程序文件cpp2_1的内容;(11)编译cpp2_1,系统会提示是否创建工程(由于前面没有创建工程),选择“是”,则创建工程;(12)在file菜单中,新建C++源程序cpp2_2;(13)编辑C++源程序文件cpp2_2的内容;(14)编译文件cpp2_2时,系统提示是否加入到此工程,选择“是”,则把文件cpp2_2加入到该工程中。(15)编译和运行此程序,并注意观察每步的结果。(16)使用调试功能:运行到光标处、单步跟踪、查看变量值。(17)使用关闭工作空间。(18)参照上述方法,完成编程3和编程4。注意:若编译时出错:“fatalerrorc1010:unexpextedendoffilewhilelookingforprecompiledheaderdirective.”;该文件需要包含头文件:stdafx.h,即在开头有语句:#include“stdafx.h”思考题:假如已建立了两个C++源程序c1.cpp和c2.cpp。先用open打开c1.cpp,并完成了编译、连接和运行,再打开c2.cpp,对它进行编译和连接。此时会出现什么问题?原因何在?怎样解决?3实验二类和对象的应用(实验课时:2实验性质:设计)实验名称:类和对象的应用实验目的:(1)熟悉C++面向对象的程序设计的基本概念;(2)练习类的定义和对象的创建;(3)练习对象的成员函数的调用方法以及对象的初始化;实验设备:(1)硬件:个人微机(配置不低于:CPU为P4,主频1.6G,内存256MB,硬盘40GB);(2)软件:操作系统为WindowsXP(或2000、server2003等),工具软件为VisualC++6.0。实验内容:事先编好程序,上机调试和运行程序,分析结果。(1)编程1:定义并实现一个简单的学生类:公有属性为:学号、姓名、班级,成员函数为输入和显示一个学生的上述信息;(2)将程序(1)中的数据成员改为私有的,考虑对程序有何影响;(3)编程2:设计一个长方形类Rectangle。成员变量包括:长度和宽度,成员函数有:Area计算面积,Set设置长方形的长和宽,Get获取长方形的长和宽。最后,编写一个主程序来测试该类及成员函数。(4)编程3:设计一个汽车类Car。成员变量有:品牌,颜色,车门,车灯,行驶速度。成员函数有:打开车门、打开车灯、加速、减速等。最后,编写一个主程序来测试该类及功能。(提示:在成员函数中用输出成员函数名来表示该成员函数被调用)实验要求:(1)掌握C++类和对象的基本概念;(2)掌握C++类和对象的定义及使用;(3)掌握对象的成员函数的调用方法;(4)程序格式规范,程序运行正确;(5)认真书写实验报告,如实填写各项实验内容。实验步骤:(1)启动VisualC++6.0开发环境;(2)创建一个项目;(3)建立C++源程序文件;(4)编辑C++源程序文件内容;(5)建立并运行可执行程序;(6)关闭工作空间。4实验三类的构造函数、析构函数的应用(实验课时:2实验性质:设计)实验名称:类的构造函数、析构函数的应用实验目的:(1)练习类的构造函数、析构函数的定义和使用方法;(2)练习对象数组、对象指针的使用;(3)练习类的静态成员的使用。实验设备:(1)硬件:个人微机(配置不低于:CPU为P4,主频1.6G,内存256MB,硬盘40GB);(2)软件:操作系统为WindowsXP(或2000、server2003等),工具软件为VisualC++6.0。实验内容:(1)编程:设计一个学生类。要求:学生的属性有:学号,姓名,性别;学生的行为有:输入学生的上述属性和输出学生的上述属性。编写构造函数对学生的所有属性初始化,无参数的构造函数设置学号为1001,姓名为“张三”,性别为‘M’(‘M’代表男,‘F’代表女)。(2)修改上述程序:修改定义析构函数,在析构函数中输出学号。再运行程序,观察运行结果。(3)修改上述main程序:使用对象指针,用new生成一个学生对象,然后,用delete清除该对象,使用单步运行观察运行结果。(4)修改上述程序:增加一个私有数据成员成绩score;增加一个成员函数readdata:输入一学生的学号和成绩;增加一个成员函数getscore:取得学生的成绩。再修改main函数;定义一个班的同学(假如一个班有10位同学,采用对象数组),输出该班的平均成绩。(5)不用对象数组,而使用静态的数据成员来实现(4)中求一个班的学生的平均成绩,学生的成绩在构造函数中输入。(提示:定义2个静态数据成员,1个是存储总成绩,1个是存储学生人数)。(6)分别运行上述程序,并分析结果。注意:在增加一个新的功能时,可以把暂时不需要的功能代码给注释掉。实验要求:(1)掌握C++类的构造函数、析构函数的定义和使用方法;(2)掌握C++对象数组、对象指针的使用;(3)掌握类的静态数据成员的定义和使用;(4)程序格式规范,程序运行正确;(5)认真书写实验报告,如实填写各项实验内容。实验步骤:(1)启动VisualC++6.0开发环境;(2)创建一个项目;(3)建立C++源程序文件;(4)编辑C++源程序文件内容;(5)建立并运行可执行程序;(6)关闭工作空间。5实验四友员和运算符重载(实验课时:2实验性质:设计)实验名称:友元和运算符重载实验目的:(1)进一步了解运算符重载的概念和使用方法;(2)掌握几种常用的运算符重载的方法;(3)练习友员函数的定义和使用;(4)了解转换构造函数的使用方法。实验设备:(1)硬件:个人微机(配置不低于:CPU为P4,主频1.6G,内存256MB,硬盘40GB);(2)软件:操作系统为WindowsXP(或2000、server2003等),工具软件为VisualC++6.0。实验内容:事先编好程序,上机调试和运行程序,分析结果。(1)有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加。如:c=a+b。(2)编写一个友元函数来读取矩阵指定所在行列的值。(3)定义一个Teacher(教师)类和一个Student(学生)类,二者有一部分数据成员是相同的,例如num(号码),name(姓名),sex(性别)。编写程序,将一个Student对象(学生)转换为Teacher(教师)类,只将以上3个相同的数据成员移植过去。可以设想为:一位学生大学毕业了,留校担任教师,他原有的部分数据对现在的教师身份来说仍然是有用的,应当保留并成为其教师的数据的一部分。实验要求:(1)掌握C++运算符重载的概念和使用方法;(2)熟悉转换构造函数的使用方法;(3)程序格式规范,程序运行正确;(4)认真书写实验报告,如实填写各项实验内容。实验步骤:(1)启动VisualC++6.0开发环境;(2)创建一个项目;(3)建立C++源程序文件;(4)编辑C++源程序文件内容;(5)建立并运行可执行程序,并分析结果;(6)关闭工作空间。6实验五类的继承与派生(实验课时:2实验性质:设计
本文标题:《面向对象程序设计》实验指导书 (1-6个实验,含参考代码)
链接地址:https://www.777doc.com/doc-4489152 .html