博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
结对开发项目--石家庄地铁web版
阅读量:5137 次
发布时间:2019-06-13

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

一、功能要求

1.数据库设计:将石家庄地铁线路图的各个线路,各个站点,换乘信息等用数据库的形式保存起来,应该保存的信息有 {线路号,线路的各个站名,车站的换乘信息}。
2.站点查询:用户可以输入任一一条线路或输入出发地和目的地信息,可以查询到相关内容。

二、合作对象及开发日志

合作对象:符满迪、何祺祺

开发日志:

日期 开始时间 结束时间 中断时间 净时间 备注
2019.3.30 9:00 16:00 11:30 3.5h 设计数据库,实现地图的建立
2019.4.2 8:00 9:35 1.35h 实现两个站点的查询功能
2019.4.3 16:30 20:40 18:00 3h 悬浮窗设计,以及查询算法的完善
2019.4.4 8:00 9:35 1.35h 完善界面,测试程序

 三、设计思想及程序代码

1.设计思想:本次结对开发任务分工合作,符主要负责web界面的设计以及地图的实现,何主要负责数据库的设计,最终两人一起完成查询算法的实现。

数据库设计主要设立了三个表,分别是站点表(stop)、路线表(line)、站路关系表(line_stop),主要经过站路关系表实现查询算法。

而web地图界面的设计,我们调用了百度地图的api接口,实现了线路之间的连接,美中不足的是,地图上没有完整的石家庄地铁线路,需要自己将另外4条直线连接起来,整个界面就显得十分抽象。

2.程序代码:

地图展示web界面(利用html实现):

复制代码
    
个性化地图
hhh
复制代码

查询以及结果输出界面(jsp实现):

复制代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%><%@ page import="java.sql.*"%><%--导入java中的sql包--%><%@page import="com.fmd.java.DBUtil.DBUtil"%><%    request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8    response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8%><%    String path = request.getContextPath(); //相对Path设置    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()            + path + "/"; //相对Path设置%>按条件查询    <%        String stop = request.getParameter("stop");    %>    

起始站:
终点站:

复制代码
复制代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%><%@ page import="java.sql.*"%><%--导入java中的sql包--%><%@page import="com.fmd.java.Station"%><%@page import="com.fmd.java.Subway"%><%@page import="com.fmd.java.DataBuilder"%><%@page import="com.fmd.java.DBUtil.DBUtil"%><%    request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8    response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8%><%    String path = request.getContextPath(); //相对Path设置    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()            + path + "/"; //相对Path设置%><%--文档声明--%><%--设置基础路径,basepath为变量--%>按条件查询<%--页面标题--%>    <%        String stop1 = request.getParameter("stop1");        String stop2 = request.getParameter("stop2");        Connection conn = null; //定义静态数据库连接         Statement stat = null; //滞空stat。        ResultSet rs = null; //将rs滞空。        ResultSet rs1 = null;        conn = DBUtil.getConnection();        stat = conn.createStatement();        rs = stat.executeQuery("select * from line_stop where stop='" + stop1 + "'");        //rs.last();//对rs的操作应马上操作,操作完后再从数据库得到rst,再对rst操作    %>    

符合条件的信息

<%--标题样式3--%>

不存在此条件的信息!

不存在此条件的信息!

<%--表格宽度450--%>
<% if (rs.next()) { out.print("
"); out.print("
"); //输出name内容 out.print("
"); //输出age内容 out.print("
"); //输出gender内容 out.print("
"); //输出gender内容 out.print("
"); } else { out.print(""); } Station s1 = new Station(rs.getString("stop")); %> <% rs1 = stat.executeQuery("select * from line_stop where stop='" + stop2 + "'"); if (rs1.next()) { out.print("
"); out.print("
"); //输出name内容 out.print("
"); //输出age内容 out.print("
"); //输出gender内容 out.print("
"); //输出gender内容 out.print("
"); } else { out.print(""); } Station s2 = new Station(rs1.getString("stop")); %> <% long t1 = System.currentTimeMillis(); Subway sw = new Subway(); String s =""; sw.calculate(s1, s2); long t2 = System.currentTimeMillis(); out.println("找到目标站点:"+s2.getName()+",共经过"+(s1.getAllPassedStations(s2).size()-1)+"站"); out.println("\n"); for(Station station : s1.getAllPassedStations(s2)){ out.print(station.getName()+"->"); } out.println("耗时:" + (t2 - t1) + "ms"); s="找到目标站点:"+s2.getName()+",共经过"+(s1.getAllPassedStations(s2).size()-1)+"站"; out.println("
"); %>
站点号 站点名 线路号 站点位置
" + rs.getString("id") + " " + rs.getString("stop") + " " + rs.getString("line") + " " + rs.getString("position") + "
" + rs1.getString("id") + " " + rs1.getString("stop") + " " + rs1.getString("line") + " " + rs1.getString("position") + "
<% if (rs != null) { rs.close(); //关闭结果集,但是rs还是有null值。 rs = null; //将rs滞空。 } if (stat != null) //判断stat是否滞空。 { stat.close(); //关闭stat。 stat = null; //滞空stat。 } if (conn != null) { conn.close(); //关闭数据库连接 conn = null; } %>
复制代码

连接数据库(Java代码实现):

复制代码
package com.fmd.java.DBUtil;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;/** * 数据库连接工具 * @author Hu * */public class DBUtil {        public  static  Connection getConnection() {        try {            Class.forName("com.mysql.cj.jdbc.Driver");        } catch (ClassNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        String user = "root";        String password = "123456";        String url = "jdbc:mysql://localhost:3306/jaovo_msg?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";        Connection connection = null;        try {             connection = DriverManager.getConnection(url,user,password);        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return connection;    }        public static void close(Connection connection ) {        try {            if (connection != null) {                connection.close();            }                    } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    public static void close(PreparedStatement preparedStatement ) {        try {            if (preparedStatement != null) {                preparedStatement.close();            }                    } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    public static void close(ResultSet resultSet ) {        try {            if (resultSet != null) {                resultSet.close();            }                    } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    }
复制代码

 

四、运行截图

 
 
 
 
好文要顶 关注我 收藏该文
 

转载于:https://www.cnblogs.com/fuheishi/p/10688342.html

你可能感兴趣的文章
ROS lesson 1
查看>>
js笔记
查看>>
c风格字符串函数
查看>>
python基础学习第二天
查看>>
java可重入锁reentrantlock
查看>>
浅谈卷积神经网络及matlab实现
查看>>
解决ajax请求cors跨域问题
查看>>
【123】
查看>>
《收获,不止Oracle》pdf
查看>>
LinkedList<E>源码分析
查看>>
Real-Time Rendering 笔记
查看>>
如何理解HTML结构的语义化
查看>>
Intellij IDEA(eclipse设置)常用快捷键
查看>>
NAT基本原理
查看>>
Java Content Repository API 简介 转自(https://www.ibm.com/developerworks/cn/java/j-jcr/)
查看>>
Activity之间的跳转:
查看>>
C++ 实践总结
查看>>
composer 国内镜像配置
查看>>
软件是天时、地利、人和的产物!
查看>>
python定时清空本目录下除本脚本外的全部文件
查看>>