- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++程序设计
实验指导书
实验要求
《C++程序设计》课程实验的目的是为了使学生在课堂学习的同时,通过一系列的实验,使学生加深了解和更好地掌握《C++程序设计》课程教学大纲要求的内容。
在《C++程序设计》的课程实验过程中,要求学生做到:
(1)预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出现的情况提前作出思考和分析。
(2)仔细观察程序调试过程中出现的各种问题,记录主要问题,作出必要说明和分析。
(3)认真书写实验报告。
(4)遵守机房纪律,服从辅导教师指挥,爱护实验设备。
(5)实验课程不迟到。如有事不能出席,所缺实验一般不补。
(6)本实验采用的开发环境为Microsoft Visual C++ 6.0,同学在做实验之前要求熟悉该集成开发环境。
实验的验收将分为两个部分。第一部分是上机操作,包括检查程序运行和即时提问。第二部分是提交书面的实验报告。
实验1 C++面向对象程序设计(4学时)
1.实验目的
学习类与对象的定义、声明及使用方法。
学习具有不同属性的数据成员与成员函数的访问方式。
理解构造函数和析构函数的定义与执行过程。
学习定义和使用类的继承关系,定义派生类。
学习使用虚函数实现动态多态性。
学习利用虚基类解决二义性问题。
2.实验类型
设计型。
3.实验基本要求
下面是“平面上点”类的定义:
class CPoint
{
private:
int x, y;
static int nCount; // nCount用于保存点的个数
public:
CPoint(int px=0, int py=0);
CPoint(CPoint);
~CPoint();
int GetX();
int GetY();
void SetX(int);
void SetY(int);
void ShowPoint();
};
请完成该类中各成员函数的定义。
下面是“平面上线段”类的定义:
class CLine
{
private:
CPoint pt1, pt2; //pt1和pt2分别代表该线段的起点和终点
public:
CLine();
CLine(int x1,int y1,int x2,int y2);
CLine(CPoint p1,CPoint p2);
double Distance(); //计算该线段长度的成员函数
void ShowLine();
};
请完成该类中各成员函数的定义。并利用VC调试工具观察含有组合关系类的构造函数和析构函数的执行情况。
下面是“空间中点”类的定义:
class CThreePoint:public CPoint
{
private:
int z;
public:
CThreePoint();
CThreePoint(int, int, int);
int GetZ();
void SetZ(int pz);
virtual void ShowPoint();
};
请完成该类中各成员函数的定义。并利用VC调试工具观察含有继承关系类的构造函数和析构函数的执行情况。分析为什么要把ShowPoint()函数设置为虚函数?有什么作用?请在main()函数中做测试。
定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(int n)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?把age改为保护成员变量呢?编程试试看。
定义一个车(vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数(SeatNum)等属性。从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。观察虚函数的作用。在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?编程试试看。
参考题目2中Cline类的编写,编写一个空间中线段CThreeLine类。并在该类中观察构造函数的执行顺序。(选做)
4.实验基本步骤
该类是一个基本的类。在编写该类时,要注意对静态成员nCount的操作,使其能够正确表示程序中点的个数。编完该类后,要在main()函数中进行测试,分别定义CPoint类的对象、指针、引用,对各成员函数进行调用。分析对静态成员的调用和一般成员的调用方式有什么不同。
要思考如何对类中3个构造函数CLine(),CLine(int x1,int y1,int x2,int
文档评论(0)