博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
石家庄地铁售票系统源码及截图(结对作业)
阅读量:6326 次
发布时间:2019-06-22

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

源代码:

前端:

 主界面index.j

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>石家庄地铁</title>
    <style type="text/css">
    .form{
        width: 260px;
        height :350px;
        border:5px solid #808080;/*solid细线*/
                          padding: 10px 20px 30px 40px;
                          margin: 0px auto;
                          background:url("lantian.jpg") ;
                          background-size: 100% 100%;
                          float: left;
    }
    .logo{
            width:100%;
        height :100px;
         background:url("SJZtube.jpg");
         background-size: 100% 100%;
float: left;
    }
    </style>
</head>
<body>
<div class="logo"></div>
<div class="form">
<form action ="Tubeservlet?method=linecheck" method="post" οnsubmit="return check()" >
<br>请选择线路:
    <select name="originline" id="a">
        <option value=0>起点</option>
        <option value=1>1</option>
        <option value=2>2</option>
        <option value=3>3</option>
        <option value=4>4</option>
        <option value=5>5</option>
        <option value=6>6</option>
    </select>
    <select name="endline" id="b">
        <option value=0>终点</option>
        <option value=1>1</option>
        <option value=2>2</option>
        <option value=3>3</option>
        <option value=4>4</option>
        <option value=5>5</option>
        <option value=6>6</option>
    </select><br>
       起点:<input name="origin" id="origin" type="text" value="西王" size="20" maxlength="6"/><br>
       终点:<input name="end" id="end" type="text" value="军医医院" size="20" maxlength="6"/><br>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="确认">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset" value="重填"/></p>
</form>
</div>
<script type="text/javascript">
        function check() {
            var a = document.getElementById("a");
            var b= document.getElementById("b");
            //非空
            if(a.value == '0') {
                alert('请选择起点线路');
                a.focus();
                return false;
            }
            if(b.value == '0') {
                alert('请选择终点线路');
                b.focus();
                return false;
            }
        }
    </script>
<div  >
<img style="width: 600px;height :400px;float: left;"  src="tubemap.jpg"  id="map"/>
</div>
<script type="text/javascript">
var myimage = document.getElementById("map");  
if (myimage.addEventListener) {  
    //addEventListener适用于版本较新的IE浏览器 ,如IE9以及火狐浏览器,
    myimage.addEventListener("mousewheel", MouseWheelHandler, false);
    // Firefox浏览器使用的滚轮事件是 DOMMouseScroll
    myimage.addEventListener("DOMMouseScroll", MouseWheelHandler, false);  
}  
//attachEvent适用于旧的 IE浏览器,IE 6/7/8  
else myimage.attachEvent("onmousewheel", MouseWheelHandler); 
function MouseWheelHandler(e) {  
    var e = window.event;
    var delta = Math.max(-1, Math.min(1, (e.wheelDelta)));
    myimage.style.width = Math.max(600, myimage.width + (30 * delta)) + "px";  
    myimage.style.height = Math.max(400, myimage.height + (30 * delta)) + "px";
    return false;  
}
</script>
</body>
</html>
index.jsp

 

需要换乘transfer.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style>
    .a{
        margin-top: 20px;
    }
    .b{
        font-size: 20px;
        width: 160px;
        color: white;
        background-color: greenyellow;
    }
    .tb, td {
        border: 1px solid black;
        font-size: 22px;
    }
</style>
</head>
<body>
   
    <div align="center">
    <h1 style="color: red;">需换乘</h1>
    <a href="index.jsp">返回主页</a>
        <table class="tb">
            <tr>           
                <td>名称</td>
            </tr>
            <c:forEach items="${tubestations1}" var="item1">
                <tr>
                    <td>${item1.name}</td>           
                </tr>
            </c:forEach>
                <tr>
                    <td style="color: red;">换乘</td>           
                </tr>
                <c:forEach items="${tubestations2}" var="item2">
                <tr>
                    <td>${item2.name}</td>           
                </tr>
            </c:forEach>
        </table>
    </div>
</body>
</html>
transfer.jsp

 

不需要换乘notransfer.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style>
    .a{
        margin-top: 20px;
    }
    .b{
        font-size: 20px;
        width: 160px;
        color: white;
        background-color: greenyellow;
    }
    .tb, td {
        border: 1px solid black;
        font-size: 22px;
    }
</style>
</head>
<body>
    <div align="center">
        <h1 style="color: red;">无需换乘</h1>
        <a href="index.jsp">返回主页</a>
        <table class="tb">
            <tr>           
                <td>名称</td>
            </tr>
            <c:forEach items="${tubestations}" var="item">
                <tr>
                    <td>${item.name}</td>           
                </tr>
            </c:forEach>
        </table>
    </div>
</body>
</html>
notransfer.jsp

后台:

import java.io.IOException;
import java.util.List;
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 entity.Tubestation;
import service.Tubeservice;
/**
 * Servlet implementation class Tubeservlet
 */
@WebServlet("/Tubeservlet")
public class Tubeservlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    Tubeservice service=new Tubeservice();
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        String method = req.getParameter("method");
        if(method.equals("linecheck")){
            linecheck(req,resp);
        }else if(method.equals("showNotransferASC")){
            showNotransferASC(req,resp);
        }else if(method.equals("showNotransferDESC")){
            showNotransferDESC(req,resp);
        }else if(method.equals("compareId")){
            compareId(req,resp);
        }else if(method.equals("showTransfer")){
            showTransfer(req,resp);
        }
    }
    private void linecheck(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{
        /**
         * 检查是否需要换乘
         */
        req.setCharacterEncoding("utf-8");
        String originline = req.getParameter("originline");//从jsp上得到名为originline的value值,这里是起点线路
        String endline = req.getParameter("endline");//从jsp上得到名为endline的value值
        int originlineint=Integer.parseInt(originline);//字符串转化为整数
        int endlineint=Integer.parseInt(endline);
        if(originlineint==endlineint) {
            //无需换乘
             req.getRequestDispatcher("Tubeservlet?method=compareId").forward(req,resp);
        }else{
            //需要换乘
             req.getRequestDispatcher("Tubeservlet?method=showTransfer").forward(req,resp);
        }
    }
    private void compareId(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
        //比较站点id
        String end = req.getParameter("end");
        String origin = req.getParameter("origin");
        String originline = req.getParameter("originline");
        String endline = req.getParameter("endline");
        req.setCharacterEncoding("utf-8");
        int k=service.compareId(origin,end,originline,endline);
        if(k==1) {
            req.getRequestDispatcher("Tubeservlet?method=showNotransferASC").forward(req,resp);
        }else if(k==2){
            req.getRequestDispatcher("Tubeservlet?method=showNotransferDESC").forward(req,resp);
        }else if(k==0){
            req.setAttribute("message", "失败");
            req.getRequestDispatcher("index.jsp").forward(req,resp);   
            }
    }
    private void showNotransferASC(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
        // 升序列出数据
        String originline = req.getParameter("originline");
        String endline = req.getParameter("endline");
        String end = req.getParameter("end");
        String origin = req.getParameter("origin");
        req.setCharacterEncoding("utf-8");
        List<Tubestation> tubestations = service.showNotransferASC(origin,end,originline,endline);
        req.setAttribute("tubestations", tubestations);
        req.getRequestDispatcher("notransfer.jsp").forward(req,resp);       
    }
    private void showNotransferDESC(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
        // 降序列出数据
        String end = req.getParameter("end");
        String origin = req.getParameter("origin");
        String originline = req.getParameter("originline");
        String endline = req.getParameter("endline");
        req.setCharacterEncoding("utf-8");
        List<Tubestation> tubestations = service.showNotransferDESC(origin,end,originline,endline);
        req.setAttribute("tubestations", tubestations);
        req.getRequestDispatcher("notransfer.jsp").forward(req,resp);   
    }
    private void showTransfer(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
        /*
         * 列出换乘信息
         * 寻找换乘点
         */
        String end = req.getParameter("end");
        String origin = req.getParameter("origin");
        String originline = req.getParameter("originline");
        String endline = req.getParameter("endline");
        req.setCharacterEncoding("utf-8");
        String transfername=service.searchTransfer(originline,endline);
        int k=service.compareId(origin, transfername, originline, originline);
        if(k==1) {//列出第一段,起点-换乘站
            List<Tubestation> tubestations1 = service.showNotransferASC(origin,transfername,originline,originline);
            req.setAttribute("tubestations1", tubestations1);
           
            int a=service.compareId(transfername, end,endline,endline);
            if(a==1) {//列出第二段,换乘站-终点
                List<Tubestation> tubestations2 = service.showNotransferASC(transfername, end,endline,endline);
                req.setAttribute("tubestations2", tubestations2);
                req.getRequestDispatcher("transfer.jsp").forward(req,resp);//最后跳转到界面,结束程序
            }else if(a==2){
                List<Tubestation> tubestations2 = service.showNotransferDESC(transfername, end,endline,endline);
                req.setAttribute("tubestations2", tubestations2);
                req.getRequestDispatcher("transfer.jsp").forward(req,resp);   
            }
        }else if(k==2){
            List<Tubestation> tubestations1 = service.showNotransferDESC(origin,transfername,originline,originline);
            req.setAttribute("tubestations1", tubestations1);
            int a=service.compareId( transfername, end,endline,endline);
            if(a==1) {//列出第二段,换乘站-终点
                List<Tubestation> tubestations2 = service.showNotransferASC(transfername, end,endline,endline);
                req.setAttribute("tubestations2", tubestations2);
                req.getRequestDispatcher("transfer.jsp").forward(req,resp);//最后跳转到界面,结束程序
            }else if(a==2){
                List<Tubestation> tubestations2 = service.showNotransferDESC(transfername, end,endline,endline);
                req.setAttribute("tubestations2", tubestations2);
                req.getRequestDispatcher("transfer.jsp").forward(req,resp);   
            }
        }else if(k==0){
            req.setAttribute("message", "失败");
            req.getRequestDispatcher("index.jsp").forward(req,resp);   
            }
    }
}
Tubeservlet.java

 

Tubeservice.javaimport java.util.List;import dao.Tubedao;import entity.Tubestation;public class Tubeservice {    Tubedao dao=new Tubedao();    public List
showNotransferASC(String origin, String end, String originline, String endline) { return dao.showNotransferASC(origin,end,originline,endline); } public int compareId(String origin, String end, String originline, String endline) { int f=0; f=dao.compareId(origin,end,originline,endline); return f; } public List
showNotransferDESC(String origin, String end, String originline, String endline) { return dao.showNotransferDESC(origin,end,originline,endline); } public String searchTransfer(String originline, String endline) { return dao.searchTransfer(originline,endline); }}

Tubedao.java

import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import DButil.Shujuku;import entity.Tubestation;public class Tubedao {        public List
showNotransferASC(String origin,String end, String originline, String endline) { /* * 升序列出数据 * 起点id小于终点 */ String sql = "select name from "+selectline(originline)+" " + "where id between (select id from "+selectline(originline)+" where name = '" + origin + "') " + "and (select id from "+selectline(originline)+" where name = '" + end + "')" + " order by id ASC"; Connection conn = Shujuku.conn(); Statement state = null; ResultSet rs = null; List
list = new ArrayList<>(); try { state = conn.createStatement(); rs = state.executeQuery(sql); Tubestation bean = null; while (rs.next()) { String name = rs.getString("name"); bean= new Tubestation(name); list.add(bean); } } catch (SQLException e) { e.printStackTrace(); } finally { Shujuku.close(rs, state, conn); } return list; } public List
showNotransferDESC(String origin, String end, String originline, String endline) { /* * 降序列出数据 * 起点id大于终点 */ String sql="select name from "+selectline(originline)+" " + "where id between (select id from "+selectline(originline)+" where name = '" + end + "') " + "and (select id from "+selectline(originline)+" where name = '" + origin + "') " + "order by id DESC"; Connection conn = Shujuku.conn(); Statement state = null; ResultSet rs = null; List
list = new ArrayList<>(); try { state = conn.createStatement(); rs = state.executeQuery(sql); Tubestation bean = null; while (rs.next()) { String name = rs.getString("name"); bean= new Tubestation(name); list.add(bean); } } catch (SQLException e) { e.printStackTrace(); } finally { Shujuku.close(rs, state, conn); } return list; } public int compareId(String origin, String end, String originline, String endline) { /** * 通过站名比较id大小 * 决定降序或升序输出 */ int a=getIdbyname(origin,originline); int b=getIdbyname(end,endline); int d=0; if(a>b) { d=2; }else { d=1; } return d; } public int getIdbyname(String name,String line) { //通过站名得到id String sql = "select id from "+selectline(line)+" where name ='" + name + "'"; Connection conn = Shujuku.conn(); Statement state = null; ResultSet rs = null; int id=0; try { state = conn.createStatement(); rs = state.executeQuery(sql); while (rs.next()) { id = rs.getInt("id"); } } catch (SQLException e) { e.printStackTrace(); } finally { Shujuku.close(rs, state, conn); } return id; } public String selectline(String line) { /* * 从网页上得到线路,确定连接哪张表 * 说明:一条线路一张表 */ int lineint=Integer.parseInt(line); String sqlline=null; if(lineint==1){ sqlline="tubestation1"; }else if(lineint==2) { sqlline="tubestation2"; }else if(lineint==3) { sqlline="tubestation3"; }else if(lineint==4) { sqlline="tubestation4"; }else if(lineint==5) { sqlline="tubestation5"; }else if(lineint==6) { sqlline="tubestation6"; } return sqlline; } public String searchTransfer(String originline, String endline) { /* * 根据line寻找换乘点 */ int oline=Integer.parseInt(originline); int dline=Integer.parseInt(endline); int a=0; int b=0; if(oline>dline) { a=dline; b=oline; }else { a=oline; b=dline; } int c=a*10+b; String sql="select * from "+selectline(originline)+" where line='"+c+"'"; Connection conn = Shujuku.conn(); Statement state = null; ResultSet rs = null; String name=null; try { state = conn.createStatement(); rs = state.executeQuery(sql); while (rs.next()) { name = rs.getString("name"); } } catch (SQLException e) { e.printStackTrace(); } finally { Shujuku.close(rs, state, conn); } return name; }}Tubedao.java

Shujuku.java

import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class Shujuku {     public static Connection conn(){         String url="jdbc:sqlserver://localhost:1433;DatabaseName=SJZtube";//填写你的数据库名         String userName="sa";//填写你的用户名,我的是sa         String userPwd="tzk19991029";//填写你的密码tzk19991029         Connection connection=null;  try{      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");      System.out.println("加载驱动成功!");  }catch(Exception e){           e.printStackTrace();           System.out.println("加载驱动失败!");   } try{    connection=DriverManager.getConnection(url,userName,userPwd); System.out.println("连接数据库成功!"); }catch(Exception e){        e.printStackTrace();        System.out.print("SQL Server连接失败!");  }     return connection;}public static void close (Statement state, Connection conn) {
//关闭 if (state != null) { try { state.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } }}public static void close (ResultSet rs, Statement state, Connection conn) {
//关闭 if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (state != null) { try { state.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } }}}Shujuku.java

Tubestation.java

public class Tubestation {    private String name;    private String line;    private int id;    public void setName(String name)     {        this.name=name;    }    public String getName()     {        return name;    }    public void setLine(String line)    {        this.line=line;    }    public String getLine()    {        return line;    }    public void setId(int id)    {        this.id=id;    }    public int getId()    {        return id;    }    public Tubestation()    {            }    public Tubestation(String name)    {        this.name=name;    }    public Tubestation(int id, String name) {        this.name=name;          this.id=id;    }}Tubestation.java

 

实验截图:

主页面:(地图可缩放)

 

 

 

 

一条线路,无需换乘:

 

 

 

需要换乘:

 

转载于:https://www.cnblogs.com/jmdd/p/11062152.html

你可能感兴趣的文章
《21天学通Java(第7版)》—— 2.8 问与答
查看>>
《Java EE 7精粹》—— 2.6 Web Fragment
查看>>
《HTML、CSS、JavaScript 网页制作从入门到精通》——6.8 练习题
查看>>
全新阿里云大学发布——阿里巴巴全力打造云生态下的创新人才工场
查看>>
《C#初学者指南》一导读
查看>>
《工作流管理——模型、方法和系统》笔记2:Petri网对工作流建模
查看>>
《PHP和MySQL Web开发从新手到高手(第5版)》一2.4 创建数据库
查看>>
Java并发编程:Callable、Future和FutureTask
查看>>
《操作系统真象还原》——0.22 什么是魔数
查看>>
《Python和Pygame游戏开发指南》——2.21 抗锯齿
查看>>
Linux 命令行工具使用小贴士及技巧(三)
查看>>
我们需要什么样的智能助理?
查看>>
vim使用入门教程-vimtutor
查看>>
来自物联网之父的五个想法
查看>>
事务必会必知
查看>>
《全球互联网金融商业模式:格局与发展》——第2章,第4节众筹型券商
查看>>
品牌机器人:一种新的营销手段正在成型
查看>>
《个体软件过程》目录—导读
查看>>
数学课本上的9大变态!
查看>>
《iOS编程指南》——第 1 章为何选择本地化应用
查看>>