资源简介
这个是一个电梯的模拟运行程序可视化显示电梯的运行状态
代码片段和文件信息
#include “dian.h“
#include“time.h“
#include“cstring“
#include“ctime“
Lift dian::lift[16];
passenger dian::person;
extern int time1;
dian::dian()
{
for(int i=1;i<15;i++)
{
lift[i].addper=0;
lift[i].delper=0;
}
// cout<<“输入你模拟的时间段,1 高峰期 2 低峰期“;
// cin>>time1;
Umaxfloor=14;//这栋楼的电梯最大为14层
dmaxfloor=1;//这栋楼的电梯是从1层开始的
Nowfloor=0;//出事化时电梯在一层
total=0;//电梯中的总人数初始0
zhuangtai=0;//记录电梯的状态
}
/////////////////////////////////////////////////////////////////////////////
// dian message handlers
void dian::add(QueuePtr w)
{
//将乘客接入向上升电梯
int i=w->endfloor;//将乘客要上到的楼层赋值给i
List *q;
q=(List*)malloc(sizeof(List));
q->endfloor=w->endfloor;
q->nowfloor=w->nowfloor;
strcpy(q->namew->name);
q->muptime=w->muptime;
q->suptime=w->suptime;
lift[i].list1.add(q);//将乘客加到他要下的那一层的上电梯的链表里
total++;
string s1s;
//CString s1s;
// s=“ “;
//m_puanduan.SetWindowText(s);
lift[w->nowfloor].addper++;
//s1.Format(“%d“total);
cout<<“电梯中的总的人数“< // m_total.SetWindowText(s1);
person.del(w->nowfloor);//将上电梯的乘客删除
// UpdateData();
Sleep(2000);
}
void dian::del(int floor)
{
ctime time=CTime::GetCurrentTime();//
Sleep(100);
List1 q;
int i=0;
int mtimestimetotaltime;
while(lift[floor].list1.length()!=0)
{ i++;
lift[floor].delper++;
total--;
CString s2s1;
s2.Format(“%d“total);
m_total.SetWindowText(s2);
q=lift[floor].list1.get();
stime=time.GetSecond();
mtime=time.GetMinute();
if(mtime>q->muptime)
{
totaltime=60-q->suptime+stime;
}
else
totaltime=stime-q->suptime;
s1.Format(“在%d上电梯在%d下电梯用时%d秒“q->nowfloorq->endfloortotaltime);//电梯中的总人数
cout<<“所用的时间“< // m_time.SetWindowText(s1);
lift[floor].list1.del();
}
CString s0s;
s0.Format(“%d层有“floor);
s.Format(“%d人下电梯“i);
s0=s0+s;
m_xia.SetWindowText(s0);
RedrawWindow();
Sleep(2000);
}
int dian::downyi(int floor)
{
CTime time=CTime::GetCurrentTime();//
int mtimestimetotaltime;
int Floor;
CString s;
floor--;
s.Format(“%d“floor);
m_lou.SetWindowText(s);//显示现在的楼层
downmove(floor);//当电梯有人呼叫的时候让电梯一层一层的运行到达呼叫的乘客的楼层
if(lift[floor].list1.length()!=0)
{
del(floor);
}
if(lift[floor].downwaiter.length()==0&&lift[floor].upwaiter.length()==0)
{//没有人上车
if(total==0)
{
//电梯中没有人
if((Floor=panduan())!=0)
{
CString s3;
s3.Format(“有%d“Floor);
s3=s3+“层呼叫电梯“;
m_puanduan.SetWindowText(s3);
RedrawWindow();
if(Floor downGetper(floorFloor);
else
upGetper(floorFloor);
if(lift[Floor].upwaiter.length()!=0)
{ QueuePtr q;
int i=0;
//呼叫的乘客是向上走的
while(lift[Floor].upwaiter.length()!=0)
{
i++;
//while()循环将乘客装入电梯
if(total==12)
{//电梯装满了
return upyi(Floor);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-01-11 23:10 dian\
目录 0 2015-01-11 22:40 dian\Debug\
文件 5344272 2015-01-11 22:40 dian\Debug\dian.pch
文件 4426 2015-01-11 22:19 dian\Debug\dui.obj
文件 4286 2015-01-11 22:19 dian\Debug\lian.obj
文件 13605 2015-01-11 22:23 dian\Debug\queue.obj
文件 197632 2015-01-11 22:47 dian\Debug\vc60.idb
文件 110592 2015-01-11 22:47 dian\Debug\vc60.pdb
文件 26369 2015-01-11 22:47 dian\dian.cpp
文件 4199 2015-01-11 22:12 dian\dian.dsp
文件 516 2015-01-11 22:12 dian\dian.dsw
文件 1443 2015-01-11 22:40 dian\dian.h
文件 50176 2015-01-11 23:12 dian\dian.ncb
文件 50688 2015-01-11 23:10 dian\dian.opt
文件 11486 2015-01-11 22:47 dian\dian.plg
文件 0 2015-01-11 22:17 dian\dui.asp
文件 1260 2015-01-11 22:19 dian\dui.cpp
文件 551 2015-01-11 22:18 dian\dui.h
文件 0 2015-01-11 22:14 dian\lian.asp
文件 890 2015-01-11 22:19 dian\lian.cpp
文件 681 2015-01-11 22:18 dian\lian.h
文件 853 2015-01-11 22:23 dian\queue.cpp
文件 685 2015-01-11 22:23 dian\queue.h
文件 853 2015-01-11 22:19 dian\squeue.cpp
文件 685 2015-01-11 22:18 dian\squeue.h
- 上一篇:linux游戏编程c语言
- 下一篇:MFC扫雷游戏
评论
共有 条评论