📄 main.cpp
字号:
#include <iostream>
#include<windows.h>
#include<time.h>
#include<conio.h> //用于getch()函数的调用
using namespace std;
class Time //time类的定义
{
public:
void waittime(); //电梯上升或下降等待时间
void timer(); //演示停顿时间
int m;
};
void Time::waittime()
{
int m=5;
while(m)
{
cout<<m;
Sleep(1000);
m--;
cout<<'\b';
}
}
void Time::timer()
{
Sleep(1000); //停顿1秒
}
class Person //persom类的定义
{
public:
void persons(); //产生一个人随机到达一层或二层
void in(); //人进入电梯
void out(); //人走出电梯
int WhichOnStorey(); //输出所在楼层
int WhichGoStorey(); //输出要去楼层
private:
int OnStorey;//
int GoStorey; //
int PersonNum; // 编号
static int Num; // 已经产生的总人数
Time y;
};
int Person::Num=0;
void Person::persons()
{
srand( (unsigned)time( NULL ) );
OnStorey = rand()%2 + 1; //随机产生到一层或二层的人
if (OnStorey==1) GoStorey = 2;
else GoStorey = 1;
PersonNum = ++Num;
cout << "一个人到来,编号:" << PersonNum << ",他将会在" << WhichOnStorey() << "层守候电梯,然后去" << WhichGoStorey() << "层。" <<endl;
y.timer();
}
inline int Person::WhichOnStorey()
{
return OnStorey;
}
inline int Person::WhichGoStorey()
{
return GoStorey;
}
inline void Person::in()
{
cout<<"此人进入电梯"<<endl;
y.timer();
}
inline void Person::out()
{
cout<<"此人走出电梯"<<endl;
y.timer();
}
class Floor //Floor类的定义
{
public:
Floor(){state=1;LeftTime=0;} //开始时,电梯停在1楼
void Up1to2(); //电梯上升
void Down2to1(); //电梯下降
void light(); //电梯中灯亮
void bell(); //铃响
void Stop(); //电梯停止
void open(); //打开门
void close(); //关闭门
int onstate(); //输出电梯所在楼层
private:
int state;
int LeftTime; // 剩余到达时间
Time x;
};
void Floor::Up1to2()
{
cout<<"电梯正在向2楼出发"<<endl;
state++;
x.waittime();
}
void Floor::Down2to1()
{
cout<<"电梯正在向1楼出发"<<endl;
state--;
x.waittime();
}
void Floor::light()
{
cout<<"电梯里的电灯亮了"<<endl;
x.timer();
}
void Floor::bell()
{
cout<<"发出铃声"<<endl;
x.timer();
}
void Floor::Stop()
{
cout<<"电梯停止,到达目的楼层"<<state<<endl;
x.timer();
}
inline int Floor::onstate()
{
return state;
}
inline void Floor::open()
{
cout<<"电梯门打开"<<endl;
x.timer();
}
inline void Floor::close()
{
cout<<"电梯门关闭"<<endl;
x.timer();
}
class Button //button类的定义
{
public:
Button(){buttons=0;}
void button1(); //按下按钮1
void button2(); //按下按钮2
void button0(); //按钮归零
private:
int buttons;
Time z;
};
inline void Button::button1()
{
cout<<"按下1层的按钮"<<endl;
buttons=1;
z.timer();
}
inline void Button::button2()
{
cout<<"按下2层的按钮"<<endl;
buttons=2;
z.timer();
}
inline void Button::button0()
{
buttons=0;
cout<<"电梯按钮复位"<<endl;
}
class Elevator // elevator类的定义
{
public:
void elevators();
private:
int GoStorey;
int state;
int OnStorey;
int PersonNum; // 编号
static int Num; // 已经产生的总人数
Person m1;
Button m2;
Floor m3;
Time m4;
};
void Elevator::elevators()
{
m1.persons();
if(m1.WhichOnStorey()==1)
m2.button2();
else
m2.button1();
while (m1.WhichGoStorey()==m3.onstate())
{
while (m3.onstate()==1)
{
cout<<"电梯还在一楼,请等待..."<<endl;
m4.timer();
m3.Up1to2();
}
break;
if(m3.onstate()==2)
cout<<"电梯还在二楼,请等待..."<<endl;
m4.timer();
m3.Down2to1();
}
if(m1.WhichOnStorey()==1)
{
m3.open();
m1.in();
m3.Up1to2();
}
else
{
m3.open();
m1.in();
m3.Down2to1();
}
m3.light();
m3.bell();
m3.Stop();
m1.out();
m3.close();
}
void mulu() //界面函数
{
Elevator s1;
void impress();
system("cls");
system("color 2");
cout<<endl;
cout <<"\t 学生姓名: 文茂齐"<<" 指导教师:谭平"<<endl<<endl;
cout<<"\t ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇" <<endl
<<"\t ◇ ◇" <<endl
<<"\t ◇ 电梯系统模拟程序 ◇" <<endl
<<"\t ◇ ◇" <<endl
<<"\t ◇ 1. 程序功能描述 ◇" <<endl
<<"\t ◇ ◇" <<endl
<<"\t ◇ 2. 程序功能演示 ◇" <<endl
<<"\t ◇ ◇" <<endl
<<"\t ◇ 3. 退出电梯系统 ◇" <<endl
<<"\t ◇ ◇" <<endl
<<"\t ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇" <<endl <<endl <<"\t\t";
int n;
cin>>n;
switch (n)
{
case 1:
impress();
break;
case 2:
system("cls");
int a;
s1.elevators();
cout<<"演示结束"<<endl;
cout<<"是否还要进行其他操作?1.是;2.否"<<endl;
cin>>a;
if(a==1)
{void mulu();mulu();}
break;
case 3:
cout << endl << "\t\t谢谢使用!!!" << endl << endl << "\t\t";
exit(0);
break;
default:
break;
}
}
void impress() //功能描述函数
{
system("cls");
cout<<" 功能描述 "<<endl;
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
cout<<"程序自动生成一个人随机来到电梯的一层或二层"<<endl
<<"如果他在二层要去一层而电梯在一层,则电梯自己上升到二层接他,反之亦然"<<endl;
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
cout<<"任意键返回"<<endl;
getch();
void mulu();
mulu();
}
int main() //主函数
{
void mulu();
mulu();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -