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

📄 endstation.java

📁 高速公路的模拟系统
💻 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 + -