设计思想:地铁售票系统的关键点在于换乘,所以首先要分为换乘和不换乘两种情况。不换乘比较简单,通过起始站名和终点站名查询他们的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

{

String line=dao.getLine1(zhanhao1, zhanhao2);

req.setAttribute("line",line );

req.setAttribute("num",number1);

req.getRequestDispatcher("list.jsp").forward(req,resp);

}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);

}

}}}

实验截图

项目总结分析

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

c++设计地铁售票系统_地铁售票系统设计思想及部分代码相关推荐

  1. java 模拟火车站售票系统_模拟售票系统java编程

    模拟售票系统java编程 /* 项目:用多线程设计一个模拟火车站售票大厅的工作情形. 问题描述:火车站有许多售票窗口,有些开放,有些不开放.顾客进入火车站售票厅后,到某个售票窗口排队等候,排到了就办理 ...

  2. java地铁售票机系统_地铁售票机用java怎么样编写程序

    class Check { private double money; private String user="李某某"; private String password=&qu ...

  3. python地铁查询系统_地铁python——函数

    #作用 #使用步骤 #参数作用 #返回值作用 #说明文档 #函数嵌套 #1.作用:将一段具有独立功能的代码块,整合到一个整体命名,在需要的位置上调用这个名称即完成对应需求 #在开发过程中,可以更高效的 ...

  4. 快照设计 电商系统_电商系统设计之购物车

    本章适合初级工程师及中级工程师细看,大佬请随意 前言 问 [不存价格字段不行吗?直接查询商品表获取价格] 答 [如果价格更新,应提示用户,商品的浮动信息.可以选择直接更新购物车,或者单独建立一个表,来 ...

  5. MySQL长途售票系统_基于SSH的长途汽车票务售票系统的设计(Struts2,MySQL)(含录像)...

    基于SSH的长途汽车票务售票系统的设计(Struts2,MySQL)(含录像)(毕业论文说明书14000字,程序代码,MySQL数据库)摘  要 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功 ...

  6. 地铁售票系统设计思想及部分代码

    设计思想:地铁售票系统的关键点在于换乘,所以首先要分为换乘和不换乘两种情况.不换乘比较简单,通过起始站名和终点站名查询他们的num,然后list打包输出到jsp就可以.换乘的话就先要找到两条线路,找到 ...

  7. MySQL长途售票系统_客车网上售票系统(Java源码+sql脚本)

    本实例为Java语言实现的客车网上售票系统, 系统提供了源码, 数据库脚本和相应的文档说明,文档经过修改可以做为论文使用,系统经过修改可以进行商用 点击右侧[下载实例]进行实例下载:下载实例​ 环境配 ...

  8. 铁路售票系统_铁路资讯:复兴号动车、智能京张高铁…中国最高端铁路装备看这里...

    今天上午,两年一度的中国国际现代化铁路技术装备展在京开展,会期3天,将集中展示路网建设.客货运输.经营管理.工程建造.技术装备.旅客服务等铁路行业各领域的先进产品及技术. 展会现场 智能京张:将首次实 ...

  9. 地铁票务管理系统_地铁票务管理工作总结

    [www.gz85.com - 票务管理工作总结] 票务工作主要集中到车站,可以说,地铁车站是最基础的一线生产单位,地铁收益中的票务工作需要由此开始,只有票务工作做好了,才能确保各部门有效运行,形成统 ...

最新文章

  1. C++11中std::unique_lock的使用
  2. linux中解决SSH连接慢问题
  3. git 撤销对工作区中文件的修改
  4. jQuery的eval
  5. 牛客 - 完全图(二分)
  6. Js中数组去重的几种方法
  7. Technical attribute VS Read only attribute
  8. 移动端常见的一些兼容性问题
  9. 实战:Redis 集群模式(下)
  10. Entity Framework 与 面向对象
  11. Ivy Bridge处理器
  12. python从字符串中删除字符_在Python中从字符串中删除字符
  13. FontLab 7 for Mac(字体编辑器)
  14. CTF隐写术:男神一般都很低调很低调的
  15. swifty引用AFNetworking出现clang: error: linker command failed with exit code 1 (use -v to see invocation
  16. 集团税务共享化、数字化系统如何选型(一)
  17. python能制作ppt动画效果吗_那些超酷的视频效果,真的是用PPT动画做的吗?
  18. 时间的单位 频率单位 换算
  19. 仿起点中文网的小说网站——JavaEE大作业
  20. 网络编程及TCP/UDP协议

热门文章

  1. 数据API集合【转载】
  2. 微商怎么从小白开始学发圈
  3. 不同坐标系下3D bbox通过中心点坐标和长宽高求8个角点问题
  4. Intel汇编-FPU状态
  5. 明星们好听的英文名字
  6. Linux中cd命令和pwd命令的用法
  7. DB2重启数据库实例
  8. Jsp中htmlEscape=false是什么意思
  9. 2023东北林业大学计算机考研信息汇总
  10. Jumpstart Client安装日志