zoukankan      html  css  js  c++  java
  • 石家庄地铁系统开发实例

    合作人 周博

    实现功能:可以进行不同路线之间的换乘,查找最短路程;

    缺点:功能并不完善,代码过于冗余;界面不够美观。

    实现功能相关代码

    public List<User>Num5(String a,String b)
        {
            int NN=0;
            User start=new User();
            User end=new User();
            start=loadUser(a);
            end=loadUser(b);
            conn=ut.getConn();
            ps=null;
            ResultSet rs=null;
            String id;
            sql="select * from station where Id between ? and ? order by Id";
            List<User> users=new ArrayList<User>();
            List<User>    Mid1s=new ArrayList<User>();//做出一个始发站中转站点集
            List<User>    Mid2s=new ArrayList<User>();//做出一个终点站中转站点集
            List<User>    Mid3s=new ArrayList<User>();//1在转战线上的位置
            List<User>    Mid4s=new ArrayList<User>();//2在转战上的位置
            User user=null;
            User Mid1=null;
            User Mid2=null;
            User Mid3=null;
            User Mid4=null;
            
            int Zhuan;//最近的转战是第几条线
            if(start.getLine()==end.getLine())//一条线
            {
                if(start.getId()<=end.getId())
                {
                    try {
                        conn=ut.getConn();
                ps=conn.prepareStatement(sql);
                ps.setInt(1, start.getId());
                ps.setInt(2, end.getId());
                
                rs=ps.executeQuery();
                while(rs.next()) {
                    user=new User();
                    user.setName(rs.getString("Name"));
                    user.setId(rs.getInt("Id"));
                    user.setLine(rs.getInt("Line")) ;
                    user.setNum(rs.getInt("Num"));
                    user.setExchange(rs.getInt("Exchange"));
                    users.add(user);
                }
            }catch(SQLException e) {
                e.printStackTrace();
            }
            }
                else
                {
                    
                    try {
                        sql="select * from station where Id between ? and ? order by Id desc";
                        conn=ut.getConn();
                        ps=conn.prepareStatement(sql);
                        ps.setInt(2, start.getId());
                        ps.setInt(1, end.getId());
                        rs=ps.executeQuery();
                        while(rs.next()) {
                            user=new User();
                            user.setName(rs.getString("Name"));
                            user.setId(rs.getInt("Id"));
                            user.setLine(rs.getInt("Line")) ;
                            user.setNum(rs.getInt("Num"));
                            user.setExchange(rs.getInt("Exchange"));
                            users.add(user);
                        }
                    }catch(SQLException e) {
                        e.printStackTrace();
                    }
                }
                
                
            }
            if(start.getLine()!=end.getLine())//不在一条线
            {
                int mid=0;
                try {
                    
                    sql="select * from station where Line=? and Exchange !=?";//始发站一条线
                    conn=ut.getConn();
                    ps=conn.prepareStatement(sql);
                    ps.setInt(1, start.getLine());
                    ps.setInt(2, 0);
                    rs=ps.executeQuery();
                    while(rs.next())
                    {
                    Mid1=new User();
                    Mid1.setName(rs.getString("Name"));
                    Mid1.setId(rs.getInt("Id"));
                    Mid1.setLine(rs.getInt("Line")) ;
                    Mid1.setNum(rs.getInt("Num"));
                    Mid1.setExchange(rs.getInt("Exchange"));
                    Mid1s.add(Mid1);
                    }
                    for(User mid1:Mid1s)
                    {
                        sql="select * from station where Name=?";//同名 但是Id 不一样
                        conn=ut.getConn();
                        ps=conn.prepareStatement(sql);
                        ps.setString(1, mid1.getName());
                        rs=ps.executeQuery();
                        while(rs.next())
                        {
                        Mid3=new User();
                        Mid3.setName(rs.getString("Name"));
                        Mid3.setId(rs.getInt("Id"));
                        Mid3.setLine(rs.getInt("Line")) ;
                        Mid3.setNum(rs.getInt("Num"));
                        Mid3.setExchange(rs.getInt("Exchange"));
                        if(Mid3.getId()!=mid1.getId())
                        {
                            Mid3s.add(Mid3);
                        }
                        }
                    }
                    sql="select * from station where Line=? and Exchange !=?";  //找到在终点站那条线路上
                    conn=ut.getConn();
                    ps=conn.prepareStatement(sql);
                    ps.setInt(2, start.getLine());
                    ps.setInt(1, end.getLine());
                    rs=ps.executeQuery();
                    while(rs.next())
                    {
                    Mid2=new User();
                    Mid2.setName(rs.getString("Name"));
                    Mid2.setId(rs.getInt("Id"));
                    Mid2.setLine(rs.getInt("Line")) ;
                    Mid2.setNum(rs.getInt("Num"));
                    Mid2.setExchange(rs.getInt("Exchange"));
                    Mid2s.add(Mid2);
                    }
                    for(User mid2:Mid2s)
                    {
                        sql="select * from station where Name=?";//同名 但是Id 不一样
                        conn=ut.getConn();
                        ps=conn.prepareStatement(sql);
                        ps.setString(1, mid2.getName());
                        rs=ps.executeQuery();
                        while(rs.next())
                        {
                        Mid4=new User();
                        Mid4.setName(rs.getString("Name"));
                        Mid4.setId(rs.getInt("Id"));
                        Mid4.setLine(rs.getInt("Line")) ;
                        Mid4.setNum(rs.getInt("Num"));
                        Mid4.setExchange(rs.getInt("Exchange"));
                        if(Mid4.getId()!=mid2.getId())
                        {
                            Mid4s.add(Mid4);
                        }
                        }
                    }
                    
                    
                    
                    int min=100;//选出最近转战口
                    int Min1=Mid1.getId();//最近转战口ID 与始发站相同
                    int Min2=Mid2.getId();//与终点站相同
                    int Min3=Mid3.getId();
                    int Min4=Mid4.getId();
                    for(User mid1:Mid1s)
                    {
                        for(User mid3:Mid3s)
                        {
                        for(User mid2:Mid2s)
                        {
                            for(User mid4:Mid4s)
                            {
                            if((mid1.getExchange()==mid2.getExchange())&&(mid3.getLine()==mid4.getLine())&&(mid1.getExchange()==mid3.getLine()))
                            {
                                
                                int n=Math.abs(mid1.getId()-start.getId())+Math.abs(mid2.getId()-end.getId())+Math.abs(mid3.getId()-mid4.getId());
                                if(min>n)
                                {
                                    min=n;
                                    Min1=mid1.getId();
                                    Min2=mid2.getId();
                                    Min3=mid3.getId();
                                    Min4=mid4.getId();
                                }
                            }
                            }
                            
                        }
                        }
                    }
                    System.out.println(Min1);
                    User mid1=Select_Id(Min1);
                    User mid2=Select_Id(Min2);
                    User mid3=Select_Id(Min3);
                    User mid4=Select_Id(Min4);
                    System.out.println(mid2.getName()+"asdfasdfasdgasdgasdf"+mid1.getName());////////////
                    if(mid1.getId()>start.getId())//始发站->中转站
                    {    
                        sql="select * from station where Id between ? and ? order by Id";
                        conn=ut.getConn();
                        ps=conn.prepareStatement(sql);
                        ps.setInt(1, start.getId());
                        ps.setInt(2, mid1.getId());
                        rs=ps.executeQuery();
                        while(rs.next()) {
                        NN=NN+1;
                        user=new User();
                        user.setName(rs.getString("Name"));
                        user.setId(rs.getInt("Id"));
                        user.setLine(rs.getInt("Line")) ;
                        user.setNum(rs.getInt("Num"));
                        user.setExchange(rs.getInt("Exchange"));
                        users.add(user);       
                    }
                        if(mid3.getId()>mid4.getId())//3->4
                        {
                            sql="select * from station where Id between ? and ? order by Id desc";
                            conn=ut.getConn();
                            ps=conn.prepareStatement(sql);
                            ps.setInt(1,mid4.getId());
                            ps.setInt(2, mid3.getId()-1);/////////////////////
                            rs=ps.executeQuery();
                            while(rs.next()) {
                                NN=NN+1;
                            user=new User();
                            user.setName(rs.getString("Name"));
                            user.setId(rs.getInt("Id"));
                            user.setLine(rs.getInt("Line")) ;
                            user.setNum(rs.getInt("Num"));
                            user.setExchange(rs.getInt("Exchange"));
                            users.add(user);       
                        }
                        }
                        if(mid3.getId()<mid4.getId())//3->4
                        {
                            sql="select * from station where Id between ? and ? order by Id ";
                            conn=ut.getConn();
                            ps=conn.prepareStatement(sql);
                            ps.setInt(1,mid3.getId()+1);
                            ps.setInt(2, mid4.getId());
                            rs=ps.executeQuery();
                            while(rs.next()) {
                                NN=NN+1;
                            user=new User();
                            user.setName(rs.getString("Name"));
                            user.setId(rs.getInt("Id"));
                            user.setLine(rs.getInt("Line")) ;
                            user.setNum(rs.getInt("Num"));
                            user.setExchange(rs.getInt("Exchange"));
                            users.add(user);       
                        }
                        }
                         if(mid2.getId()>end.getId())//始发站->中转站    终点站->中转站
                            {
                             System.out.println("");
                             sql="select * from station where Id between ? and ? order by Id desc";
                                conn=ut.getConn();
                                ps=conn.prepareStatement(sql);
                                ps.setInt(1, end.getId());
                                ps.setInt(2, mid2.getId()-1);
                                rs=ps.executeQuery();
                                while(rs.next()) {
                                    NN=NN+1;
                                user=new User();
                                user.setName(rs.getString("Name"));
                                user.setId(rs.getInt("Id"));
                                user.setLine(rs.getInt("Line")) ;
                                user.setNum(rs.getInt("Num"));
                                user.setExchange(rs.getInt("Exchange"));
                                users.add(user);       
                            }
                            }
                         else//始发站->中转站->终点站
                         {
                             sql="select * from station where Id between ? and ? order by Id ";
                                conn=ut.getConn();
                                ps=conn.prepareStatement(sql);
                                ps.setInt(2, end.getId());
                                ps.setInt(1, mid2.getId()+1);
                                rs=ps.executeQuery();
                                while(rs.next()) {
                                    NN=NN+1;
                                user=new User();
                                user.setName(rs.getString("Name"));
                                user.setId(rs.getInt("Id"));
                                user.setLine(rs.getInt("Line")) ;
                                user.setNum(rs.getInt("Num"));
                                user.setExchange(rs.getInt("Exchange"));
                                users.add(user);       
                            }
                         }
                         
                    }
                    else//中转站<-始发站
                    {    
                        
                        sql="select * from station where Id between ? and ? order by Id desc";
                        conn=ut.getConn();
                        ps=conn.prepareStatement(sql);
                        ps.setInt(2, start.getId());
                        ps.setInt(1, mid1.getId());
                        rs=ps.executeQuery();
                        while(rs.next()) {
                            NN=NN+1;
                        user=new User();
                        user.setName(rs.getString("Name"));
                        user.setId(rs.getInt("Id"));
                        user.setLine(rs.getInt("Line")) ;
                        user.setNum(rs.getInt("Num"));
                        user.setExchange(rs.getInt("Exchange"));
                        users.add(user);       
                    }
                        if(mid3.getId()>mid4.getId())//3->4
                        {
                            sql="select * from station where Id between ? and ? order by Id desc";
                            conn=ut.getConn();
                            ps=conn.prepareStatement(sql);
                            ps.setInt(1,mid4.getId());
                            ps.setInt(2, mid3.getId()-1);
                            rs=ps.executeQuery();
                            while(rs.next()) {
                                NN=NN+1;
                            user=new User();
                            user.setName(rs.getString("Name"));
                            user.setId(rs.getInt("Id"));
                            user.setLine(rs.getInt("Line")) ;
                            user.setNum(rs.getInt("Num"));
                            user.setExchange(rs.getInt("Exchange"));
                            users.add(user);       
                        }
                        }
                        if(mid3.getId()<mid4.getId())//3->4
                        {
                            sql="select * from station where Id between ? and ? order by Id ";
                            conn=ut.getConn();
                            ps=conn.prepareStatement(sql);
                            ps.setInt(1,mid3.getId()+1);
                            ps.setInt(2, mid4.getId());
                            rs=ps.executeQuery();
                            while(rs.next()) {
                                NN=NN+1;
                            user=new User();
                            user.setName(rs.getString("Name"));
                            user.setId(rs.getInt("Id"));
                            user.setLine(rs.getInt("Line")) ;
                            user.setNum(rs.getInt("Num"));
                            user.setExchange(rs.getInt("Exchange"));
                            users.add(user);       
                        }
                        }
                        
                         if(mid2.getId()>end.getId())//中转站<-始发站    终点站->中转站    
                            {
                             sql="select * from station where Id between ? and ? order by Id desc";
                                conn=ut.getConn();
                                ps=conn.prepareStatement(sql);
                                ps.setInt(1, end.getId());
                                ps.setInt(2, mid2.getId()-1);
                                rs=ps.executeQuery();
                                while(rs.next()) {
                                    NN=NN+1;
                                user=new User();
                                user.setName(rs.getString("Name"));
                                user.setId(rs.getInt("Id"));
                                user.setLine(rs.getInt("Line")) ;
                                user.setNum(rs.getInt("Num"));
                                user.setExchange(rs.getInt("Exchange"));
                                users.add(user);       
                            }
                            }
                         else//中转站<-始发站    
                         {
                             sql="select * from station where Id between ? and ? order by Id ";
                                conn=ut.getConn();
                                ps=conn.prepareStatement(sql);
                                ps.setInt(2, end.getId());
                                ps.setInt(1, mid2.getId()+1);
                                rs=ps.executeQuery();
                                while(rs.next()) {
                                    NN=NN+1;
                                user=new User();
                                user.setName(rs.getString("Name"));
                                user.setId(rs.getInt("Id"));
                                user.setLine(rs.getInt("Line")) ;
                                user.setNum(rs.getInt("Num"));
                                user.setExchange(rs.getInt("Exchange"));
                                users.add(user);       
                            }
                         }
                         
                    }
                    
           
                    
                    
                    
                    
                    
                    
                }catch(SQLException e) {
                    e.printStackTrace();
                }
                
                
                
                
                
                
            }
            System.out.println("aadfasdfsdaf"+NN+"adsfads"+Num1(a,b));
            if(NN>Num1(a,b))
            {
                return Num3(a,b);
            }
            else
                {
                return users;
                }
        }

     

  • 相关阅读:
    Myeclipse学习总结(5)——Myeclipse常用快捷键再学习
    Myeclipse学习总结(5)——Myeclipse常用快捷键再学习
    Java基础学习总结(37)——Java23中设计模式(Design Patterns)详解
    Java基础学习总结(37)——Java23中设计模式(Design Patterns)详解
    Java基础学习总结(37)——Java23中设计模式(Design Patterns)详解
    Git学习总结(4)——我的Git忽略文件
    Git学习总结(4)——我的Git忽略文件
    Git学习总结(4)——我的Git忽略文件
    《跟唐老师学习云网络》 -第5篇 Ping喂报文
    深入比特币原理(五)——高级交易与脚本
  • 原文地址:https://www.cnblogs.com/adret/p/10651849.html
Copyright © 2011-2022 走看看