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

📄 floor.java

📁 用Java实现的电梯模拟程序。某公司要建造一栋n层的办公楼并用“最先进“的电梯进行装备
💻 JAVA
字号:
//package wuxf;

public class Floor {

  public int floorNumber=-1;
  public boolean upkey;
  public boolean downkey;
  public Person[] personsOnThisFloor;

  public Floor(int floorNumber) {
     this.floorNumber=floorNumber;
     this.upkey=false;
     this.downkey=false;
     personsOnThisFloor=new Person[10];
     for(int i=0;i<10;i++){
         personsOnThisFloor[i]=new Person(-1,-1,-1,0);}
   }

  public void addANewPerson(int to,int number){
    for (int j = 0; j < 10; j++) {
      if (personsOnThisFloor[j].status < 0) {
        personsOnThisFloor[j].from = floorNumber;
        personsOnThisFloor[j].to = to;
        personsOnThisFloor[j].status = 0;
        personsOnThisFloor[j].num = number;
        if(to>this.floorNumber) this.upkey=true;
                else this.downkey=true;
        break;
      }
    }
  }


   public void kickPersons(Elevator el,AllFloors allfloors){
   for(int i=0;i<10;i++){
   if((personsOnThisFloor[i].status==0)&&
       (((el.liftIsEmpty()==true)&&(el.status==1||el.status==0)&&(!allfloors.someoneIsAbove(el.currentFloor)))||
       ((el.liftIsEmpty()==true)&&(el.status==2||el.status==0)&&(!allfloors.someoneIsBelow(el.currentFloor)))||
        ((el.liftIsEmpty()==false)&&((allfloors.allFloors[el.currentFloor-1].personsOnThisFloor[i].direction()==el.status)))))
      personsOnThisFloor[i].status=-1;}
   }




  public boolean isEmpty(){
       for(int j=0;j<10;j++){
         if (personsOnThisFloor[j].status == 0){
                return  false;}
       }
       return true;
         }
  public int numberOfWaiting(){
    int i=0;
    for(int j=0;j<10;j++){
      if (personsOnThisFloor[j].status == 0) {
        i++;
      }
   }
    return i;
  }
  public boolean someoneWantsUp(){
     for(int j=0;j<10;j++){
       if (personsOnThisFloor[j].status == 0){
            if(personsOnThisFloor[j].to>personsOnThisFloor[j].from)
               return  true;
     }
   }
   return false;

  }
 public boolean someoneWantsDown(){
       for(int j=0;j<10;j++){
         if (personsOnThisFloor[j].status == 0){
              if(personsOnThisFloor[j].to<personsOnThisFloor[j].from)
                 return true;}
       }
          return false;
     }
}

⌨️ 快捷键说明

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