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

📄 floor.cpp

📁 某国际贸易中心共有40层
💻 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 + -