- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浙江理工大学信息电子学院
实验指导书
实验名称:类的继承机制的实现
学时安排:3
实验类别:设计性实验
实验要求:1人1组
学号:2012329620058
计科3班
胡冰倩
—、实验目的
掌握单继承和多重继承的概念。
理解不同的继承类型:pub I ic、protected和pr i vate,掌握何时使用何种继 承类型。
掌握类层次中构造函数的定义方式和建■对象时构造和析构次序
二、 实验原理介绍
通过继承机制实现对类功能的扩展,合理设计派生类的构造函数、成员函数。
三、 实验设备介绍
软件需求:Visual C++ 6.0
硬件需求:对于硬件方面的要求,建议配置是Pentium I I I 450以上的CPU 处理器,64MB以上的内存,200MB的自由硬盘空间、CD-ROM驱动器、能支持24 位真彩色的显示卡、彩色显示器、打印机。
四、 实验内容
实现对第一次实验结果Elevator类的功能扩展。在Elevator类已有功能的基础 上派生EIevatorFactory类。EIevatorFactory类可以实现当多人在不同楼层等 待乘坐上行或下行的同一部电梯时,能够合理的根据乘坐人的需求对电梯经停的 楼层进行排序。
要求:
为了实现上的方便性,我们假设同一组要求乘坐电梯的乘客或者都是上行,或 者都是下行。
在主函数中对该类的功能进行测试,测试方法是首先选择在某一时间段一组要 乘坐电梯的乘客是上行还是下行,然后输入组中乘客的人数及每一个乘客所在楼 层和目的楼层,由ElevatorFactory类实例化后的电梯对象在运作的过程中,如 果电梯是上行,则能根据乘客所在的楼层和目的楼层从下向上依次停靠;如果电 梯是下行,则能根据乘客所在的楼层和目的楼层从上向下依次停靠。
在测试的过程中,还需要注意测试当多个用户在同一楼层或多个用户的目的楼 层为同一楼层时情况的处理。
程序要求的结果请运行e I evator. exe
提示:
为了方便描述乘客,我们可以定义一个Person类,主要描述每一个乘客所在楼 层和目的楼层。ElevatorFactory类从Elevator类继承而来,它从某一个时间 段要乘坐电梯的每个乘客的信息当中提取其所在楼层和目的楼层信息,然后对它 们进行排序,再由继承自基类EIevator的成员setFloorNumber对要停靠的楼层 序列依次输出。
思考(可选〉
如果加入乘客的体重信息,如何实现在停靠楼层对超载信息的提示。
五程序清单
#include i ostream
us i ng namespace std;
cI ass Elevator
{
protected:
int floor;
boo I up;
boo I down;
i nt cur rentF 丨 oor;
pub I ic:
Elevator (int floor);
vo i d setUpButton ();
void set Dow nButtonO;
void setFIoorNumber (int floorNumber);
int getCurrentFIoor () { return currentFIoor;}
};
EIevator::Elevator (int floor)
{
up二fa Ise;
down二fa Ise;
cur rentF I oorh ;
EIevator::fIoor=fIoor;
}
void EIevator::setDownButton ()
{
down二true;up二fa Ise;
}
void EIevator::setUpButton()
{
up二true;down二fa Ise;
}
void EIevator::setFIoorNumber(int fIoorNumber)
{
if (up二二true) {
i f (cur rentFIoor=fIoorNumber) {
for(;currentFIoor〈fIoorNumber;currentFloor++) {
cout?--?currentF I oor?一?end I ;
}
cout?第”f IoorNumber?层到了 〈〈end I ;
e I se {
cout?n您不能上行! Xend I ;
}
i f (down二二true) {
i f (currentFIoor二f丨oorNumber) {
for (;cur rentF 丨 oorfIoorNumber;currentFIoor-一)
cout?--?cur rentF I oor?--?end I ; cout?第“f I oorNumber?层到T?end I ;
}
cout?H您不能下行! 《end I ;
}
}
cI as
文档评论(0)