📄 endstation.java
字号:
import java.lang.Math;
import java.util.Vector;
import java.io.*;
public class Endstation{
//属性
private Station endstationname;//端点站名字
private Vector passengerlist;//等待乘客队列
private Vector wowbuslist;//沃尔沃客车队列
private Vector yvkbuslist;//依维柯客车队列
//方法
public Endstation(Station stationname){//构造函数
endstationname=stationname;
passengerlist=new Vector();
wowbuslist=new Vector();
yvkbuslist=new Vector();
}
public void incpassenger(Passenger person){//增加了一个乘客
passengerlist.addElement((Object)person);
}
public Passenger getfirstpassenger(){//取得第一个乘客
return (Passenger)passengerlist.elementAt(0);
}
public void removepassenger(){//去掉一个乘客
passengerlist.removeElementAt(0);
}
public int getwaitingpassengernum(){//取得等候乘客的数目
return passengerlist.size();
}
public void insertwowbuslist(Wowbus abus){//加入一辆沃尔沃车
wowbuslist.addElement((Object)abus);
}
public void insertyvkbuslist(Yvkbus abus){//加入一辆依维柯车
yvkbuslist.addElement((Object)abus);
}
public void removeawowbus(){ //去掉一辆沃尔沃车
wowbuslist.removeElementAt(0);
}
public Wowbus getwowbusat(int busloc){ //取得车队的沃尔沃车
return (Wowbus)wowbuslist.elementAt(busloc);
}
public Yvkbus getyvkbusat(int busloc){ //取得车队的依维柯车
return (Yvkbus)yvkbuslist.elementAt(busloc);
}
public void removeayvkbus(){ //去掉一辆依维柯车
yvkbuslist.removeElementAt(0);
}
public int getwowbusnum(){//取得沃尔沃车的数目
return wowbuslist.size();
}
public int getyvkbusnum(){//取得依维柯车的数目
return yvkbuslist.size();
}
public Station getendstationname(){//取得端点站的名字
return endstationname;
}
public void initendstation(int wowbusnum,int yvkbusnum){//初始化端点站
String name=endstationname.getname();
for(int i=0;i<wowbusnum;++i){
Wowbus abus=new Wowbus(name+i);
insertwowbuslist(abus);
}
for(int i=0;i<yvkbusnum;++i){
Yvkbus abus=new Yvkbus(name+i);
insertyvkbuslist(abus);
}
}
public void endstationrefresh(){//对端点站进行刷新
//随机产生到达该站的乘客的数量(范围在0和5之间)
//将这些乘客加入到等待的乘客的队列中
System.out.println(endstationname.getname()+"站当前的情况:");
int passengernum=(int)(6*Math.random());
for(int i=0;i<passengernum;++i){
Passenger newpassenger= new Passenger();
if(newpassenger.getaimland().getname()!=getendstationname().getname())
incpassenger(newpassenger);
}
//刷新两个车队的第一辆车,根据不同的情况设置车的状态,并输出他们的状态
if((getwowbusnum()!=0)||(getyvkbusnum()!=0)){
Bus abus;
if(getwowbusnum()!=0){
Wowbus awowbus=getwowbusat(0);
abus=(Bus)awowbus;
}
else{
Yvkbus ayvkbus=getyvkbusat(0);
abus=(Bus)ayvkbus;
}
int i=2;
while(i!=0){
abus.declefttime();
if(abus.getlefttime()==0){
//如果该车要驶出该站,则该车一定是最近的始发客车,乘客上车
int getonnum=0;
while((getonnum<getwaitingpassengernum())&&(getonnum<abus.maxpassengersnum())){
abus.getonpassenger(getfirstpassenger());
removepassenger();
getonnum++;
}
abus.setflag(Bus.run);
System.out.println(abus.getbusmark()+" "+abus.getbusnum()+" "+"将要驶出该站");
}
else System.out.println(abus.getbusmark()+" "+abus.getbusnum()+" "+"处在等待状态");
i--;
if(getyvkbusnum()!=0){
Yvkbus ayvkbus=getyvkbusat(0);
abus=(Bus)ayvkbus;
}
else i--;
}
//输出两个车队的车的型号,编号以及状态
for( i=1;i<getwowbusnum();++i){
abus=(Bus)getwowbusat(i);
System.out.println(abus.getbusmark()+" "+abus.getbusnum()+" "+"处在等待状态");
}
for( i=1;i<getyvkbusnum();++i){
abus=(Bus)getyvkbusat(i);
System.out.println(abus.getbusmark()+" "+abus.getbusnum()+" "+"处在等待状态");
}
}
else System.out.println("该站没有任何车辆!");
System.out.println("等车乘客人数:"+getwaitingpassengernum());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -