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

📄 ptop.java

📁 java写的一交通导航程序点击任意两站点就可以以可视化的方式将转车次数最少的乘车方案找出来 注:连ACCESS数据库 odbc数据源名称为lv
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                               	{
                                  
                                  pt[n]=r8.getString("站点");//将站点放到pt[]中 pt[ix-jx]就是中转站
                                  r8.next();
                                  n--;

                                }
                                System.out.println("转一车沿途经过的第一部分站点有:");
                                for(m=0;m<=zd1;m++)
                                { 
                                  System.out.println(pt[m]) ;
                                }
                           }
                                
                         
                         
                          //再处理第二部分的站点  
                                String query25="SELECT * FROM C0 WHERE 车次='"+c[1]+"' and 站点='"+u[0]+"'";
                               ResultSet r25=stmt.executeQuery(query25);
                                r25.next();
                               //String bx=r5.getString("车次");
                                ix1=r25.getInt("id");//在第二个车次在中转站处的id号
                              String query26="SELECT * FROM C0 WHERE 车次='"+c[1]+"' and 站点='"+end+"'";
                               ResultSet r26=stmt.executeQuery(query26);
                              //System.out.println("SELECT * FROM c0 WHERE 车次='"+c[x]+"' and 站点='"+f1+"'");
                           
                              r26.next();
                               //String bx=r5.getString("车次");
                                jx1=r26.getInt("id");//目的站处的id号
                              
                          if(jx1>ix1)//中转站在目的站的前面
                          {     System.out.println("第二部分站点顺");
                                int s1, m1=jx1-ix1-1;//减1是因为中转站只需要保存一次
                                int n1=zd1+1;int v1=0;
                                
                                zd2=jx1-ix1;//zd2和m1的初值相等都等于转一次车经过的站点数
                               	String query27="SELECT * FROM C0 WHERE 车次='"+c[1]+"'";
                               	ResultSet r27=stmt.executeQuery(query27);
                                do//先找到中转站
                                {
                                	r27.next();
                                	v1=r27.getInt("ID");
                                	 System.out.println(""+v1+"");
                                }while(v1!=ix1);
                               	while(m1>=0)
                               	{
                                  r27.next();
                                 
                                  pt[n1]=r27.getString("站点");//将转一次车的站点放到pt[]中  
                                  n1++;
                                  m1--;
                                }//循环完后m的值为-1,n1的值为 zd了
                                System.out.println("J1表中沿途经过的第二部分站点有:");
                                for(m1=zd1+1;m1<=zd1+zd2;m1++)
                                System.out.println(pt[m1]);
                               
                              
                                zd=zd1+zd2;
                           } 
                           else//中转站在目的站的后面
                           {    System.out.println("第二部分站点逆");
                               	int v1=0,s1,m1=ix1-jx1;
                                zd2=ix1-jx1;int n1;
                               	String query28="SELECT * FROM c0 WHERE 车次='"+c[1]+"'";
                               	ResultSet r28=stmt.executeQuery(query28);
                                do
                                {
                                	r28.next();
                                	v1=r28.getInt("ID");
                                }while(v1!=jx1);
                                
                               	
                               	n1=zd1+zd2;
                               	while(n1>zd1)
                               	{
                                  
                                  pt[n1]=r28.getString("站点");//将直达车次的站点放到pt[]中
                                  r28.next();n1--;

                                }
                                
                                System.out.println("沿途经过的第二部分站点有:");
                                for(m1=zd1+1;m1<=zd1+zd2;m1++)
                                { 
                                  System.out.println(pt[m1]) ;
                                }
                                
                              
                               
                               
                                 zd=zd1+zd2;
                            }  //else//中转站在目的站的后面 
                             
                             
                              System.out.println("沿途经过全部站点有:");
                              for(e=0;e<=zd;e++)
                              { 
                                  System.out.println(pt[e]) ;
                              }    
                              
                    }//J0表里面没有记录   没有直达的车          
                  
            }//try    
                  
                         
               
               catch(SQLException ex)
	           {
	                   ex.printStackTrace();
	           } 
	                  
                 
	         /* try                                 //转两次车的显示
                {   System.out.println("sjk的第二个try");
                    String query1="SELECT * FROM J2 ORDER BY k";
                     stmt1=con.createStatement();
                     ResultSet r1=stmt1.executeQuery(query1);
                          r1.next();
                              v[0]=r1.getString("站点1");
                              w[0]=r1.getString("站点2");
                              z[0]=r1.getString("id");
                              System.out.println(v[0]);
                              System.out.println(w[0]);
                              System.out.println(z[0]);
                           String query4="SELECT * FROM H1 WHERE 站点='"+v[0]+"'";
                           System.out.println(query4);
                           stmt2=con.createStatement();
                           ResultSet r4=stmt2.executeQuery(query4);
                           r4.next();
                           p[2]=new Point();
                           p[2].x=r4.getInt("x");
                           p[2].y=r4.getInt("y");
                         
                           String query5="SELECT * FROM H1 WHERE 站点='"+w[0]+"' ";
                           ResultSet r5=stmt2.executeQuery(query5);
                           r5.next();
                           p[3]=new Point();
                           p[3].x=r5.getInt("x");
                           p[3].y=r5.getInt("y");               
                 }  
              catch(SQLException ex)
	           {
	                   ex.printStackTrace();
	           } */
	      try
	      {
	        System.out.println("sjk的第三个try");
	       if(mmm==0)//将直达的车经过的所有站点的坐标保存在pp[a]中
	        {
	           int bb=0;
	           stmt2=con.createStatement();
	           while(bb<=zd)
	           {
	           	query1[bb]="SELECT * FROM C00 WHERE 站点='"+pt[bb]+"'";
	            System.out.println("SELECT * FROM C00 WHERE 站点='"+pt[bb]+"'");
	            rr[bb]=stmt2.executeQuery(query1[bb]);
	           	System.out.println(rr[bb].next());
	           	pp[bb]=new Point();
	           	pp[bb].x=rr[bb].getInt("x");
                pp[bb].y=rr[bb].getInt("y");
                bb++;
	           }
	           System.out.println(""+pp[zd].x);
	        }
	       
	        
	        else//将转一次的车经过的所有站点的坐标保存在pp[a]中
	        {
	     
	           int bb=0;System.out.println("zd:"+zd);
	           stmt2=con.createStatement();
	           while(bb<=zd)
	           {
	          	
	          	query1[bb]="SELECT * FROM C00 WHERE 站点='"+pt[bb]+"'";
	            System.out.println("SELECT * FROM C00 WHERE 站点='"+pt[bb]+"'");
	            rr[bb]=stmt2.executeQuery(query1[bb]);
	           	System.out.println(rr[bb].next());
	           	pp[bb]=new Point();
	           	pp[bb].x=rr[bb].getInt("x");
                pp[bb].y=rr[bb].getInt("y");
                System.out.println("x坐标"+pp[bb].x); bb++;
                
                /*query1[bb]="SELECT * FROM C00 WHERE 站点='"+pt[bb]+"'";
	            System.out.println("SELECT * FROM C00 WHERE 站点='"+pt[bb]+"'");
	            rr[bb]=stmt2.executeQuery(query1[bb]);
	           	System.out.println(rr[bb].next());
	           	pp[bb]=new Point();
	           	pp[bb].x=rr[bb].getInt("x");
                pp[bb].y=rr[bb].getInt("y");
                System.out.println("x坐标"+pp[bb].x); bb++;
                
                query1[bb]="SELECT * FROM C00 WHERE 站点='"+pt[bb]+"'";
	            System.out.println("SELECT * FROM C00 WHERE 站点='"+pt[bb]+"'");
	            rr[bb]=stmt2.executeQuery(query1[bb]);
	           	System.out.println(rr[bb].next());
	           	pp[bb]=new Point();
	           	pp[bb].x=rr[bb].getInt("x");
                pp[bb].y=rr[bb].getInt("y");
                System.out.println("x坐标"+pp[bb].x);bb++;
                
                query1[bb]="SELECT * FROM C00 WHERE 站点='"+pt[bb]+"'";
	            System.out.println("SELECT * FROM C00 WHERE 站点='"+pt[bb]+"'");
	            rr[bb]=stmt2.executeQuery(query1[bb]);
	           	System.out.println(rr[bb].next());
	           	pp[bb]=new Point();
	           	pp[bb].x=rr[bb].getInt("x");
                pp[bb].y=rr[bb].getInt("y");
                System.out.println("x坐标"+pp[bb].x);bb++;*/
                
	           }
	           
	         }
	       }
	       catch(SQLException ex)
	       {
	           ex.printStackTrace();
	       }
	       	int i;
		   x=pp[0].x; 
	       y=pp[0].y;
	      }
	      //if(ii=0)
	     else//显示车次的路线
	     { 
		      int i=0,k,j=0;
			  String query99="SELECT * FROM C0 WHERE 车次='"+che+"'";
			  System.out.println("您已经开始车次查询了"+query99);
			  System.out.println("che 的值是:"+che);
			  try
			  {
			   
	          Statement stmt99=con.createStatement();
			  ResultSet r99=stmt99.executeQuery(query99);
			  while(r99.next())
			  {
			  	pt[j]=r99.getString("站点");
			  	j++;
			  }	
			  for(k=0;k<j;k++)
			  {
			  	System.out.println("第"+k+"个站点"+pt[k]);
			  }
			  while(i<j)
			  {
			 
			  query1[i]="SELECT * FROM C00 WHERE 站点='"+pt[i]+"'";
			  
			  rr[i]=stmt99.executeQuery(query1[i]);
			  rr[i].next();
			  pp[i]=new Point();
			  pp[i].x=rr[i].getInt("x");
			  pp[i].y=rr[i].getInt("y");i++;
			  }
			  zd=j-1;
		      }
		       catch(SQLException ex)
		       {
		           ex.printStackTrace();
		       }
	     
	       }//else 显示车次的路线*/
	 /*blic static void main(String []arg){
	 	ptop obj=new ptop("华子石东","拱北");
	 	for(int i=0;i<obj.zd;i++){
	 		System.out.println("站点:	"+obj.pt[i]+"     坐标   :"+obj.pp[i]);
	 	}
	 		
	 }*/
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -