1、实验一类及对象实验报告浙江理工大学信息学院面向对象程序设计实验报告实验名称:类的定义与使用 学时安排:3实验类别:设计性实验 实验要求:1人1组姓名:邵旸珂 学号:2016329621068 一、实验目的1)掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性;2)掌握类对象的定义;3)理解类的成员的访问控制的含义,公有、私有和保护成员的区别;4)掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数;二、实验原理介绍通过建立类及对象,用类的成员函数和对象访问类的成员;利用建立类的构造函数,完成类的成员
2、的初始化工作;三、实验设备介绍软件需求: windows或linux下的c+编译器硬件需求: 对于硬件方面的要求,建议配置是Pentium III 450以上的CPU处理器,64MB以上的内存,200MB的自由硬盘空间、CD-ROM驱动器、能支持24位真彩色的显示卡、彩色显示器、打印机。四、实验内容编写一个程序,模拟电梯的功能。功能接口包括电梯上行按钮、下行按钮、楼层选择和电梯在行驶过程中的楼层显示。要求: 1.由用户选择按上行按钮还是下行按钮,选择操作后再由用户输入要进入的楼层,进而电梯开始运行,显示所到的每一楼层层数。 2.如果是上行,则选择输入的楼层号不能比当前楼层号小,否则应给出不合法
3、提示。 3. 如果是下行,则选择输入的楼层号不能比当前楼层号大,否则应给出不合法提示。4.电梯一旦开始运作就会始终运行,直到窗口关闭。5.电梯在经过不同楼层时,最好每个楼层的显示之间能有延迟,最终停靠的楼层的输出形式能更加醒目。如果可以,在电梯最初开始运行时,能在电梯由内部显示当前日期(提示:实现这些功能时,需要调用系统api,实现时间显示功能可以使用CDate类)。五 程序清单#include #include #include using namespace std;int n,floorNumber;class Elevatorprivate: int floor; /电梯总的楼层数 b
4、ool up; /是否上行,bool为布尔类型,可取值true或false bool down; /是否下行 int currentFloor; /当前所在楼层public: Elevator(int floor); void setUpButton(); /按下上行按钮 void setDownButton(); /按下下行按钮 void setFloorNumber(int floorNumber); /根据要进入的楼层电梯开始运行,并逐层显示经过的楼层 int getCurrentFloor();/获得当前所在楼层 void charge(); int choice();Elevator
5、:Elevator(int f) floor =f; up=false; down=false; currentFloor=1;void Elevator:setUpButton() if(currentFloorfloorNumber) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN); cout您不能上行!endlfloor) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_
6、HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN); cout没这一层!太高啦!您想上天?!endlendl; else up=true;void Elevator:setDownButton() if(currentFloorfloorNumber) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN); cout您不能下行!endlendl; else i
7、f(floorNumber1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN); cout没这一层!太低啦!您想入地?!endlendl; else down=true;void Elevator:setFloorNumber(int floorNumber) if(up) for(;currentFloorfloorNumber;currentFloor+) cout-currentFloor-endl; Sleep(20
8、00); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED); cout第currentFloor层到了endlfloorNumber;currentFloor-) cout-currentFloor-endl; Sleep(2000); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED); cout第currentFloor层到
9、了endln; if(n=2&getCurrentFloor()=1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN); cout您已经在第一层了!除非您自己打洞,不然我是不会带你下去的!endlendl;return 0; switch(n) case 1:cout请输入要进入的楼层floorNumber;setUpButton();setFloorNumber(floorNumber); break; case 2:co
10、ut请输入要进入的楼层floorNumber;setDownButton();setFloorNumber(floorNumber);break; case 3:return -1; default:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN); cout只能选上升和下降!您难道还想玩电梯漂移?!endlendl; break; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT
11、_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE); cout当前电梯停在getCurrentFloor()层endl;void Elevator:charge() SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE); cout-请选择操作-endl; cout| 1.上升 |endl; co
12、ut| 2.下降 |endl; cout| 3.退出 |endl; cout|-|endl;int main() long a; time(&a); int floor; cout告诉我总共有几层floor; Elevator el(floor); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE); coutctime(&a)endl; cout本电梯共floor层,欢迎您的使用endlendl; while(1) int i=0; el.charge(); i=el.choice(); if(i=-1) break; return 0;六 运行结果七 实验心得实验很有趣,让我初步体会了程序猿的感受。通过这个程序,基本掌握了类与对象的知识,还接触了控制台字体颜色改变,和输出系统时间。收获颇丰。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1