车{
next();开往下一站
stop();下客,上客,报站名,算盈利
main(){
while(bus.next())
stop();
}
}乘客{
始发
目的
车费
}
next();开往下一站
stop();下客,上客,报站名,算盈利
main(){
while(bus.next())
stop();
}
}乘客{
始发
目的
车费
}
解决方案 »
- String args[]
- JAVA中如何将图片在不做成控件的情况下旋转一个角度?
- 请教true的问题
- 定时执行程序,请问如何实现,详细请看内容
- List array = new ArrayList();
- JAVA中怎样将2D图象画到Image对象中并保存?
- 在jScrollPane上添加删除jPanel
- 求思路:扩展JTable以实现不规则表头的问题(可用任何已有ide或开源包,b/s体系,tomcat4.1,jb9)
- 有关数据库(Oracle)与JTable显示的问题.SOS~~~~~~~~~~
- 如何获得随机数
- 如何让一个控件接受组合键的事件响应
- 关于java中,ftp的问题,用FtpClient如何获取server端的目录结构啊,多谢。
{
public static int MAXSN=20;
// public static final int MAXCOUNT=60;
private double cost=0.0;
public Vector passengers=null;
public Vector stations=null;
public String name=null;
public Bus(String n,Vector sta)
{
this.name=n;
passengers=new Vector();
stations=sta;
if( sta!=null )this.MAXSN=sta.size();
}
/**
run on the line of bus.and report station name
@roseuid 3C495D0000AB
*/
public void run()
{
for(int i=0;i<stations.size();i++){
Station s = (Station)stations.get(i);
System.out.println("==current station is "+s.report());
System.out.println(" current passengers count 000 is"+passengers.size());
down(i);
System.out.println(" current passengers count 111 is"+passengers.size());
up(i);
System.out.println(" cost="+cost);
}
}
/**
@roseuid 3C495D3C0129
*/
private void down(int sn)
{
if( passengers==null || passengers.size()==0 ) return;
Vector downpassengers = new Vector();
for(Enumeration e=passengers.elements();e.hasMoreElements();){
Passenger p = (Passenger)e.nextElement();
if( p.end==sn ){
int d = ((Station)(stations.get(p.end))).getDistance()
- ((Station)(stations.get(p.start))).getDistance();
if( d<10 ) cost+=1;
else {
int dd = d-10;
cost += 1+Math.round(dd/5.0)*0.5;
}
System.out.println(" passenger down cost = "+cost);
downpassengers.add(p);
}
}
passengers.removeAll(downpassengers);
} private void up(int sn)
{
Station s = (Station)stations.get(sn);
passengers.addAll(s.up());
}
}
//Source file: F:\myJava\bus\sharetop\Passenger.javapackage sharetop;
public class Passenger
{
public int start=-1;
public int end=-1;
public Passenger()
{
}
/**
when the passenger up bus,he decide the target station.
so the up method initalized the start- and end- station sn.
@roseuid 3C49586F023A
*/
public void up(int s)
{
this.start=s;
this.end = new java.util.Random().nextInt(Bus.MAXSN);
//only forward.
while(this.end<=this.start)
this.end = new java.util.Random().nextInt(Bus.MAXSN);
System.out.println(" passenger up from "+this.start +"===>"+this.end);
}
}
//Source file: F:\myJava\bus\sharetop\Station.javapackage sharetop;import java.util.*;public class Station
{
private String name=null;
private int distance=0;
private int sn=0;
private boolean isEnd = false;
public Station(int s,String n,int d)
{
this.sn=s;
this.name=n;
this.distance=d;
}
public void setFinish(){this.isEnd=true;}
/**
@roseuid 3C4956EF0102
*/
public Vector up()
{
int num = new java.util.Random().nextInt(12);
if( this.isEnd ) num=0;
Vector res = new Vector();
for(int i=0;i<num;i++){
Passenger p = new Passenger();
p.up(this.sn);
res.add(p);
}
return res;
}
/**
@roseuid 3C49571C0341
*/
public String report()
{
return this.name;
}
public int getDistance()
{
return this.distance;
}
}//source file ABus.javaimport java.util.*;
import sharetop.*;public class ABus
{
public static void main(String[] args) {
Vector allStations = new Vector();
Station s1 = new Station(0,"qinghe",0);
allStations.add(s1);
Station s2 = new Station(1,"majagou",2);
allStations.add(s2);
Station s3 = new Station(2,"xuezhiyuan",6);
allStations.add(s3); Station s4 = new Station(3,"xuefuyuan",7);
allStations.add(s4); Station s5 = new Station(4,"qinghuadongru",8);
allStations.add(s5); Station s6 = new Station(5,"beihang",9);
allStations.add(s6); Station s7 = new Station(6,"xueyuangru",10);
allStations.add(s7); Station s8 = new Station(7,"mingguangchueng",13);
allStations.add(s8); Station s9 = new Station(8,"xizhimeng",19);
s9.setFinish();
allStations.add(s9);
Bus b = new Bus("902",allStations);
b.run();
}
}
还有个问题,这辆车不管上多少人全部照收,北京的公共汽车:)
可以在Bus类的up方法中对此加以处理。我用了三个类:车站、乘客和汽车来处理这个问题。
似乎面向对象的概念体现的不明显,是不是这个课题有些
简单?体现不出来?还是设计的问题?哦,对了,分我是一定会给的,这对我并不重要~~~~
这么说话就是您老兄的不对了,人家sharetop调试代码容易吗?难道就为了你那点分呀?
分不就是一个形式吗?好像谁很在乎似的!!
属性:全部乘客、收的车费、要停的站
动作:跑、下乘客、上乘客乘客:
属性:从哪上的、要去哪
动作:上车以上好象没什么问题,车站的定义就不太好了。车站:
属性:站名、离始发距离、是否终点
动作:收集乘客送上车因为只有一趟车一条线,所以车站的功能就专一了,其实现实中一个车站不应知道它与始发站的距离,也不知道它是否终点。而车站能产生(汇集)乘客,但不能站乘客上车。是吧?