📄 floor.cpp
字号:
# include "floor.h"
# include <iostream.h>
# include <conio.h>
# include <iomanip.h>
floors::floors()
{
up=down=false;
np=0;
}
void floors::showFloor(perSet &persons)
{
char uc='-',dc='-';
int nup,ndn;
persons.numWaiting(floorNumber,nup,ndn);
np=nup+ndn;
if (nup>0) SetUpButton();
if (ndn>0) SetDownButton();
if (up) uc='U';
if (down) dc='D';
gotoxy(1,21-floorNumber*2);
textcolor(12);
switch (floorNumber)
{
case 0: cprintf(" 1"); break;
case 1: cprintf(" 2"); break;
case 2: cprintf(" 3"); break;
case 3: cprintf(" 4"); break;
case 4: cprintf(" 5"); break;
case 5: cprintf(" 6"); break;
case 6: cprintf(" 7"); break;
case 7: cprintf(" 8"); break;
case 8: cprintf(" 9"); break;
case 9: cprintf("10"); break;
}
cout<<" ";
if (uc=='U'&&dc=='-')
{
textcolor(RED);
cprintf("U");
textcolor(GREEN);
cprintf("-");
}
else
if (dc=='D'&&uc=='-')
{
textcolor(MAGENTA);
cprintf("D");
textcolor(GREEN);
cprintf("-");
}
else
if (uc=='U'&&dc=='D')
{
textcolor(MAGENTA);
cprintf("D");
textcolor(RED);
cprintf("U");
}
else
if (uc=='-'||dc=='-') {textcolor(GREEN); cprintf("--");}
cout<<setw(3)<<np;
textcolor(WHITE);
}
void floors::SetUpButton(void) { if (floorNumber<MAXFLOORS-1) up=true;}
void floors::SetDownButton(void) { if (floorNumber>0) down=true;}
floorSet::floorSet()
{
for (int i=0;i<MAXFLOORS;i++)
fa[i].SetFloorNumber(i);
}
void floorSet::showFloors(perSet &persons)
{
for (int i=0;i<MAXFLOORS;i++)
fa[i].showFloor(persons);
}
void floorSet::reSetButton(direction dir,int floorNumber)
{
if (dir==UP)
fa[floorNumber].reSetUpButton();
else
if (dir==DOWN)
fa[floorNumber].reSetDownButton();
}
bool floorSet::signalUp(int floorNumber)
{
for (int i=MAXFLOORS-1;i>floorNumber;i--)
if (fa[i].upButton()||fa[i].downButton()) return true;
return false;
}
bool floorSet::signalDown(int floorNumber)
{
for (int i=0;i>floorNumber;i++)
if (fa[i].upButton()||fa[i].downButton()) return true;
return false;
}
bool floorSet::signalSameDir(direction dir,int floorNumber)
{
if (dir==UP)
return fa[floorNumber].upButton();
else
if (dir==DOWN)
return fa[floorNumber].downButton();
else
return false;
}
int floorSet::avgWaiting(void)
{
int total=0;
for (int i=0;i<MAXFLOORS;i++)
total+=fa[i].getNumWaiting();
return total/MAXFLOORS;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -