• 大小: 10KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: C/C++
  • 标签: c++  2016  

资源简介

基于c++实现的简单电梯作业(大一) 实现对Elevator类的功能扩展。在Elevator类已有功能的基础上派生Advancedelevator类。可以实现当多人在不同楼层等待乘坐上行或下行的同一部电梯时,能够合理的根据乘坐人的需求对电梯经停的楼层进行排序。

资源截图

代码片段和文件信息

#include
#include
#include
using namespace std;
#include 
int allfloorallweight;
class Elevator
{
private:
int Floortk;//电梯总层数最大载重 
bool up;
bool down;
int currentFloor;//当前停留层数
int Up[105]Downp[105]Wp[105];//未筛选的数据 
protected:
int UDfloor[105]PWeight[105];//上下电梯的楼层,上电梯的人员的体重 
bool dp[105];//判断上电梯人员是否操作合法
int dpp[105];//配对上下人员,使排序后不紊乱
int WeightcurrentweightPnumber;//总载重当前可载重
public:
Elevator(int allfloorint allweight);//建立一个电梯
void setFloorNumber();//电梯运行时楼层的输出 
void setUpButton();//上行操作 
void setDownButton();//下行操作  
void getCurrentFloor();//输出当前楼层 
 } ;
Elevator::Elevator(int allfloorint allweight){
Floor=allfloor;
currentFloor=1;
Weight=allweight;
 }
 void Elevator::setUpButton(){
  up=1;down=0;t=1;k=1;
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE)FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
  cout<<“请输入要上电梯的人员所在楼层、目的楼层、体重:“< for(int i=1;i<=Pnumber;i++){
cin>>Up[i]>>Downp[i]>>Wp[i];
if(Up[i]>Downp[i]){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE)FOREGROUND_INTENSITY|FOREGROUND_RED);
cout<<“您不能下行!\n“< SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE)FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
UDfloor[t]=Up[i];PWeight[t]=Wp[i];t++;
}
else if(Up[i] SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE)FOREGROUND_INTENSITY|FOREGROUND_RED);
cout<<“您不能下行!\n“< SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE)FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
}
      else if(Floor       SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE)FOREGROUND_INTENSITY|FOREGROUND_RED);
       cout<<“操作不合法!\n“<       SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE)FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
       UDfloor[t]=Up[i];PWeight[t]=Wp[i];t++;
 }
      else{
  UDfloor[t]=Up[i];UDfloor[t+1]=Downp[i];PWeight[t]=Wp[i];PWeight[t+1]=-Wp[i];dp[t]=1;
  dpp[t]=k;dpp[t+1]=k;k++;t+=2;
 }
}
 }
 void Elevator::setDownButton(){
  up=0;down=1;t=1;k=1;
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE)FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
  cout<<“请输入要上电梯的人员所在楼层、目的楼层、体重:“< for(int i=1;i<=Pnumber;i++){
cin>>Up[i]>>Downp[i]>>Wp[i];
if(Up[i] SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE)FOREGROUND_INTENSITY|FOREGROUND_RED);
cout<<“您不能上行!\n“< SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE)FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
UDfloor[t]=Up[i];PWeight[t]=Wp[i];t++;
}
else if(Up[i]>currentFloor){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE)FOREGROUND_INTENSITY|FOREGROUND_RED);
cout<<“您不能上行!\n“< SetConsoleTextAttribu

评论

共有 条评论