1、学号 《某客运公司的运输管理系统》 课程设计报告 题目: 某客运公司的运输管理系统 专业: 网络工程 班级: 姓名: 指导教师: 成绩: 计算机学院 2017年12月8日 目录 1、设计内容及要求 1 1.1 系统功能设计 1 2、概要设计 2 2.1概念结构 2 3、设计过程和代码 3 3.1 登陆页面设计: 3 3.2网站主界面设计: 4 3.3 司机信息界面 5 3.4 车辆信息管理界面 7 3.5 网站介绍界面 8 4、设计结果与分析 14 4.1需
2、求分析 15 4.2 数据库分析 15 5、参考文献 17 19 / 21 1、设计内容及要求 1.1 系统功能设计 本网站由6大模块,分别是系统管理,司机信息管理,车辆信息管理,维修信息管理,运营信息管理,网站管理 1.系统管理 (1) 用户管理:通过该功能模块,管理员能查看所以用户信息以及新用户注册。 (2) 密码管理:通过该功能模块,进行密码修改。 2.司机信息管理 (1) 司机信息管理:通过该功能模块,管理员可以对司机信息进行添加,修改,删除。 (2) 司机信息发布:通过该功能模块,管理员可以对司机信息进行添加 (3) 关于司机信息:通过
3、该功能模块,可以看到司机信息的数据字段。 3.车辆信息管理 (1) 车辆信息管理:通过该功能模块,管理员可以对车辆信息进行添加,修改,删除。 (2) 车辆信息发布:通过该功能模块,管理员可以对车辆信息进行添加 (3) 关于车辆信息:通过该功能模块,可以看到车辆信息的数据字段。 4.运营信息管理 (1) 运营信息管理:通过该功能模块,管理员可以对司机运营信息进行添加,修改,删除。 (2) 运营信息发布:通过该功能模块,管理员可以对司机运营信息进行添加 (3) 关于运营信息:通过该功能模块,可以看到司机运营信息的数据字段。 5.维修信息管理 (1) 维修信息管理:通过该功
4、能模块,管理员可以对车辆维修信息进行添加,修改,删除。 (2) 维修信息发布:通过该功能模块,管理员可以对车辆维修信息进行添加。 (3) 关于维修信息:通过该功能模块,可以看到车辆维修信息的数据字段。 6.网站管理 (1) 网站主页:显示网站主页。 (2) 网站介绍:通过该功能模块,用户可以看到本网站所以功能需求及数据字段 (3) 关于我们:通过该功能模块,可以看到我们的联系方式及其他。 2、概要设计 2.1概念结构 在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更好地、更准确地用某一DBMS实现这些需求。 概念结构的主要特点是: (1)能真实、
5、充分地反应现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个真实模型; (2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库设计成功的关键; (3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充; (4)易于向关系、网状、层次等各种数据模型转换。 概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。 用户登录 身份认证 网络管理 司机信息管理 登陆页面 系统管理 司机信息管理 司机信息管理 司机信息管理 3、设计过程和
6、代码 3.1 登陆页面设计如图: 此界面是用户登录系统界面,通过数据验证,返回不同的值然后通过struts控制返回不同的页面,如图 //登陆 public String doLogin(){ System.out.println("进入dologin方法"); HttpSession session = ServletActionContext.getRequest().getSession(); String username = user.getUsername(); String password = user.getPassword()
7、 System.out.println("用户名:"+username); UserInfoSession userinfo = userBiz.check(username,password); if(userinfo!=null){ session.setAttribute("USERINFO",userinfo); return "login-success"; } return "login-failure"; } 3.2网站主界面设计如图: 这是网站主界面,左边是导航,右边是现实页面,顶部显示登录用户和现在的具体时间。此
8、部分时间显示用到JavaScript. 如图 部分代码如下:
10、条件查询,每一页只显示4条记录,故有分页显示。如图
本界面有模糊查询和分页,具体代码如下
public PageMode findAll(PageMode pm) {
String query_hql = "from Car where 1=1 ";
String count_hql ="";
Map
11、); System.out.println(query_hql); } List data = getSession().createQuery(query_hql) .setFirstResult(pm.getFirstResult()) .setMaxResults(pm.getPageSize()).list(); count_hql = "select count(id) "+query_hql; System.out.println(count_hql); Long count = (Long) getSession().cr
12、eateQuery(count_hql).uniqueResult();
pm.setResult(data);
pm.setTotal(count);
return pm;
}
}
public class PageMode {
//分页参数
private int firstResult=0; //显示首页
private int pageSize=6;
private long total=1; //
//查询参数
private Map
13、); //类表数据 private List result; public int getFirstResult() { return firstResult; } public void setFirstResult(int firstResult) { this.firstResult = firstResult; } } 3.4 车辆信息管理界面 这是车辆信息管理界面,本界面可以对车辆信息进行管理,即对其增删改查。如图: 部分代码如下: public String findAll(){ System.out.println(
14、"进入车辆信息findAll方法"); //System.out.println(list.size()); HttpSession session = ServletActionContext.getRequest().getSession(); if(cname!=null)session.setAttribute("cname",cname); System.out.println(cname); Object temp = session.getAttribute("cname"); pm.getParam().put("cname",temp==n
15、ull?"":(String)temp); pm.setFirstResult(firstResult!=null?firstResult:0); pm.setPageSize(maxSize!=null?maxSize:4); pm = carBiz.findAll(pm); System.out.println(pm); return SUCCESS; } 3.5 网站介绍界面 这是一个网站主体介绍的主界面。通过这个界面用户可以了解本网站的研究目的,研究内容,开发平台,以及功能需求和数据库管理需求。如图 3.2.1数据处理dao层
16、
通过写一个接口,接口里的只写方法不需要实现,然后通过实现这个接口并继承一个HibernateDaoSupport;,然后调用接口的方法并实现这些方法进行业务逻辑处理。
public class MakeDaoImpl extends HibernateDaoSupport implements IMakeDao{
public PageMode findAll(PageMode pm) {
String query_hql = "from Make where 1=1 ";
String count_hql ="";
Map
17、m = pm.getParam(); if(param.hashCode()!=0) { query_hql+=("and carNumber like '%"+param.get("mname")+"%'"); System.out.println(query_hql); } List data = getSession().createQuery(query_hql) .setFirstResult(pm.getFirstResult()) .setMaxResults(pm.getPageSize()).list(); count_
18、hql = "select count(id) "+query_hql; System.out.println(count_hql); Longcount=(Long) getSession().createQuery(count_hql).uniqueResult(); pm.setResult(data); pm.setTotal(count); return pm; } } 3.2.2 业务逻辑biz层 同样通过写一个接口,然后实现这个接口,并注入dao层,并调用dao层方法进行业务逻辑处理 public class DriverBizImpl
19、 implements IDriverBiz{
private IDriverDao driverDao;
public void delete(int id) {
driverDao.delete(id);
}
public List
20、verDao.save(driver); } public void update(Driver driver) { driverDao.update(driver); } public PageMode findAll(PageMode pm) { return driverDao.findAll(pm); } } 3.2.3 控制action层 继承ActionSupport。写一个有返回类型的方法,通过调用不同的方法处理不同的业务和跳转到不同的页面。 public class CarAction extends ActionSupport{
21、 public String findAll(){ System.out.println("进入车辆信息findAll方法"); //System.out.println(list.size()); HttpSession session = ServletActionContext.getRequest().getSession(); if(cname!=null)session.setAttribute("cname",cname); System.out.println(cname); Object temp = session.getAttrib
22、ute("cname"); pm.getParam().put("cname",temp==null?"":(String)temp); pm.setFirstResult(firstResult!=null?firstResult:0); pm.setPageSize(maxSize!=null?maxSize:4); pm = carBiz.findAll(pm); System.out.println(pm); return SUCCESS; } public String doAdd(){ System.out.println("进入车
23、辆查询doAdd方法"); carBiz.save(car); return "ok-success"; } } 3.2.4 Struts配置文件 Struts配置文件,首先配置struts-2.0.dtd.然后配置struts下面package以及下面的命名空间和返回的jsp页面。
24、//说明这个struts是2.0版本的
25、
26、/package>
27、te-configuration>
28、
30、ory>
3.2.6 Spring配置文件
31、y>
32、gerMethod" advice-ref="txAdvice"/>
34、需求分析
(1)系统功能设计
网站能够实现以下功能:
系统管理:用户管理、密码管理;
司机信息管理:司机信息添加、司机信息修改、司机信息查询;
车辆信息管理:车辆信息添加、车辆信息修改、车辆信息查询;
业务信息管理:运营信息管理(运营信息添加、运营信息修改、运营信息查询)、维修信息管理(车辆维修信息添加、车辆维修信息查询、车辆维修信息修改等。
(2)系统设计思想
管理员登陆时,登陆页面进行操作验证。首次基于数据库验证,验证正确即可登陆页面,然后把用户信息写进session,然后其他页面采用session验证。 系统结构上采用页面镶嵌程序和语句,工作原理如图3-1所示。
35、
操作请求,运用SQL语句操作数据库
返回查询结果集或操作结果
Mysql
用户界面
数据库存储层
企业运输管理系统
在系统结构中,用户界面层通过统一的接口向数据库存储层发送请求,数据库存储层收到请求处理之后把数据返回到用户界面层。
4.2 数据库分析
(1)数据库需求分析
数据管理需求(基本数据要求)
1) 司机基本信息表结构:司机姓名、司机性别、出生日期、家庭住址、初次领证时间、执照号码、准驾车型有效期起始时间、有效期结束时间等;
2) 车辆基本信息表结构:车号、类型、车主、发动机号、厂牌型号、核定载客、登记时间、发证时间、颜色、主 36、要司机等;
3) 运营信息表结构:车号、司机姓名、运营开始时间、运营结束时间、运行公里、耗油量等;
4) 车辆维修信息表结构:车牌号、维修时间、维修单位、维修内容、维修价格、配件、备注等;
5) 用户数据表结构:编号id,用户登录名,密码,用户名,性别,年龄,住址,注册时间。
(2) 数据库逻辑结构设计
数据库概念结构设计完后,将数据概念结构转化为数据库系统所支持的实际数据模型,也就是数据库逻辑结构。
教师教学质量评估系统中各个表设计如下:
字段
字段名
类型
主键
可否为空
id
用户编号
int
是
否
username
用户登录名
varchar
37、一
否
password
用户密码
varchar
一
否
name
用户名
varchar
一
否
sex
性别
varchar
一
否
age
年龄
varchar
一
否
address
地址
varchar
一
否
time
注册时间
datetime
一
否
字段
字段名
类型
主键
可否为空
id
编号
int
是
否
carNumber
车牌号
varchar
一
否
carType
类型
varchar
一
否
carOner
车主
varchar
一
否
En 38、gine
发动机号
varchar
一
否
passengers
核定载客
varchar
一
否
cartime
登记时间
datetime
一
否
color
车辆颜色
varchar
一
否
字段
字段名
类型
主键
可否为空
Id
编号
int
是
否
carOner
车主
varchar
一
否
sex
性别
varchar
一
否
age
年龄
varchar
一
否
address
地址
varchar
一
否
number
执照号码
varchar
一
否
ftime
39、
初次领证时间
datetime
一
否
ltime
有效期结束时间
datetime
一
否
字段
字段名
类型
主键
可否为空
Id
编号
int
是
否
carNumber
车牌号
Int
一
否
mTime
维修时间
datetime
一
否
mCompany
维修单位
varchar
一
否
mContent
维修内容
varchar
一
否
mPrice
维修价格
varchar
一
否
mAccessory
配件
varchar
一
否
memo
备注
varchar
一
否 40、
字段
字段名
类型
主键
可否为空
Id
编号
int
是
否
carNumber
车号
varchar
一
否
carOner
司机姓名
varchar
一
否
fTime
运营开始时间
datetime
一
否
lTime
运营结束时间
datetime
一
否
carPath
运行公里
varchar
一
否
oil
耗油量
varchar
一
否
5、参考文献
[1] 王毅.JSP程序开发范例宝典[M].人民邮电出版社,2007
[2] 程志艳 张亮 马建红. JSP实用简明教程[M]. 41、 清华大学出版社,2005
[3] 周家地. DREAMWEAVER MA入门与提高[M]. 清华大学出版社,2006
[4] 李国涛. MySql数据库开发[M]. 机械工业出版社,2004
[5] 武延军,黄飞跃. 精通JSP编程技术[M]. 北京:人民邮电出版社,2001:126-178.
[6] 柏亚军. JSP编程基础及应用实例集锦[M].北京:人民邮电出版社,2001:41-82.
[7] 清宏计算机工作室.JSP编程技巧[M].北京:机械工业出版社,2000 :32-39.
[8] 周影 .网络编程语言JSP实例教程[M].北京:电子工业出版社,2003:17-32. 42、
[9] 陈海山.深入Java Servlet 网络编程[M].北京:清华大学出版社,2002 :55-62.
[10] Donny.JSP与网站开发编程实战[M].北京:科学出版社 ,2001:22-53.
[11] Steven Holzner.Java技术内幕[M].北京:机械工业出版社,2002 : 22-25.
[12] Phil Hanna .JSP技术大全[M].北京:机械工业出版社,2002 : 222-223.
[13] Karl Moss. Java Servlet开发人员指南[M].北京:清华大学出版社,2002:45-67.
[14] Gottfried Vossen .Unleashing Web 2.0: From Concepts to Creativity .Morgan Kaufmann,2007
[15] Brown S. Professional JSP 2nd Edition . Wrox Press Inc,2002
[16] Mary Millhollon;Jeff Castrina;Leslie Lothamer .Easy Web Design. Microsoft Press,2006






