public static void main(String[] args) {
专注于为中小企业提供成都网站设计、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业昌乐免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
/*Lianxi1 lx = new Lianxi1();
lx.method();*/
boolean flag = new Lianxi1().byLift();
if(flag == true){
System.out.println("没有地下室 开门");
}else
System.out.println("关门");
}
public boolean byLift(){
Random ran = new Random();
int num = Math.abs(ran.nextInt(1000));//总承受的重量
Random ran1 = new Random();
int floor = Math.abs(ran1.nextInt(5));//楼层数 1-5随机
switch (num){
case 1000:
System.out.println("超重,发出警报 无法关门");
break;
default:
System.out.println("电梯关门");
break;
}
//选择楼层 1-5返回true 关门
switch (floor) {
case 1:
return true;
case 2:
return true;
case 3:
return true;
case 4:
return true;
case 5:
return true;
default:
return false;
}
}
java 肯定可以,首先要解决虚拟机,就是电梯程序当中要有虚拟机运行,然后在虚拟机的基础上编写java程序去执行。
但是一般直接和硬件交互 一般用PLC
if(选择等于当前层打开门){
不做处理,直接返回
}
if(如果没人选就回到某一层){
}
if(如果电梯外选择){
到所选层
}
if(如果电梯内选择){
到所选层
}
if(如果电梯外选择和电梯外同时选择){
先到电梯内选择层
}
同时凡是经过的同方向的层,就销毁掉
到达电梯内选择的层数后就到电梯外选择的层数
....头很晕,不想说了,自己再看看把,这个很简单的,如果有问题你自己去坐电梯体会一下把.
可以把到电梯外和到电梯内的方法封装到时候调用的时候方便些,不说了,睡觉了.
我还没写完很多细节,自己想把
这是我回答前几天和你一样想要的电梯程序 是单箱的 希望能帮助你 package bean; public class dianti { int on=1;//定义一个初始化楼层 初始化是在1层 //先从简单的开始 我们先写两个方法 一个是在电梯外面方法 一个是在电梯内部的方法 public void wai(int num)//外部方法 { if(num==this.on) { System.out.println("停留在本层 直接开门"); } else if(numthis.on) { Thread th = new Thread(); for(int i=this.on;i=num;i++) { if(i==num) { System.out.println("电梯到达~开门请进···"); this.on=num; } else { System.out.println("电梯在"+i+"层 马上就到,请等待····"); try { th.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } } else if(num0numthis.on) { System.out.println("进来了" +num+" "+this.on); Thread th1 = new Thread(); for(int u=this.on;u=num;u--) { if(u==num) { System.out.println("电梯到达~开门请进···"); this.on=num; } else { System.out.println("电梯在"+u+"层 马上就到,请等待····"); try { th1.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } } else { System.out.println("1111111111111"); } } //内部方法 public void nei(int num) { System.out.println("进来了~当前楼层是"+this.on+" 我们的目标是"+num+"层"); if(num==this.on) { System.out.println("您就在本层 开门"); } else if(num0num11numthis.on) { for(int y=this.on;y=num;y--) { Thread th1 = new Thread(); if(y==num) { System.out.println("电梯到达~欢迎下次在做···"); this.on=num; } else { System.out.println("电梯在"+y+"层 马上就到,请等待····"); try { th1.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } } else if(num0num11numthis.on) { for(int y=this.on;y=num;y++) { Thread th1 = new Thread(); if(y==num) { System.out.println("电梯到达~欢迎下次在做····"); this.on=num; } else { System.out.println("电梯在"+y+"层 马上就到,请等待····"); try { th1.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } } } public static void main(String[] args) { dianti d = new dianti(); //模拟开始 初始化是1层 首先我们去10层 d.wai(1);//传进去的1表示我们是在1层按电梯准备上 d.nei(10);//表示电梯到了 我们选择了10层开始上升 现在电梯停留在10层 d.wai(5);//在电梯还在10层停留的时候 5层有人使用 d.nei(1);//目标是一层 //这个其实不完整 还需要加上很多判断的 必然经过每层的时候判断是否有顺路下的 //还有就是电梯在上升的时候经过了2层到了3层 此时2层有人按 又该如何 自己试着去想一想解决方法 } }