www.pudn.com > QingHuangDaoBus.rar > Path.java


//path.java
该类用于描述乘车路线方案。
import java.util.*;

public class Path
{
public Vector pass_segment; //每一元素表示整个路线的一个路段Segment。
int segmentTotal; //需要的总路段数
int stationTotal; //整条路线中,所经过的车站的总数

public Path( Path path)
{
pass_segment=new Vector();
this.pass_segment=path.pass_segment;
this.segmentTotal=path.segmentTotal;
this.stationTotal=path.stationTotal;
}


public Path()
{

pass_segment=new Vector();
}

public void addSegment( Segment segment)
{
pass_segment.addElement( segment );
}
public void addSegment( String busNo)
{

Segment segment=new Segment();
segment.setBusNo( busNo);
this.pass_segment.addElement( segment );
}

public void addSegment( Path path )
{

for(int i=0; i<path.getSegmentTotal(); i++)
{
//System.out.println(" add segment with path "+i );
Segment segment;
segment=(Segment)( path.pass_segment.elementAt( i ));
//path.pass_segment
this.pass_segment.addElement( segment );
}
}

public Path getpath()
{
return this;
}
public Vector getPass_segment()
{
return this.pass_segment;
}
public int getSegmentTotal()
{
segmentTotal=pass_segment.size();
return segmentTotal;

}


public int getStationTotal()
{
int segTotal=getSegmentTotal();
int staTotal=0;
Segment segment;
for(int i=0; i<segTotal; i++)
{
segment=(Segment)(pass_segment.elementAt( i ));

staTotal+=segment.getStationTotal();

}
stationTotal=staTotal;

return stationTotal;

}


public void show()
{
//System.out.println(" Path show ");
for(int i=0; i<getSegmentTotal(); i++)
{
//System.out.print( " show of path" +i);

Segment segment=(Segment)(pass_segment.elementAt(i));

segment.showSegment();

System.out.println(" ");
}

}

public String outputPath()
{
String outData="";
String nextSegment;
for(int i=0; i<getSegmentTotal(); i++)
{


Segment segment=(Segment)(pass_segment.elementAt(i));
nextSegment=segment.outputSegment();
if(i==0)
{
outData=outData+nextSegment;
}
else
{
outData=outData+"转"+nextSegment;
}

}
return outData;

}

public void setPassSegment(Station station,int stationNo, int segmentNo )
{
// System.out.println(stationNo);


Segment segment=new Segment();
segment=(Segment)(pass_segment.elementAt( segmentNo ));
segment.setPassStation(station,stationNo);


}


public void setPassSegment(String stationName,int stationNo, int segmentNo)
{
// System.out.println(stationNo);
Segment segment=new Segment();
//System.out.println("2"+segmentNo);
segment=(Segment)(pass_segment.elementAt( segmentNo ));

segment.addPassStation(stationName);

}
}