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