石家庄地铁查询PSP0级
一、需求 :地铁(石家庄地铁)线路查询
二、 学生:洪鼎淇
合作对象:宋子健
时间记录日志:
日期 |
开始时间 |
结束时间 |
中断时间 |
净时间 |
活动 |
2019/3/30 |
10:00 |
14:00 |
13:00 |
3.5小时 |
web界面 地铁地图绘制 |
2019/4/2 |
7:00 |
13:00 |
12:00 |
4.5小时 |
优化界面 构建数据库 实现基本线路查询 |
2019/4/3 |
18:00 |
23:00 |
20:40 |
3小时 |
优化查询功能 |
三、程序:
行中代码如下:
//数据处理层
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page language="java" import="java.util.*"%>
<%@ page language="java" import="com.hdq.service.ClassService"%>
<%@ page language="java" import="com.hdq.entity.LineInfo"%>
<%@ page language="java" import="com.hdq.entity.Linenum" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>数据处理层</title> </head>
<body>
<%
request.setCharacterEncoding("utf-8");
//--------------------------------
String start=request.getParameter("start");
String end=request.getParameter("end");
ClassService service=new ClassService();
@SuppressWarnings("unchecked")
List<Linenum> ln=(List<Linenum>)service.list("linenum", new String[]{"linenum"},new Linenum().getClass());
int g_slinenum=-1,g_elinenum=-1;
int g_snum=-1,g_enum=-1;
List<LineInfo> pathInfo=new ArrayList<LineInfo>();
c:for(Linenum it:ln)
{
int g_count=0;
@SuppressWarnings("unchecked")
List<LineInfo> info=(List<LineInfo>)service.list("line"+it.getLinenum(), new String[]{"linenum","name"},new LineInfo().getClass()); for(LineInfo it1:info)
{ if(it1.getName().equals(start))
{ //找到相应的节点
g_slinenum=it.getLinenum();
g_snum=g_count;
}
if(it1.getName().equals(end))
{
g_elinenum=it.getLinenum();
g_enum=g_count;
}
if(g_elinenum!=-1&&g_slinenum!=-1)
break c;
g_count++;
} }
if(g_slinenum!=-1&&g_elinenum!=-1)
{
if(g_elinenum!=g_slinenum)
{
@SuppressWarnings("unchecked")
List<LineInfo> einfo=(List<LineInfo>)service.list("line"+g_elinenum, new String[]{"linenum","name"},new LineInfo().getClass());
@SuppressWarnings("unchecked")
List<LineInfo> sinfo=(List<LineInfo>)service.list("line"+g_slinenum, new String[]{"linenum","name"},new LineInfo().getClass());
int g_center=-1,g_ecenter=-1;
boolean fOutside=false,feOutside=false;
for(int i=0;i<sinfo.size();i++)
{
if(i==g_snum)
fOutside=true;
if(sinfo.get(i).getLinenum()==g_elinenum)
{
g_center=i;
}
if(g_center!=-1&&fOutside)
break;
} if(g_center<g_snum)
{
pathInfo=sinfo.subList(g_center, g_snum+1);
Collections.reverse(pathInfo);
}
else
{ pathInfo=sinfo.subList(g_snum, g_center+1);
}
List<LineInfo> subPathInfo=new ArrayList<LineInfo>();
for(int i=0;i<einfo.size();i++)
{ if(i==g_enum)
feOutside=true;
if(g_center<g_snum)
{
if(einfo.get(i).getName().equals(sinfo.get(g_snum).getName()))
{
g_ecenter=i;
}
}
else
{
if(einfo.get(i).getName().equals(sinfo.get(g_center).getName()))
{
g_ecenter=i;
}
}
if(g_ecenter!=-1&&feOutside)
break;
} if(g_ecenter<g_enum)
{
subPathInfo=einfo.subList(g_ecenter, g_enum+1);
}
else
{
subPathInfo=einfo.subList(g_enum, g_ecenter+1);
Collections.reverse(subPathInfo);
}
LineInfo pointInfo=new LineInfo();
pointInfo.setName("换乘"+g_elinenum+"号线路");
pathInfo.add(pointInfo);
pathInfo.addAll(subPathInfo); }
else
{
@SuppressWarnings("unchecked")
List<LineInfo> sinfo=(List<LineInfo>)service.list("line"+g_slinenum, new String[]{"linenum","name"},new LineInfo().getClass()); if(g_snum>g_enum)
{
pathInfo=sinfo.subList(g_enum,g_snum+1);
Collections.reverse(pathInfo);
}
else pathInfo=sinfo.subList(g_snum,g_enum+1);
}
String info=new String("查询的信息如下:");
for(LineInfo it:pathInfo)
{
info+=it.getName();
if(!it.getName().equals(pathInfo.get(pathInfo.size()-1).getName()))
{
info+="-";
}
}
request.setAttribute("message",info);
}
else
{
request.setAttribute("message","查无信息,请确定你输入的起点和终点的名称正确");
}
request.getRequestDispatcher("subway.jsp").forward(request,response);
%>
</body>
</html><br>//具体代码省略<br>
上述的函数是该数据的数据处理层,主要是对里面路径进行查询,目前并不是对最短路径进行查询,现在正在利用迷宫算法修改,已经快完善了,并且目前支持换乘两次之后最短路径的查询,目前卡在了循环的中间没有办法出来。
对于该系统实现的分析,首先是实现界面,界面的实现需要对矢量图进行放大缩小移动等操作,里面的代码由html中的代码实现,矢量图是在实验期间根据图片画出来的,因此在放大和缩小的时候清晰度还是挺高的
subway.jsp的代码实现了界面的操作功能(主要是在javascript中),handleSql.jsp主要是实现连接数据库及对数据查询,最短路径查询的功能
运行结果:
石家庄地铁查询PSP0级的更多相关文章
- 结对开发_石家庄地铁查询web系统_psp表
结对开发_石家庄地铁查询_博客地址:https://www.cnblogs.com/flw0322/p/10680172.html PSP0: PSP0 Personal Software Proce ...
- 两人团队项目-石家庄地铁查询系统(web版)psp表
结对开发_石家庄地铁查询_博客地址:https://www.cnblogs.com/Aduorisk/p/10652917.html 队友:冯利伟 PSP: PSP0 Personal Softwar ...
- 结对开发_石家庄地铁查询web系统
结对开发:队友田昕可 大二上学期做过只有两号线的地铁查询系统,但是只能在控制台操作.这一次将线路加到了六条,并且要求web实现,下面简述一下设计思路和具体代码实现: 1.数据库建表 于我们自己习惯而言 ...
- 两人团队项目-石家庄地铁查询系统(web版)
大二上学期做过只有两号线的地铁查询系统,但是只能在控制台操作.这一次将线路加到了六条,并且要求web实现,下面简述一下设计思路和具体代码实现: 1.数据库建表 于我自己习惯而言,我写javaweb项目 ...
- 团队项目成员与题目(本地地铁查询app)
团队名称:Daydreaming团队成员及其特点:张运涛:能快速与团队成员中的每一位进行合作,能全面考虑遇到的问题,善于总结积累.能较好的理解老师与其他人员的想法要求.刘瑞欣:做事果断,善于领导,有想 ...
- 结对开发项目--石家庄地铁web版
一.功能要求 1.数据库设计:将石家庄地铁线路图的各个线路,各个站点,换乘信息等用数据库的形式保存起来,应该保存的信息有 {线路号,线路的各个站名,车站的换乘信息}. 2.站点查询:用户可以输入任一一 ...
- ThinkPHP 关联模型中查询某条记录的父级(非查询子级)
数据表 id cat_name cat_pid 76 手机.数码 0 84 手机配件 76 86 蓝牙耳机 84 从属关 ...
- 四则运算三+psp0级表格
一.题目 在四则运算二的基础上,选择一个方向进行拓展,我选择的是增加了答题模块 二.设计思路 1.在上次的基础上,增加了答题模块,每出现一道四则运算题目,便提醒输入结果,如果结果错误,就会提示错误 2 ...
- 四则运算2+psp0级表格
四则运算2 一.题目和要求 题目:写一个能自动生成小学四则运算题目的程序,要求一次输出不少于30道,只能是整数100以内的四则运算(四则运算1升级版) 要求: 1.题目避免重复 2.可定制(数量/打印 ...
随机推荐
- docker的网络配置
Docker的4种网络模式 我们在使用docker run创建Docker容器时,可以用–net选项指定容器的网络模式,Docker有以下4种网络模式: host模式:使用–net=host指定. c ...
- Python基础2 列表 元祖 字符串 字典 集合 文件操作 -DAY2
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
- Navicat将表转为模型
右键数据库 -> 逆向数据库到模型
- zabbix user-defined item
1.user-defind item at:/etc/zabbix/zabbix_agent.conf format: UserParameter=<key>,<command> ...
- C++ Simple Message/Logging Class
在 Qt的源码与Protobuf 的代码中,看到相同的简单消息(日志)输出的类实现,基本思路是使用宏定义,重载临时类对象,调用类方法或者通过析构函数自动调用输出方法,实现消息输出.这里以 Protob ...
- 使用SimpleDateFormat 将毫秒转换成时分秒 格式:HH:mm:ss
public static String dateFormatFromMilliSecond(long seconds) { //初始化format格式 SimpleDateFor ...
- java(List或Array数组)求交集、并集、差集, 泛型工具类
业务需要求不同类型的交集.并集.差集为避免代码冗余编写工具类. 注:list 转数组需传入数组,如果将原数组传入将会改变原数组的值,同时泛型数组又不可以实例化,解决方案:Arrays.copyOf(n ...
- 【Java IO流】浅谈io,bio,nio,aio
本文转载自:http://www.cnblogs.com/doit8791/p/4951591.html 1.同步异步.阻塞非阻塞概念 同步和异步是针对应用程序和内核的交互而言的. 阻塞 ...
- 第二章:C++简单程序设计
主要内容: 1.C++语言概述 2.基本数据类型和表达式 3.数据的输入与输出 4.算法的基本控制结构 5.自定义数据类型 1.数据类型default is double 2.自定义数据类型就是bui ...
- CentOS 7中设置PHP7的Log文件日志
对于服务器上面运行的php代码, 想要去查看对应的log,找到代码无法运行的原因 1.通过:phpinfo()去找 error_log 结果得到: 2.然后去编辑php.ini,修改三处地方 vi / ...