📄 finding_way.java
字号:
errState=3;
return false;
}
else
{
begBusNo[i]=resultBegBusNo.getString(1);
//System.out.print(begBusNo[i]+" ");
i++;
}
while( resultBegBusNo.next() && i<20 )
{
begBusNo[i]=resultBegBusNo.getString(1);
//System.out.print(begBusNo[i]+" ");
i++;
}
resultBegBusNo.close();
//System.out.println("beging and end");
resultEndBusNo=stmt.executeQuery( queEndBusNo );
if( !resultEndBusNo.next() )
{
//间接查询中,终点站不存在,为错误三
errState=3;
return false;
}
else
{
endBusNo[j]=resultEndBusNo.getString(1);
// System.out.print(endBusNo[j]+" ");
j++;
}
while( resultEndBusNo.next() && i<20 )
{
endBusNo[j]=resultEndBusNo.getString(1);
//System.out.print(endBusNo[j]+" ");
j++;
}
resultEndBusNo.close();
//System.out.println("bus station");
int q=0,l=0,k=0;
//ResultSet resultBegBusNo,resultEndBusNo;
String [] passBegSta=new String [40];
String [] passEndSta=new String [40];
String quePassBegSta, quePassEndSta;
//System.out.println(i+"bus station"+j);
for(int n=0; n<i; n++)
for(int m=0; m<j; m++)
{
//查找起点站可以到达的站点。
quePassBegSta="SELECT station_name FROM bus_table WHERE bus_no='"+begBusNo[n]+" '";
ResultSet resultPassBegSta=stmt.executeQuery( quePassBegSta );
l=0;
if( !resultPassBegSta.next() )
{
errState=5; //该车次无车站
return false;
}
else
{
passBegSta[l]=resultPassBegSta.getString(1);
//System.out.print(passBegSta[l]+" ");
l++;
}
while( resultPassBegSta.next() && l<40 )
{
passBegSta[l]=resultPassBegSta.getString(1);
//System.out.print(passBegSta[l]+" ");
l++;
}
resultPassBegSta.close();
//查找可以到达终点站的站点。
//System.out.println(" 查找可以到达终点站的站点 ");
quePassEndSta="SELECT station_name FROM bus_table WHERE bus_no='"+endBusNo[m]+" '";
ResultSet resultPassEndSta=stmt.executeQuery( quePassEndSta );
k=0;
if( !resultPassEndSta.next() )
{
errState=5; //该车次无车站
return false;
}
else
{
passEndSta[k]=resultPassEndSta.getString(1);
//System.out.print(passEndSta[k]+" ");
k++;
}
while( resultPassEndSta.next() && k<40 )
{
passEndSta[k]=resultPassEndSta.getString(1);
//System.out.print(passEndSta[k]+" ");
k++;
}
resultPassEndSta.close();
//System.out.println( " " );
//System.out.println( " Middle bus station " );
//System.out.println( l+ " " +k);
//System.out.println("a"+passBegSta[8]+"a");
//System.out.println("a"+passEndSta[5]+"a");
//if(passBegSta[8]==passEndSta[5])
//System.out.print( " true11" );
//寻找即可直达起点站又可到达终点站的车站
for(int s=0; s<l ;s++)
for(int t=0; t<k ;t++)
{
//if(s==8 && t==5 )
//System.out.print( " true" );
if(passBegSta[s].equals(passEndSta[t]))
{
midBusSta[q]=passBegSta[s];
//System.out.println(midBusSta[q]);
q++;
}
}
if (q==0)
{
errState=6;
return false;
}
//System.out.println( midBusSta[0] );
//System.out.println( q+ "End Middle station "+midBusSta[q-1] );
// System.out.println(i+"bus station"+j);
}
Finding_way firSegment=new Finding_way();
Finding_way secSegment=new Finding_way();
//System.out.println( begining );
//System.out.println( ending );
//System.out.println( midBusSta[0] );
int x=0;
for(int w=0; w<q; w++)
{
firSegment.createFindWay(begining,midBusSta[w] );
firSegment.direct_find();
//firSegment.show();
secSegment.createFindWay( midBusSta[w],ending );
secSegment.direct_find();
//secSegment.show();
firSegment.getPathTotal();
secSegment.getPathTotal();
for( i=0; i<firSegment.getPathTotal();i++)
for( j=0; j<secSegment.getPathTotal(); j++)
{
if(x>=20) break;
this.bestpath[x].addSegment( firSegment.bestpath[i]);
this.bestpath[x].addSegment( secSegment.bestpath[j]);
x++;
}
}
pathTotal=x;
//System.out.println("Create successfully!");
stmt.close();
con.close();
}
catch(SQLException ex)
{
System.out.println("\n***SQLException Caught ***\n");
while(ex!=null)
{
System.out.println(" SQLState: " +ex.getSQLState() );
System.out.println(" Message: " +ex.getMessage() );
System.out.println("Vendor: "+ex.getErrorCode());
ex=ex.getNextException();
System.out.println(" ");
}
}
catch(java.lang.Exception ex )
{
ex.printStackTrace();
}
return true;
}
//根据站点使用频率,给出模糊方案
public boolean mistiness_find()
{
return true;
}
public boolean find_bestway ()
{
boolean finded;
finded=direct_find();
if(!finded)
{
finded=indirect_find();
if(!finded)
{
return false;
}
}
return true;
}
public void show()
{ //System.out.println(" show");
//System.out.println(pathTotal);
//pathTotal=1;
int m;
for(int n=0;n<pathTotal;n++)
{
m=n+1;
System.out.println("第" +m+ "套乘车方案 ");
bestpath[n].show();
System.out.println(" ");
}
}
public String output()
{
String outData="";
int m;
for(int n=0;n<pathTotal;n++)
{
m=n+1;
//System.out.println(" 方案"+m);
outData="乘车方案 \n";
outData=outData+bestpath[n].outputPath()+" \n";
}
return outData;
}
public int getPathTotal()
{
return pathTotal;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -