一、思路
写一个简单的电梯系统,首先根据老师提供的需求,写一下基础思路:
电梯有最高层和最低层,输入数字选择正确楼层数
输入数字大于当前楼层,则为上行;小于当前楼层,则为下行
每次输入数字的时候,需要对同为上行的数字或者同为下行的数字,进行排序
所输入的目标楼层用集合存放,循环最低层到最高层,如果当前层在集合中存在,显示开门,若还有目标楼层,则关门,继续到下一目标楼层。
当选择一个目标楼层,会生成随机重量记录在目标楼层,上行用原来重量加上目标楼层重量,下行则用原来重量减去目标楼层重量
二、实现
2.1 电梯类
1 packageEle;2
3 importjava.util.ArrayList;4 importjava.util.Collections;5 importjava.util.Iterator;6 importjava.util.List;7 importjava.util.Random;8
9 public classElevator {10 private List upFloorList = new ArrayList(); //上升楼层
11 private List downFloorList = new ArrayList(); //下降楼层
12 private int[] storeyWeight; //目标层重量
13 private int capacity; //电梯最大重量
14 private int topFloor; //电梯最高层
15 private int bottomFloor; //电梯最底层
16 private int nowFloor = 1; //当前层
17
18 public Elevator(int bottomFloor, int topFloor, int capacity) { //有参构造方法
19 this.topFloor =topFloor;20 this.bottomFloor =bottomFloor;21 this.capacity =capacity;22
23 //当前楼层减最低层,就是当前层重量的下标 假如当前楼层为5楼,5楼下标就是 5-1 = 424 //初始化目标楼层重量,数组大小 = 最高层 - 最低层 + 1
25 storeyWeight = new int[(topFloor - bottomFloor + 1)];26 }27
28 //设置楼层
29 public void SetFloor(intfloorNum) {30 //如果 所选楼层 与 所在楼层 相同,则提示
31 if (floorNum ==nowFloor) {32 System.out.println("请选择其它楼层");33 return;34 }35
36 //生成90-500之间的随机重量
37 Random random = newRandom();38 int thisFloorWeight = random.nextInt(500 - 90