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

📄 finding_way.java

📁 公交信息查询
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                                   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 + -