public class ElevatorModel implenent ElevatorModelListener{
ElevatorShaft elevatorShaft//电梯车箱
Floor firstFloor
Floor secondFloor
public void addPerson(Person person)
//实现ElevatorModelListener接口的所有方法
}
public abstract class Location{
String locationName//可能占据的三个位置firstFloorsecondFloorelevator中的其中一个位置。
public Button getButton()
public Door getDoor()
}
public class Floor extends Location{
public Floor(String firstFloor,String secondFloor)
public Button getButton()//具体实现
public Door getDoor()//具体实现
public ElevatorShaft getElevatorShaft()
}
public class Door implenent ElevatorMoveListener{
boolean open//门是开的关的
public void openDoor()//开门
public viod clossDoor()//关门
}
public class Button implenent ElevatorMoveListener{
boolean pressed
public void pressButton()//按下按钮
public void resetButton()//释放按钮
public void elevatorArrived()//电梯到来
}
public class ElevatorShaft{//电梯乘箱
Elevator elevator//电梯
Button firstFloorButton,secondFloorButton//出发层的按钮和到达层的按钮 Door firstFloorDoor,secondFloorDoor//出发的门和到达的门
Light firstFloorLight,secondFloorLight//灯
//监听器
DoorListener doorListener
ButtonListener buttonListener
LightListener ligthListener
BellListener bellListener
ElevatorMoveListener elevatorMoveListener
Set set
}
public class Light implenent ElevatorMoveListener{
boolean lightOn//代表灯的状态,亮或灭
public void turnOnLight()
public void turnOffLight()
public void elevatorDeparted()//具体实现
public void elevatorArrived()//具体实现
}
public class Bell implenent ElevatorMoveListener{
public void ringBell()
public void elevatorDeparted()//具体实现
public void elevatorArrived()//具体实现
}
public class Elevator extends Location implenets
ButtonListener,DoorListener,BellListener,Runable
{//电梯乘箱
boolean moving
boolean summoned//描述Elevator是在移动还是已经补召唤
Floor currentFloor//当前正在提供服务的Floor
Floor destinationFloor //代表将要到达的Floor
Button elevatorButton
Door elevatorDoor
Bell bell
public void run()// 实现
public void requestElevator()//请求Elevator并产生排队请求。 }
public class Person extends Thread{
Location类对象(或是位于Floor上,或是出处在Elevator中)int ID
boolean moving
public void run()//具体实现
public void enterAndRideElevator()
}
1. 各电梯控制:a. 实现一个方法,返回本电梯到请求楼层上、下的时间(或者简单点的,层数);
b. 任务接受:接受用户楼层上、下请求任务
2. 主控部分:
a. 当用户按下上、下请求时,通过调用两个电梯的上面所说的服务,进行比较决断最优时间电梯;
b. 给最最优电梯发送任务;
3. 主控与各电梯控制之间的通讯可以通过多种方式实现;
楼上两位正解JAVA与C的本质区别是JAVA面向对象编程,C是面向过程编程,这就使得JAVA具有重用的特性,在开发速度上比之C更快,但是在运行速度上却是C更快,因为C属于底层语言,它比JAVA更加亲近机器,所以在许多系统开发上一般是用C语言,比如我们常用的XP系统,LINUX系统,都是C语言开发的.
JAVA现在主要用在WEB开发,手机游戏及一些平台游戏的开发,因为它具有很好的跨平台性,现在在JAVA与LINUX结合的非常好,在手机等各种电子产品上应用非常广泛.不过现在大多人都学习JAVA的WEB编程,因为这个比较简单实用,就业更快.
C语言现在主要用与系统开发,桌面应用软件的开发,更多的是用在游戏领域,当然,只要你愿意,也可以开发WEB程序,但是在开发难度上会增加不少.这些足以证明C语言是比JAVA更强大的语言,但是也比JAVA更加难以掌握,里面的指针是所有程序员都为之头痛的,而继承了C的所有优点的JAVA语言则完全没有这个问题,可以说JAVA是C语言的进化版本之一,为什么是之一呢,因为还有C++,其实JAVA就是继承了C/C++的优点而产生的高级语言,它可以说具有两者的全部优点,并祛除了其中不好的地方,但即使如此也不能否认C/C++仍然具有强大的优势,尤其是在系统程序的开发上,这是JAVA无法比拟的.
所以JAVA能做的C也可以做,而C能做的JAVA也可以做,只是两者的侧重点不一样.