zoukankan      html  css  js  c++  java
  • sjz地铁作业

    合作人:杨瑞

    实现的功能:基本实现功能,能在网页实现最少换乘的路线,还未实现最短路线的功能,页面不够美观,甚至可以说太难看;代码冗余,接下来需要优化。

    时间花费:预计花费10个小时,实际花费7个小时;

    实验心得:这次是真正尝到了写代码的乐趣,也体会到了算法的重要性,从头到尾感觉到了这个项目的实施过程。通过将一个大问题逐渐分成若干小问题,然后各个击破,再次体会到了分而治之的重要性。

    实验算法:

    复制代码
    package com.subway.Dao;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import com.subway.Model.Subway;
    import com.subway.Util.DBUtil;
    
    public class SubwayDao {
        
        
            
            public static Subway load(String zhan) {
                    
                  //获得链接对象
                    Connection connection = DBUtil.getConnection();
                    //准备sql语句
                    String sql = "select * from t_subway where station like ?";
                    
                    
                    //创建语句传输对象
                    PreparedStatement preparedStatement = null;
                    ResultSet resultSet = null;
                    Subway subway=null;
                    
                    try {
                        preparedStatement = connection.prepareStatement(sql);
                        preparedStatement.setString(1, zhan);
                        resultSet = preparedStatement.executeQuery();
                        
                        while(resultSet.next()) {
                            subway=new Subway();
                            subway.setId(resultSet.getInt("id"));
                            subway.setLine(resultSet.getString("line"));
                            subway.setStation(zhan);
                            subway.setTransfer(resultSet.getString("transfer"));            
                        }
                        
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }finally {
                        DBUtil.close(resultSet);
                        DBUtil.close(preparedStatement);
                        DBUtil.close(connection);
                    }
                    return subway;
            }
            
            public static String [] load(int id1,int id2) {
                String []list=new String[200];
                int num=0;
                //获得链接对象
                Connection connection = DBUtil.getConnection();
                String sql=null;
                //准备sql语句
                if(id1<id2) {
                   sql = "select * from t_subway  where id > ? &&id<= ?";
                }
                else {
                    sql = "select * from t_subway  where id < ? &&id>= ? order by id desc";
                }
                
                //创建语句传输对象
                PreparedStatement preparedStatement = null;
                ResultSet resultSet = null;
                try {
                    preparedStatement = connection.prepareStatement(sql);
                    preparedStatement.setInt(1, id1);
                    preparedStatement.setInt(2, id2);
                    resultSet = preparedStatement.executeQuery();
                    while(resultSet.next()) {
                        list[num]=resultSet.getString("station");
                        num++;
                    }
    //                for(int i=0;i<num;i++) {
    //                    System.out.println(list[i]);
    //                }
                    
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }finally {
                    DBUtil.close(resultSet);
                    DBUtil.close(preparedStatement);
                    DBUtil.close(connection);
                }
                return list;
                    
            }
            public static String[] load(Subway subway1,Subway subway2) {
                String []list=new String[200];
                Subway subway=null;
                //获得链接对象
                Connection connection = DBUtil.getConnection();
                //准备sql语句
                String sql = "select * from t_subway  where  line like ? && transfer like ? ";
                
                //创建语句传输对象
                PreparedStatement preparedStatement = null;
                ResultSet resultSet = null;
                try {
                    preparedStatement = connection.prepareStatement(sql);
                    preparedStatement.setString(1,subway1.getLine());
                    preparedStatement.setString(2,subway2.getLine());
                    resultSet = preparedStatement.executeQuery();
                  
                    if(resultSet.next()) {
                        subway=new Subway();
                        subway.setId(resultSet.getInt("id"));
                        subway.setLine(resultSet.getString("line"));
                        subway.setStation(resultSet.getString("station"));
                        subway.setTransfer(resultSet.getString("transfer"));
                    }
                    list=load(subway1.getId(),subway.getId());
                    int n=0;
                    for(n=0;n<list.length;n++)
                    {
                        if(list[n]==null)
                             break;
                        
                    }
                    list[n-1]=list[n-1]+"(换乘"+subway.getTransfer()+")";
                    
                    System.out.println("*********************"+n);
                    
                    sql = "select * from t_subway  where  station like ? && line != ? ";
                    try {
                        preparedStatement = connection.prepareStatement(sql);
                        
                        preparedStatement.setString(1,subway.getStation());
                        preparedStatement.setString(2,subway.getLine());
                        resultSet = preparedStatement.executeQuery();                    
                            if(resultSet.next()) {
                                subway=new Subway();
                                subway.setId(resultSet.getInt("id"));
                                subway.setLine(resultSet.getString("line"));
                                subway.setStation(resultSet.getString("station"));
                                subway.setTransfer(resultSet.getString("transfer"));
                            }
                        
                        
                        String[]arr=load(subway.getId(),subway2.getId());
                                            
                            for(int j=0;j<arr.length;j++)
                                if(arr[j]!=null) {
                                    list[n]=arr[j];
                                    n++;
                                }
                        
                        
                    } catch (Exception e) {
                        // TODO: handle exception
                    }
                    
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }finally {
                    DBUtil.close(resultSet);
                    DBUtil.close(preparedStatement);
                    DBUtil.close(connection);
                }
                return list;
                    
            }
            public  String[] load(String qidian,String zhongdian) {
                    String []list=new String[200];
                    Subway subway1=load(qidian);
                    Subway subway2=load(zhongdian);
                   
                    
                    System.out.println("起点站:"+subway1.getId()+" "+subway1.getLine()+" "+subway1.getStation()+" "+subway1.getTransfer());
                    System.out.println("终点站:"+subway2.getId()+" "+subway2.getLine()+" "+subway2.getStation()+" "+subway2.getTransfer());
                    
                    if(subway1.getLine().equals(subway2.getLine())) 
                        list=load(subway1.getId(),subway2.getId()); 
                        
                    else 
                        list=load(subway1,subway2);        
                    return list;
            }
                
        }
    复制代码

    实验截图:

  • 相关阅读:
    Jzoj3899 逻辑的连通性
    第三十九天 how can I 坚持
    第三十八天 how can I 坚持
    第三十七天 how can I 坚持
    第三十六天 how can I 坚持
    第三十五天 how can I 坚持
    第三十四天 how can I 坚持
    第三十三天 how can I 坚持
    第三十二天 how can I 坚持
    逆向iOS SDK -- _UIImageAtPath 的实现(SDK 5.1)
  • 原文地址:https://www.cnblogs.com/1983185414xpl/p/10653007.html
Copyright © 2011-2022 走看看