⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 building.h

📁 Building.h为方便大家使用
💻 H
字号:
#include "main.h" 
#include "Client.h" 
#include "wqueue.h" 
#include "Elevator.h" 
void InOut(Elevator &E,WQueue w[Maxfloor+1][2]) { 
	//进行乘客的进出电梯活动 
	//注意:电梯时期要正确,否则乘客无法进入。 
	Client *p; 
	if(E.CallCar[E.floor]) //人要从电梯中走出 
		if(StackEmpty(E.S[E.floor])) E.CallCar[E.floor]=0; 
		else {//当前层的乘客栈非空,出电梯 
			Pop(E.S[E.floor],p);E.ClientNumber--; 
			InOutCount=InOutTime; 
			PrintClientInfo(*p,Out); 
			TotalTime+=Time-CInTime(*p); 
			DestoryClient(p); 
		}//else 
	if(E.CallCar[E.floor]==0) //有人要走入电梯 
		if(!QueueEmpty(w[E.floor][E.Stage])) {//若队列不空,继续进电梯 
			DeQueue(w[E.floor][E.Stage],p); 
			Push(E.S[COutfloor(*p)],p); 
			if(E.CallCar[COutfloor(*p)]!=1) { 
				//按下要去楼层的按钮 
				E.CallCar[COutfloor(*p)]=1; 
			} 
			E.ClientNumber++; 
			InOutCount=InOutTime; 
			PrintClientInfo(*p,In); 
		}//if 
		else {//乘客的进出活动已完成 
			if(E.Stage==Down) E.CallDown[E.floor]=0;//将相应的下降按钮取消 
			else E.CallUp[E.floor]=0;//将相应的上升按钮取消 
		} 
} 
 
void NewClient(Elevator &E,WQueue w[5][2]) { 
	//进入新乘客 
	Client *p; 
	CreatClient(p);//新的乘客 
	//将该乘客插入相应队列并按下相应按钮(Up/Down) 
	if(GoAbove(*p)) { 
		EnQueue(w[CInfloor(*p)][Up],p);E.CallUp[CInfloor(*p)]=1; 
	} 
	else { 
		EnQueue(w[CInfloor(*p)][Down],p);E.CallDown[CInfloor(*p)]=1; 
	}//else 
} 
/**********************************************************/ 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -