博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
地铁售票系统设计思想及部分代码
阅读量:6897 次
发布时间:2019-06-27

本文共 4189 字,大约阅读时间需要 13 分钟。

     设计思想:地铁售票系统的关键点在于换乘,所以首先要分为换乘和不换乘两种情况。不换乘比较简单,通过起始站名和终点站名查询他们的num,然后list打包输出到jsp就可以。换乘的话就先要找到两条线路,找到两条线路的交点也就是换乘站,然后分别输出起始站到换乘站,换乘站到终点站两段路线就完成了,这里面还涉及到一个最短路径问题,我的想法是把全部的可能线路都找到,然后比较大小就完成了。目前进度到换乘部分。

     双人项目合作人:郑锦

     部分源代码:

package Dao;import java.sql.Connection;import java.sql.ResultSet;import java.sql.Statement;import connection.DBUtil;public class dao {		/**	 * 通过name得到number(线路号)	 * @param name	 * @return	 */	public static int getNum(String name) {		String sql = "select xianluhao from aaa where name ='" + name + "'";		Connection conn = DBUtil.getConn();		Statement state = null;		ResultSet rs = null;		int number=0;				try {			state = conn.createStatement();			rs = state.executeQuery(sql);			while (rs.next()) {												number = rs.getInt("xianluhao");										}		} catch (Exception e) {			e.printStackTrace();		} finally {			DBUtil.close(rs, state, conn);		}				return number;	}	/**	 * 通过name得到zhanhao(站台号)	 * @param name	 * @return	 */	public static int getZhanhao(String name) {		String sql = "select num from aaa where name ='" + name + "'";		Connection conn = DBUtil.getConn();		Statement state = null;		ResultSet rs = null;		int zhanhao=0;				try {			state = conn.createStatement();			rs = state.executeQuery(sql);			while (rs.next()) {												zhanhao = rs.getInt("num");										}		} catch (Exception e) {			e.printStackTrace();		} finally {			DBUtil.close(rs, state, conn);		}				return zhanhao;	}			public static String getLine1(int zhanhao1,int zhanhao2) {				String line="";		String sql = "select name from aaa where num between '"+zhanhao1+"' and '"+zhanhao2+"'order by num ASC ";//升序						Connection conn = DBUtil.getConn();		Statement state = null;		ResultSet rs = null;			try {			state = conn.createStatement();			rs = state.executeQuery(sql);						if(rs.next())				line=rs.getString("name");			while (rs.next()) {				String name=rs.getString("name");				line=line+"->"+name;							}				     } catch (Exception e) {		e.printStackTrace();	     } finally {		DBUtil.close(rs, state, conn);	    }					return line;	}	public static String getLine2(int zhanhao1,int zhanhao2) {				String line="";		String sql = "select name from aaa where num between '"+zhanhao1+"' and '"+zhanhao2+"'  order by num DESC ";//降序						Connection conn = DBUtil.getConn();		Statement state = null;		ResultSet rs = null;			try {			state = conn.createStatement();			rs = state.executeQuery(sql);						if(rs.next())				line=rs.getString("name");			while (rs.next()) {				String name=rs.getString("name");				line=line+"->"+name;							}				     } catch (Exception e) {		e.printStackTrace();	     } finally {		DBUtil.close(rs, state, conn);	    }					return line;	}}

  

package servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import Dao.dao;@WebServlet("/servlet")public class servlet extends HttpServlet {	private static final long serialVersionUID = 1L;		protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {		req.setCharacterEncoding("utf-8");		String method = req.getParameter("method");		if ("chaxun".equals(method)) {			chaxun(req, resp);			} 	}	private void chaxun(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {		// TODO Auto-generated method stub		req.setCharacterEncoding("utf-8");				 String qi=req.getParameter("qi");		 String zhong=req.getParameter("zhong");		 int zhanhao1=dao.getZhanhao(qi);		 int zhanhao2=dao.getZhanhao(zhong);		 int number1=dao.getNum(qi);		 int number2=dao.getNum(zhong);	     if(number1==number2) {			if(zhanhao1
zhanhao2) { String line=dao.getLine2(zhanhao2, zhanhao1); System.out.print(line); req.setAttribute("num",number1); req.setAttribute("line",line ); req.getRequestDispatcher("list.jsp").forward(req,resp); }}}}

  实验截图

项目总结分析

这个项目因为涉及到一个最短路径的问题,最开始我是想用迪杰斯特拉算法来解决这个问题。但是我尝试了很久没有成功,可能是我的水平还是太有限。所以最后用了最简单的方法来解决这个问题。我了解到有的同学是用迪杰斯特拉算法完成了这个项目,所以还是去请教一下。后期有时间的话还是想改善一下我程序的算法。

 

转载于:https://www.cnblogs.com/xuange1/p/10652328.html

你可能感兴趣的文章
KOTree
查看>>
BlockAlertsAnd-ActionSheets
查看>>
开源 java CMS - FreeCMS2.5 标签formTable自定义表单
查看>>
FreeCMS视频教程 将FreeCMS导入myeclipse
查看>>
Android 8.0 SystemUI(一):图文并茂的介绍 :D
查看>>
1wifi 简介(框架)
查看>>
internet && intranet
查看>>
go get报错 error: RPC failed; result=56, HTTP code =
查看>>
串行(Sequential)、并发(Concurrent)、并行(parallel)与分布式
查看>>
JAVA NIO学习笔记之Channel(基础篇)
查看>>
Xcode升级到6.4之后插件无法使用,重新安装最新也无法使用的解决办法
查看>>
秒懂科技新概念
查看>>
eclipse启动tomcat无法访问
查看>>
Notepad++ 书签
查看>>
TiDB 集群测试
查看>>
十天学会php之第五天
查看>>
Java基础10
查看>>
jquery基础学习二
查看>>
为什么说写“安装指南”类博客的程序员是懒惰的
查看>>
Android模拟器——Genymotion(很快)
查看>>