长途汽车信息管理系统的设计与实现.docx
《长途汽车信息管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《长途汽车信息管理系统的设计与实现.docx(44页珍藏版)》请在冰豆网上搜索。
![长途汽车信息管理系统的设计与实现.docx](https://file1.bdocx.com/fileroot1/2023-1/23/bc3f2003-6a1c-4cec-914c-f180727433b0/bc3f2003-6a1c-4cec-914c-f180727433b01.gif)
长途汽车信息管理系统的设计与实现
一、绪论
1、引言
1.1设计目的
在信息技术高度发达的今天,传统手工记录客运站信息,已满足不了正常需求。
怎样是的管理员人方便的处理这些信息,降低他们的工作量是一个需要解决额问题。
借助计算机来完成这些大量冗杂的工作。
能大大降低管理员的工作强度。
这里开发一长途客运站的班车信息管理系统,旨在为客运信息管理员提供一个可行法案。
通过利用计算机上的程序,按规范管理长途客运信息。
方便查询班车线路情况、各个班次的售票情况,以及每个班次的班车信息。
方遍管理员的查询,及修改长途汽车线路信息,汽车信息,和车票信息。
将录入操作交给电脑来完成。
这样既能减少管理员工作量还能满足日益增长的需求。
也借以说明计算机技术在当今世界发展中的重要地位和科技创新的重要意义。
1.2项目背景
本程序的开发课题为“某长途客运站信息管理系统”。
主要使用的软件有Jcreator、jdk1.7和Tomcat6.0。
使用软件工程的设计思路,来开发一套使用的软件。
从分析用户需求开始、模块划分、建立数据库、代码设计、调试最后完成。
主要针对的使用者时客运信息管理员(负责本客运站的线路加减以及售票)。
由于本程序有些功能善待完善,不足之处请见谅。
2、任务描述
2.1目标
本次程序设计应实现长途客运管理系统的基本功能,并达到一定的健壮性和安全性。
目标包括,客运汽车信息的管理(新进车辆都录入包括车牌号,汽车编号,以及最大载客量和负责该车的司机师傅)。
线路信息的管理(新增运营线路录入线路号,始末站点,发车时间等信息)。
售票信息查询以及管理员信息管理系统。
除此之外,对查询的优化处理也是必要的,这样可以提高运行效率。
2.2运行环境
软件环境:
操作系统:
Win7
开发工具:
Tomcat6.0jdk1.7Jreator
使用编程语言:
Java
3、数据描述
3.1输入数据
1)添加车辆:
车辆编号、载客量、车牌号、司机。
车辆编号:
为3为数字
载客量:
为(50-100)数字
车牌号:
为国内标准车牌号如(冀BT00001)
司机:
姓名(varchar(20))
2)添加线路信息:
线路号、始发站、终点站、车辆编号、发车日期、发车时间、耗时和票价。
线路号:
L+(3为数值)
始发站和终点站:
城市名称(varchar(20))
车辆编号:
为3为数字(且存在于数据库内)
发车日期:
格式为2012/12/23
发车时间:
小时:
分钟(如9:
00)。
小时(0-24),分钟(0-60)。
耗时:
小时:
分钟(如9:
00)。
小时(大于0),分钟(0-60)。
票价:
大于零的整数
3)添加管理员信息:
账号和密码
账号:
长度20以内字符(varchar(20))
密码:
长度20以内字符(varcha(20))
3.2输出数据
1)查询现有车辆:
车辆编号、载客量、车牌号、司机。
2)查询现有线路信息:
线路号、始发站、终点站、车辆编号、发车日期、发车时间、耗时和票价。
3)查询售票情况:
线路号、总票数、余票。
4)查询现有管理员信息:
账号和密码。
4、功能要求
用户提出的及一般软件都应具有的功能(如输入、输出、修改、查询等)
通过对用户反馈的需求进行分析本系统具有如下功能:
1)汽车信息管理
管理员可以在汽车信息管理模块对汽车信息进行管理,管理员可以添加、修改和删除本客运站的汽车信息。
该模块还可以查看现有汽车的信息。
2)线路信息管理
管理员可以在线路信息管理模块对线路信息进行管理,管理员可以添加、修改和删除本客运站运营的线路。
线路信息包括:
出发站、目的地、发车时间、以及运营该线路的汽车班次号。
这里的汽车必须是数据库已经存在的汽车。
3)车票信息管理
该模块记录各个班次的售票情况,包括总票数,和余票情况。
4)管理员信息管理
该模块可以添加新的管理员,以及显示已有管理员信息。
二、需求分析
1、需求调查
1.1组织机构调查
本程序是为长途客运站开发的,使用对象是客运站管理员。
主要负责录入新车,添加新的运行线路以及售票。
1.2业务需求调查
1)登入验证
在进入系统时,要求对管理员身份进行验证。
要求输入账号、密码。
只有数据库中拥有的管理员才能进入。
2)业务管理如图:
1.3对软件系统的要求调查
对本次管理系统样例的要求有:
1)存在管理员,只有通过验证才能进入系统。
2)可以添加新的管理员。
3)可以录入新的车辆信息。
4)可以开通运营新线路。
5)可以查询售票情况,订票。
6)预留更新接口以添加新功能。
2、功能需求
2.1功能划分
程序主要包括登入界面和操作界面,登入界面用来对管理员进行身份验证,只有在数据库中的管理员才允许进入操作界面。
操作界面包括:
汽车信息管理、线路信息管理、车票信息管理和管理员信息管理。
管理员通过登陆界面验证之后进入操作界面后,可以查询可添加车辆信息、线路信息和售票信息。
线路信息包含:
线路号(即车次)、始发站、终点站、发车日期、发车时间、耗时,同时还会显示该线路的余票以及票价(票售完的不显示)。
允许进行订票。
车辆信息主要包括:
大巴车编号、最大载客量、车牌号以及驾驶员。
售票信息:
线路号、该线路总票数、余票。
管理员信息:
现有管理员的账号信息。
2.2功能描述
用户提出的及一般软件都应具有的功能(如输入、输出、修改、查询等)
通过对用户反馈的需求进行分析本系统具有如下功能:
1)汽车信息管理
管理员可以在汽车信息管理模块对汽车信息进行管理,管理员可以添加、修改和删除本客运站的汽车信息。
该模块还可以查看现有汽车的信息。
2)线路信息管理
管理员可以在线路信息管理模块对线路信息进行管理,管理员可以添加、修改和删除本客运站运营的线路。
线路信息包括:
出发站、目的地、发车时间、以及运营该线路的汽车班次号。
这里的汽车必须是数据库已经存在的汽车。
3)车票信息管理
该模块记录各个班次的售票情况,包括总票数,和余票情况。
4)管理员信息管理
该模块显示现有管理员信息。
以下为实现功能的数据流图:
3、数据描述
3.1数据描述
1)车辆信息:
车辆编号、载客量、车牌号、司机。
2)线路信息:
线路号、始发站、终点站、车辆编号、发车日期、发车时间、耗时和票价。
3)售票信息:
线路号、总票数、余票、票价。
4)添加管理员信息:
账号和密码。
3.2数据库描述
在对业务流程图和数据流程图进行详细分析的基础上,找出其中的实体有管理员、线路、车辆、线路车票,根据各个实体的属性以及他们之间的联系。
有E-R图描述实体及实体之间的关系(关系E-R图如下)
3.3数据词典
1)车辆信息
车辆编号:
长度为3个字符要求字符为数字(0-9),如“001”。
载客量:
整形要求(30-100)的数。
车牌号:
省份简称+市属车号字母(大写的26个字母,O除外)+5位字符
字符可以是(0-9)的数值也可以是(大写的26个字母,O除外)。
司机姓名:
长度为20个字符,可以不写满。
2)线路信息
线路号:
大写字母L+长度为3个字符要求字符为数字(0-9),如“001”。
始发站:
城市名称,长度为20个字符,可以不写满。
终点站:
城市名称,长度为20个字符,可以不写满。
发车日期:
长度为10的字符串,要求年份+”/”+月+“/”+日。
年份:
四位数字字符,要求大于等于当前年份
月:
两位字符1-12,不满两位的前面补“0“
日:
两位字符1-31,不满两位的前面补“0“,注意某些月份,如2,4,6,9,11不满31天。
发车时间:
长度为5的字符串,要求小时+“:
“+分钟。
小时:
两位字符0-24,不满两位的前面补“0“
分钟:
两位字符0-60,不满两位的前面补“0“
耗时:
长度为5的字符串,要求小时+“:
“+分钟。
小时:
两位字符大于等于0,不满两位的前面补“0“
分钟:
两位字符0-60,不满两位的前面补“0“
大巴编号:
参考车辆信息
3)售票信息
线路号:
参考车辆信息。
总票数:
根据线路号查到车辆编号,继而查到载客量。
余票:
整形大于等于0,小于等于总票数
票价:
整形大于0
4)管理员信息
账号:
长度为20个字符,可以不写满。
密码:
长度为20个字符,可以不写满。
4、性能需求
4.1数据精确度
1)查询时保证查全率,所有在相应域中与查询关键字相符的记录都应能查到;
2)查询时保证查准率,所有查询记录都是希望值。
3)修改记录同步,不出现一方有时令一方没有的情况。
4.2时间特性
1)小型库中的查询、修改等操作的响应时间应控制在0.5秒钟以内;
2)增加数据量时也应将响应时间控制在2秒以内;
3)当数据多至超出响应时间时,应提供更新以控制响应时间。
4.3适应性
1)满足运行环境在允许操作系统之间的安全转换要求;
2)满足与其他应用软件不冲突的独立运行要求。
5、运行需求
5.1用户界面
1)屏幕格式:
多窗口运行,采用B/S,使用Jcreator和jdk1.7制作,完全兼容Windows平台。
2)报表格式:
符合打印要求,与常规打印机接口匹配。
3)菜单格式:
采用选项菜单等方式。
5.2硬件接口
1)需要10M以上LAN接入网络宽带。
2)需要P43.0GXeonCPU/1G内存/360G(10K)SCSI硬盘的服务器。
5.3软件接口
1)运行于Windows操作系统之上;
2)需要连接小型数据库Access和系统类库,使用Tomcat服务器。
5.4故障处理
1)用户输入错误格式时应给予改正提示;
2)数据库更改错误时应自行缓和关闭并重启;
3)若运行时遇到不可恢复的系统错误时,应保证数据库的完好无损;
4)其它故障问题可与开发人员联系。
5.5基本要求
综上可知,基本要求如下:
1)体系结构:
B/S
2)操作系统:
Windows系列
3)数据库管理系统:
小型数据库Access
4)开发工具:
Jcreator、jdk1.7、Tomcat6.0
5)软件需求:
操作系统Windows2000AdvanceServer以上,数据库软件MicrosoftAcccess,数据库服务器端软件Tomcat6.0
6)硬件需求:
P3以上微机(带网卡)的客户机,10M以上的LAN接入网络带宽,P43.0GXeonCPU/1G内存/1T(10K)SCSI硬盘的服务器。
6、其他需求
除了基本要求,还应该确保软件的安全性:
1)提供管理员的密码保护、密码修改功能;
2)提供可靠的软件逻辑机制,减少外部侵入的风险。
三、总体设计
1、总体结构和模块设计
根据业务流程图与数据流程图可画出总体功能模块结构图如下:
图4总体功能模块结构图
其中,主要包括登陆模块,车辆信息管理模块,线路信息管理模块,售票信息管理模块和管理员信息管理模块。
车辆信息管理模块下包括输入新车的编号、载客量、车牌号、司机;而线路信息管理模块下包括增加新的运营线路,该线路的的购票。
售票信息管理模块包括显示所有线路的售票情况。
管理员信息管理模块包括现有管理员信息管理和增加新管理员的功能。
各个功能和模块的接口都如上图所示。
2、数据结构设计
各层次模块的数据结构表如下:
表1汽车信息表
字段名称
数据类型
必填字段
主键
busID
nChar(3)
Y
Y
busSize
Int
Y
busNum
nChar(3)
Y
busDriver
varchar(20)
Y
表2线路信息表
字段名称
数据类型
必填字段
主键
外键
lineID
nchar(4)
Y
Y
start
varchar(20)
Y
end
varchar(20)
Y
Date
nchar(10)
Y
sTime
nchar(5)
Y
nTime
nchar(5)
Y
busId
nchar(3)
Y
Y
表3售票信息表
字段名称
数据类型
必填字段
主键
lineID
nchar(4)
Y
Y
allNum
Int
Y
leftNum
Int
Y
price
Int
Y
表4管理员信息表
字段名称
数据类型
必填字段
主键
mID
varchar(20)
Y
Y
pwd
varchar(20)
Y
3、数据库设计
3.1逻辑设计
数据库关系模型如下:
车辆(车辆号,载客量,车牌号,司机)
线路(线路编号,始发站,终点站,发车日期,发车时间,耗时,车连编号)
售票信息(线路编号,总票数,余票)
管理员(管理员账号,密码)
3.2物理设计
数据库应存放在服务器端,保证数据库的存储空间在数据量的3倍左右,以方便数据备份和数据恢复操作。
4、外部接口设计
4.1用户界面
用户界面多为链接操作,插入和修改信息的操作。
背景采用浅蓝色,文字采用黑色宋体字,查询结果显示在中间位置。
4.2软件接口
实现google浏览器或者IE与ACCESS的接口(通过Tomcat服务器)。
4.3硬件接口
由于存在大量的数据备份问题和报表打印问题,需要连接磁带机或备份用数据库和打印机。
5、出错处理设计
5.1出错处理信息
1)输入格式错误,探出提示框显示“请按照固定格式输入信息”等字样;
2)程序数据基本错误,探出提示框显示“系统数据错误”等字样,并安全退出程序;
3)程序严重错误,探出提示框显示“请将问题发送至开发者邮箱”等字样,并强行退出程序。
5.2出错处理对策
1)输入不合法错误,给予正确的格式提示;
2)由于程序造成的基本错误,在保护数据库安全的情况下退出程序并重新自启动,再根据日志来恢复
4)定期对数据库进行备份;
四、详细设计
1、代码设计
服务器端:
存放数据库,开启服务器Tomcat,等待管理员那边PC端的请求,根据请求内容查询数据库把查询的内容传回管理员的PC端进行显示。
执行一个请求结束后继续等待下一个请求。
管理员PC端:
首先要通过登陆界面的验证,输入密码用户号检验成功进入操作界面,所有操作以树型结构显示界面的左边栏,数据显示在右边栏目中;点击具体操作的链接点后会把接收到的的数据显示在右边栏目中。
2、程序设计
2.1模块设计
1)登录模块
功能:
管理员输入密码和用户名点击登入,服务器检验密码和用户是否正确,正确则可以入操作界面。
性能:
方便快捷;相应速度快;界面友好,带有错误提示。
输入项目:
账号和密码。
输出项目:
跳到登入失败或者进入操作界面。
2)车辆信息管理
功能:
可以添加汽车信息,删除汽车信息,修改汽车信息,查询所有的汽车信息。
性能:
方便快捷;相应速度快;界面友好,带有错误提示。
输入项目:
汽车编号,载客量,车牌号,司机。
输出项目:
保存添加或者修改后立即刷新界面显示添加后的数据。
3)线路管理
功能:
可以添加路线,删除路线,修改路线,显示所有线路。
性能:
方便快捷;相应速度快;界面友好,带有错误提示。
输入项目:
添加和修改包括线路号、目的地,出发地,出发时间,耗时,使用车辆的编号。
输出项目:
线路编号,目的地,出发地,出发时间,行驶时间,余票。
4)管理员信息管理:
功能:
可以添加和删除新管理员。
性能:
方便快捷;相应速度快;界面友好,带有错误提示。
输入项目:
添加和修改管理员账号和密码。
输出项目:
现有管理员信息。
2.2算法设计
登陆部分:
首先输入用户号和密码,进行验证,连接服务器的数据库检查输入的用户名是否存在并且密码是否正确,正确则可以操作,不正确显示登入失败。
车辆信息管理:
点击汽车信息链接后会发送请求数据库获取所有数据库中的汽车信息,并且再右边栏目中进行显示。
输入内容点击保存即可保存到数据库中;如果修改则需要选中修改的行进行修改后保存的数据库中。
线路信息管理:
点击线路信息链接后会发送请求数据库获取所有数据库中的线路信息,并且再右边栏目中进行显示。
输入内容点击保存即可保存到数据库中;如果修改则需要选中修改的行进行修改后保存的数据库中。
管理员信息管理:
点击管理员信息链接后会发送请求数据库获取所有数据库中的管理员信息,并且再右边栏目中进行显示。
输入内容点击保存即可保存到数据库中;如果修改则需要选中修改的行进行修改后保存的数据库中
2.3程序逻辑
1)登入界面
2)汽车信息管理、线路信息管理、管理员信息的程序逻辑如下:
2.4接口
软件接口:
在这里主要考虑软件与操作系统的接口,这里使用java语言开发。
Jdk1.7具有较好的跨平台兼容性。
除此之外,还要配置服务器端,开启服务器程序Tomcat6.0,等待可无端请求。
建立连接后通过SQL语言Tomcat会自动完成对数据库的操作。
硬件接口:
可用的网络链接,服务器端有较大的硬盘容量,较好的CPU来提高检索速率。
2.5测试要点
因为开发的软件较小。
可以严个测试录入数据的安全性。
准备多个测试用例(实用软件测试的方法)检验系统的健壮性。
同时检查形同日志,以及异常后数据库能发保持完整性。
五、系统实现
1登入界面设计login.jsp
login.jsp
<%@pagecontentType="text/html;charset=ISO8859_1"%>
<%@pagelanguage="java"import="java.sql.*"%>
<%@pageimport="java.lang.Math.*,sen.DBUtilbus"%>
<%!
Stringmid="";
Stringpwd="";
booleanflag=false;
%>
<%
if((request.getParameter("mid")!
=null)&&(request.getParameter("pwd")!
=null))
{mid=newString(request.getParameter("mid").getBytes("ISO8859_1"),"GB2312");
pwd=newString(request.getParameter("pwd").getBytes("ISO8859_1"),"GB2312");
if(flag==true)
{
%>
forwardpage="fenp.jsp"/>
<%
}
else
{%>
forwardpage="loginfail.jsp"/>
<%
}
}
%>
账号:
密码:
onclick="window.opener=null;window.close();"/>