实验二继承机制实验报告

上传人:公**** 文档编号:546283769 上传时间:2022-07-26 格式:DOCX 页数:9 大小:17.35KB
返回 下载 相关 举报
实验二继承机制实验报告_第1页
第1页 / 共9页
实验二继承机制实验报告_第2页
第2页 / 共9页
实验二继承机制实验报告_第3页
第3页 / 共9页
实验二继承机制实验报告_第4页
第4页 / 共9页
实验二继承机制实验报告_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《实验二继承机制实验报告》由会员分享,可在线阅读,更多相关《实验二继承机制实验报告(9页珍藏版)》请在金锄头文库上搜索。

1、浙江理工大学信息学院实验指导书实验名称:类的继承机制的实现学时安排:3实验类别:设计性实验实验要求:1人1组学号:姓名1. 一、实验目的掌握单继承和多重继承的概念。2. 理解不同的继承类型:public、protected和private,掌握何时使用何种继承类型。掌握类层次中构造函数的定义方式和建立对象时构造和析构次序二、实验原理介绍通过继承机制实现对类功能的扩展,合理设计派生类的构造函数、成员函数。三、实验设备介绍软件需求:windows或linux下的C+编译器硬件需求:对于硬件方面的要求,建议配置是PentiumIII450以上的CPI处理器,64MB以上的内存,200MB的自由硬盘空

2、间、CD-ROIME动器、能支持24位真彩色的显示卡、彩色显示器、打印机。四、实验内容实现对第一次实验结果Elevator类的功能扩展。在Elevator类已有功能的基础上派生AdvancedElevator类。AdvancedElevator类可以实现当多人在不同楼层等待乘坐上行或下行的同一部电梯时,能够合理的根据乘坐人的需求对电梯经停的楼层进行排序。要求:1. 为了实现上的方便性,我们假设同一组要求乘坐电梯的乘客或者都是上行,或者都是下行。在主函数中对该类的功能进行测试,测试方法是首先选择在某一时间段一组要乘坐电梯的乘客是上行还是下行,然后输入组中乘客的人数及每一个乘客所在楼层和目的楼层,

3、由AdvancedElevator类实例化后的电梯对象在运作的过程中,如果电梯是上行,则能根据乘客所在的楼层和目的楼层从下向上依次停靠;如果电梯是下行,则能根据乘客所在的楼层和目的楼层从上向下依次停靠。2. 在测试的过程中,还需要注意测试当多个用户在同一楼层或多个用户的目的楼层为同一楼层时情况的处理。提示:为了方便描述乘客,我们可以定义一个Person类,主要描述每一个乘客所在楼层和目的楼层。AdvancedElevator类从Elevator类继承而来,它从某一个时间段要乘坐电梯的每个乘客的信息当中提取其所在楼层和目的楼层信息,然后对它们进行排序,再由继承自基类Elevator的成员setF

4、loorNumber对要停靠的楼层序列依次输出。思考(可选)如果加入乘客的体重信息,如何实现在停靠楼层对超载信息的提示。五程序清单(el.cpp)#includeElevator.hElevator:Elevator(intf)floor=f;up=false;down=false;currentFloor=1;voidElevator:setUpButton()if(currentFloorfloorNumber)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RE

5、D|FOREGROUND_GREEN);cout您不能上行!endlfloor)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout没这一层!太高啦!您想上天?!endlendl;elseup=true;voidElevator:setDownButton()if(currentFloorfloorNumber)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE)

6、,FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout您不能下行!endlendl;elseif(floorNumber1)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout没这一层!太低啦!您想入地?!endlendl;elsedown=true;voidElevator:setFloorNumber(intfloorNumber)if(up)for(;

7、currentFloorfloorNumber;currentFloor+)cout-currentFloor-endl;Sleep(2000);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);coutvv第vvcurrentFloorvv层至U了endlfloorNumber;currentFloor-)cout-currentFloor-endl;Sleep(2000);SetConsoleTextAttribute(GetStdHandle(STD_O

8、UTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);coutvv第vvcurrentFloorvv层至U了endln;switch(n)case1:coutvv当前电梯停在vvcurrentFloorvv层vvendl;coutvv请输入要进入的楼层vvendl;cinfloorNumber;setUpButton();setFloorNumber(floorNumber);break;case2:coutvv当前电梯停在vvcurrentFloorvv层vvendl;if(currentFloor=1)SetConsoleTextAttrib

9、ute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout您已经在第一层了!除非您自己打洞,不然我是不会带你下去的!endlendl;return;cout请输入要进入的楼层floorNumber;setDownButton();setFloorNumber(floorNumber);break;case3:exit(0);default:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROU

10、ND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout只能选上升和下降!您难道还想玩电梯漂移?!endlendl;break;SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);cout当前电梯停在currentFloor层endl;voidElevator:charge()SetConsoleTextAttribute(GetStdHandle(ST

11、D_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);cout-请选择操作-endl;cout|1.上升|endl;cout|2.下降|endl;cout|3.退出|endl;cout|endl;(main.cpp)#includeElevator.hclassAdvElevator:publicElevatorpublic:AdvElevator(intf):Elevator(f)currentFloor=1;voidsetdata();voidsetFloorNumber

12、();voidchoice();private:intjudge(int);intfln20;intw10;intN;intnum;voidAdvElevator:setFloorNumber()inti;if(up)coutendl;for(i=0;currentFloor=floorNumber;currentFloor+)if(currentFloor=flni)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);cout第currentFloor层到了e

13、ndl;Sleep(2000);i+;SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);elsecout-currentFloor-endl;Sleep(2000);currentFloor=floorNumber;coutendl;up=false;if(down)cout=floorNumber;currentFloor-)if(currentFloor=flni)SetConsoleTex

14、tAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);cout第currentFloor层到了endl;Sleep(2000);i-;SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);elsecout-currentFloor-endl;Sleep(2000);currentFloor=floorNumber;coutendl;down=false;voidAdvElevator:setdata()cout请告诉我共有几人num;coutendl;N=2*num;inti=0,n=1,q=1;while(q=num)coutvv第vvqv

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号