结对作业

团队成员:张寒笑和陈名扬

先说一下半成品。按照老师的要求就是说实现了线路查询(即输入线路号返回该线路上的所有站点)和站点查询(即输入一个站点返回该站点的线路号),还有一个换乘查询(不会),经过我的一番查找和思考,只能实现一条线路上的起始点查询,考虑到地铁是来回往返的,所以就是说加了个方向(正向反向)。这个一条线路的我是这么弄的,就是返回起点和终点的id号,然后用sql语句between..and..存到数组里,因为它始终是从小到达这样存的,所以又设置了一个方向,正向的话就是正常输出,反向的话就是从后往前输出。

复制代码
public void showhc1(ArrayList<ditie> ditie, int n1,int n2) throws ClassNotFoundException, SQLException {//线路相同时的数组
        String sql ="select * from llines where id between ? and ? order by id";
        Connection connection = Util.getConnection();
        try {
            PreparedStatement ps = connection.prepareStatement(sql);
            ps.setInt(1, n1);
            ps.setInt(2, n2);
            ResultSet rs =  ps.executeQuery();
            while(rs.next()){
                ditie A = new ditie();
                A.setId(rs.getInt(1));
                A.setStation(rs.getString(2));
                A.setLine(rs.getString(3));
                ditie.add(A);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
复制代码

这个是servlet:

复制代码
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //解决中文乱码问题
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");

        Selectline A=new Selectline();
        String s1=req.getParameter("sname1");
        String s2=req.getParameter("sname2");
        int flag=1;//1代表方向为正向
        ArrayList<ditie> ditie = new ArrayList<>();
        ArrayList<jhPoint> B = new ArrayList<>();//该线路上交换点的数组
        try{
            String a1=A.shows(s1);//a线路
            String b1=A.shows(s2);//b线路
            if(!A.isExist(s1)&&!A.isExist(s2)){//若两个站都不是交换点
                int a=A.showid(s1);//a站号
                int b=A.showid(s2);//b站号
                if(a1.equals(b1)){//若两站在同一线路上
                    if(a<=b){//a到b为正向
                        A.showhc1(ditie,a,b);
                    }else{//a到b为反向
                        A.showhc1(ditie,b,a);
                        flag=0;
                    }
                }else{//若两站不在同一线路
                    A.excPoint(B,a1);
                    for(int i=0;i<B.size();i++){

                    }
                }
            }
        }catch(ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
        HttpSession session1=req.getSession();
        session1.setAttribute("flag", flag);//保存方向
        req.setAttribute("ditie",ditie);//保存地铁数组信息
        req.getRequestDispatcher("huancheng.jsp").forward(req, resp);
    }
复制代码

 

posted @   小张睡醒了  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示