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

📄 公交查询系统界面.java

📁 还关于一些路径问题
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                    if(data1[i3] != 0) tjh(" 第 " + String.valueOf(data1[i3]*3-1) + " 车经过" + zd1 + "站"); //i3 只是临时定义                      
                    break;
                 }  
                    if(i==2)break;                    
                }   
                
                 if(zhan.equals(zd2)){ //经过目的站点车次保存在data2中
                    i = i + 1;
                    data2[0] = rs.getInt(3);
                    data2[1] = rs.getInt(4);
                    data2[2] = rs.getInt(5);
                    data2[3] = rs.getInt(6);
                    data2[4] = rs.getInt(7);
                    data2[5] = rs.getInt(8);
                    data2[6] = rs.getInt(9);
                    data2[7] = rs.getInt(10);
                    if(i==2)break;
                }
            } 
            /*if(zd1.equals(zd2)){
                    for(int i3 =0;i3<8;i3++){
                    if(data1[i3] != 0) {tjh(" 第 " + String.valueOf(data1[i3]*3-1) + " 车经过" + zd1 + "站"); //i3 只是临时定义
                    data1[i3] = 0;}
                    else break;
                    }
                    break;
                 }      */
           // rs.close();
            // 比较数组中是否有相同数据,有的话就是有直通车次,调用相应函数zhitong()
            if(!zd1.equals(zd2)){ int a1 = zhitong(data1,data2,1,zd1,zd2);
             if (a1 == 0){    // 没有直通车次调用中转站函数zhongzhuan()
                zhongzhuan(data1,data2);
                jLabel6.setText(" 没有直通车 ");
              }
           }} catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
   
 public int zhitong(int[] data1,int[] data2,int xz,String zdian1,String zdian2){  //也是数组比较算法
         int ii = 0,jj = 0; //局部变量后面有用
         int a = data1[0];
         int b = data2[0];
         int bl = 0;    
        String zdm = null;
         //int aa = Integer.parseInt(a);
        if(xz == 1){ 
        while(a != 0 && b != 0&&ii <= data1.length && jj <= data2.length ){ //优化  
         if(a>b)jj++;
         else if(a<b)ii++;         
         else{
             ii++;
             jj++;               
                String bi =" 从 <" + zdian1 + ">  到  <" + zdian2 + ">  您可乘 " + String.valueOf(a*3 - 1) + " 路车" ;
               //a*3-1是因为数据库特殊,通常要重新读取数据库表che然后找到相应车次号,a只是一个无意义编号
                 tjh(bi);
                 bl = 1;  //用于标识有没有直达车 
             }            
              a = data1[ii];
              b = data2[jj];
              if (a == 0 || b == 0) break; //优化
         }         
         }
        if(xz == 0){
            while(ii <= data1.length && jj <= data2.length){
                 if(a>b)jj++;
                 else if(a<b)ii++;         
                 else {
                      ii++;
                      jj++; 
                 if(a != 0 && b != 0){
                        try {
                           ResultSet rs2 = getResult("select * from zhan");
                            while (rs2.next()){ //搜索站点名
                                int kk = rs2.getInt(1);
                                if(a == kk){
                                    zdm = rs2.getString(2);
                                    tjh(" 从 " + zdian1 + " 到 " + zdian2 + " 没有直达车您可以选择<" + zdm + ">为中转站,路线方案如下" );
                                    zdcx(zdian1,zdm);
                                    zdcx(zdm,zdian2);
                                }
                            }
                            rs2.close();
                        } catch (SQLException ex) {
                            ex.printStackTrace();
                        }
                 }
                 }
                       a = data1[ii];
                       b = data2[jj];
            }
         }
         return bl;
    }
 
public void zhongzhuan(int[] data1,int[] data2){
    int [] data3 = new int[100];
    int [] data4 = new int[100];
    int j = 0,k = 0;
        try {
           ResultSet rs3 = getResult("select * from 代码表");
            for(int i = 0;i < data1.length;i++) { //将经过起始站点车次的对应的所有站点保存下来
                int i1 = data1[i];
                while(i1 != 0 && rs3.next()){
                int i3 = rs3.getInt(1);
                if(i1 == i3){                                      
                    data3[j] = rs3.getInt(3);j++;
                    data3[j] = rs3.getInt(4);j++;
                    data3[j] = rs3.getInt(5);j++;
                    data3[j] = rs3.getInt(6);j++;
                    data3[j] = rs3.getInt(7);j++;
                    data3[j] = rs3.getInt(8);j++;
                    data3[j] = rs3.getInt(9);j++;
                    data3[j] = rs3.getInt(10);j++;
                    data3[j] = rs3.getInt(11);j++;
                    data3[j] = rs3.getInt(12);j++;
                    data3[j] = rs3.getInt(13);j++; 
                    break;
                 }
                }
            } 
            rs3.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        try {
            ResultSet rs4 = getResult("select * from 代码表");
            for(int i = 0;i < data2.length;i++) {//将经过目的站点车次的对应的所有站点保存下来
                int i1 = data2[i];
                while(i1 != 0 && rs4.next()){
                int i3 = rs4.getInt(1);
                if(i1 == i3){
                    data4[k] = rs4.getInt(3);k++; 
                    data4[k] = rs4.getInt(4);k++;
                    data4[k] = rs4.getInt(5);k++;
                    data4[k] = rs4.getInt(6);k++;
                    data4[k] = rs4.getInt(7);k++;
                    data4[k] = rs4.getInt(8);k++;
                    data4[k] = rs4.getInt(9);k++; 
                    data4[k] = rs4.getInt(10);k++;
                    data4[k] = rs4.getInt(11);k++;
                    data4[k] = rs4.getInt(12);k++;
                    data4[k] = rs4.getInt(13);k++;
                    break;
                }
                }
            }
            rs4.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    // 对data3 与 data4进行排序与比较找出相同的编号
    maopao(data3);
    maopao(data4);
    zhitong(data3,data4,0,jComboBox1.getSelectedItem().toString(),jComboBox2.getSelectedItem().toString());
    //输出建议搭乘的中转站,最好给出具体搭车路线,在zhitong()里实现;
   }
public void maopao(int [] paixu){ //冒泡排序算法
    int temp;
    //int i;
    // for (i = 0; i<paixu.length; i++) if (paixu[i] == 0) break;//获取数组的非零元素个数
    for(int m=0;m<paixu.length;m++)
    for(int j=0;j<paixu.length-1;j++){
        //if (paixu[j+1] == 0) break; //如果有0的数据则跳出本次for循环
        if(paixu[j]>paixu[j+1]) {
             temp=paixu[j];
             paixu[j]=paixu[j+1];                                
             paixu[j+1]=temp;
         }
    }      
}

public  void tjh(String zt){    //jtable添加行  
        DefaultTableModel myModel=((DefaultTableModel)jTable3.getModel());
        Vector newRow=new Vector();
        int columnNum=myModel.getColumnCount();
        for(int i=0;i<=columnNum;i++)
        {
            newRow.add(zt);
        }
        myModel.getDataVector().add(newRow);
        myModel.fireTableStructureChanged();
    }
public void scb(){    //jtable 删除行 
    DefaultTableModel myModel=(DefaultTableModel)jTable3.getModel();
        int rowNum=myModel.getRowCount();
        while(rowNum>0)
        myModel.removeRow(rowNum-rowNum);
}

    // 变量声明 - 不进行修改//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JButton jButton5;
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JComboBox jComboBox2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JScrollPane jScrollPane5;
    private javax.swing.JSplitPane jSplitPane1;
    private javax.swing.JSplitPane jSplitPane4;
    private javax.swing.JTabbedPane jTabbedPane2;
    private javax.swing.JTable jTable1;
    private javax.swing.JTable jTable2;
    private javax.swing.JTable jTable3;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextField jTextField1;
    // 变量声明结束//GEN-END:variables
    
}

⌨️ 快捷键说明

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