汽车租赁系统的设计与实现毕业设计论文 精品Word格式文档下载.docx
《汽车租赁系统的设计与实现毕业设计论文 精品Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《汽车租赁系统的设计与实现毕业设计论文 精品Word格式文档下载.docx(39页珍藏版)》请在冰豆网上搜索。
图3:
页面模块图
commons包中放与分页相关的类和系统系统静态常量类。
domain包中放系统的实体类。
exception包放系统的异常处理类。
persist包中放持久化操作类。
service包中放业务处理类。
web.actions包中放struts1的action类。
web.filters包中放判断用户是否登录、用户是否有权限的过滤器类。
web.listener包中放控制用户只能不能同时登录多台。
web.resources包中放系统properties资源文件。
js包中放js文件。
css包中放css文件。
images包中放项目使用的图片。
2.1.3项目功能设计
首先有用户登录功能,用户登录后系统根据权限控制功能,为用户生成不同的操作菜单,当用户的操作超出自己权限时系统能拒绝用户操作,并给用户友好的权限不足提示。
对于超级管理员,它拥有系统全部的管理功能;
包括:
1)用户管理2)客户管理3)汽车管理4)业务管理5)业务统计6)系统管理7)修改密码
对于其他普通管理员,它的系统权限则是通过超级管理员通过系统管理菜单中的角色管理功能给他授权。
对于客户租车业务,系统提供租车人员信息录入、车辆信息查询。
最后出租单生成入库,生成出租单等一系列功能。
完成租车所需的全部功能。
对于客户还车业务,系统提供出租单的信息显示,用户通过可以更改出租单状态、完成还车业务。
系统中的车辆信息是用户通过汽车管理菜单中的添加汽车功能录入车辆信息的。
同时提供车辆信息的删除、修改、查找等操作。
系统中的用户信息是超级管理员通过用户管理菜单中的添加用户功能录入用户信息的。
系统中的客户信息是超级管理员或用户通过客户管理菜单中的添加客户功能录入客户信息的。
同时提供客户信息的删除、修改、查找等功能。
2.1.4项目流程设计
a)登录流程图:
图4:
登录流程图
b)用户、客户、汽车、出租单、检查单、角色、日志等信息的查询流程图:
图5:
查询流程图
c)用户、客户、汽车、出租单、检查单、角色信息添加流程图:
图6:
添加流程图
d)用户、客户、汽车、出租单、检查单、角色信息修改流程图:
图7:
修改流程图
e)用户、客户、汽车、角色、日志信息删除流程图:
图8:
删除流程图
f)用户权限控制流程图:
图9:
权限控制流程图
g)用户退出流程图:
图10:
退出流程图
2.1.5系统数据库设计
a)表之间的关联关系:
图11:
表关系图
b)表字段说明
表1:
用户信息表
表名
USERS
字段名
类型
长度
是否为空
主键/外键
备注
USERNAME
VARCHAR2()
40
否
主键
用户名
IDENTITY
是
用户身份证
FULLNAME
全名
SEX
NUMBER
1
性别0男、1女
ADDRESS
地址
PHONE
电话
POSITION
职位名称
USERLEVEL
外键
管理员id、外键关联ROLES表的
ROLEID
USERPWD
密码
表2:
权限表
ROLES
角色id
ROLENAME
角色名称
表3:
菜单表
MENUS
MENUID
菜单id
MENUNAME
菜单名称
MENUURL
菜单路径
FATHERID
父菜单id
表4:
功能表
FUNS
FUNID
功能id
FUNNAME
功能名称
FUNURL
功能路径
MENU_ID
所属菜单id、管理MENUS表中的MENUID
表5
ROLES_MENUS
ROLE_ID
主键、外键
角色id、关联ROLES表的主键ROLEID
菜单id、关联MENUS表中的主键MENUID
表6:
汽车信息表
CARS
CARNUMBER
汽车号码
CARTYPE
汽车类型
COLOR
汽车颜色
PRICE
汽车价格
RENTPRICE
汽车出租价格
DEPOIST
出租保证金
ISRENTING
是否归还0否、1是
DESCRIPTION
汽车描述
表7:
出租单表
RENTTABLE
TABLEID
出租单id
IMPREST
预付金
SHOULDPAYPRICE
应付金额
价格
BEGINDATE
DATE
开始时间
SHOULDRETURNDATE
因归还时间
RETURNDATE
归还时间
RENTFLAG
CUSTID
客户id、外键关联CUSTOMERS表中的IDENTITY
CARID
汽车id外键关联CARS表中的CARNUMBER
USERID
用户id、外键关联USERS表中的USERNAME
表8:
检查单表
CHECKTABLE
CHECKID
检查表id
CHECKDATE
检查日期
FIELD
检查场地
PROBLEM
问题
PAYING
支付金额
CHECKUSERID
用户表id、外键关联表USERS中的USERNAME字段
RENTID
出租单id、外键关联表RENTTABLE中的TABLEID
表9:
客户信息表
CUSTOMERS
客户身份证号
CUSTNAME
客户姓名
性别
CAREER
职业
CUSTPWD
2.2技术框架设计
系统技术框架包含web层:
struts1,ORM框架:
hibernate,AOP/IOC框架:
spring。
提高用户体验度使用的Jquery框架。
struts1框架在系统中主要负责表单数据封装成实体类的属性值。
从而省却程序员调用request.getParamater()一个个设置属性。
同时可以将实体类中的属性值使用struts1的标签显示到表单中。
通过配置struts.xml中的action节点可以简单有效的配置程序流程。
程序根据action方法的返回值就能完成跳转;
用户不用使用request.forward()进行转发或调用response.sendRedict()方法进行重定向。
hibernate框架能为程序员很方便的操作实体类到数据库表字段、数据库表字段到实体类属性的映射处理。
hibernate框架将实体类的set、list、object处理为数据库表字段之间的外键关联关系、分别处理为1:
N,1:
1,N:
N等关系。
hibernate框架为了提高系统效率、为用户提供两种抓取策略:
立即抓取、延迟加载。
配置为延迟加载的抓取策略,hibernate框架会在用户使用到该对象是才想数据库请求数据。
这样就能很大程度上提高系统的反应时间和系统利用效率。
spring框架为项目各模块之间的解耦提供了很简便的使用。
通过spring框架的IOC功能、将个模块所需的bean通过注入方式就行解耦。
spring框架同时提供管理bean生命周期的功能。
通过spring框架的AOP功能,能很清楚的控制程序流程、完成程序执行的各种数据验证、异常处理等功能。
同时spring提供的数据库DDL操作的事物控制、同时提供跨数据库之间的事物控制等强大功能。
Jquery框架为程序员操作htmlDOM提供简单而强大的支持。
Jquery框架同时封装很多种AJAX方法、提高了代码复用程度、和代码编写效率。
2.3功能模块设计
2.3.1系统功能模块图
图22:
功能模块图
2.3.2功能模块详细说明
表10:
功能模块说明表
汽车租赁系统
序号
模块名称
子功能
登录/退出模块
1、登录功能
用户使用系统前必须成功登录系统。
登录/退出模块为系统基本模块、为系统安全运行提供保障。
2、退出功能
更改用户的状态、完成日志记录等操作。
2
权限管理模块
规定用户只能操作自己权限内的功能。
3
用户管理模块
1、添加用户功能
添加用户信息
完成用户信息的增、删、改、查功能
2、查询用户功能
查询用户信息
3、修改用户功能
修改用户信息
4、删除用户功能
删除用户信息
4
客户管理模块
1、添加客户功能
添加客户信息
完成客户信息的增、删、改、查功能
2、查询客户功能
查询客户信息
3、修改客户功能
修改客户信息
4、删除客户功能
删除客户信息
5
汽车管理模块
1、添加汽车功能
添加汽车信息
完成汽车信息的增、删、改、查功能
2、查询汽车功能
查询汽车信息
3、修改汽车功能
修改汽车信息
4、删除汽车功能
删除汽车信息
6
业务管理模块
1、出租单管理功能
出租单信息的增、删、改、查
完成相应业务功能
2、检查单管理功能
检查单的增、改、查功能
3、出租业务功能
处理出租业务
4、还车业务功能
处理还车业务
7
业务统计模块
1、当月应还汽车功能
系统统计业务
8
系统管理模块
1、角色管理功能
角色信息的增、删、改、查功能
系统基础信息管理
2、日志管理功能
日志信息的查、删功能
9
个人信息管理模块
1、修改密码功能
3.项目功能描述
3.1项目功能列表
表11:
项目功能列表
所属模块
登录功能
退出功能
添加用户功能
删除用户功能
修改用户功能
查询用户功能
添加客户功能
删除客户功能
修改客户功能
10
查询客户功能
11
添加汽车功能
12
删除汽车功能
13
修改汽车功能
14
查询汽车功能
15
添加出租单功能
16
修改出租单功能
17
查询出租单功能
18
添加检查单功能
19
修改检查单功能
20
查询检查单功能
21
查询当月应还汽车功能
22
添加角色功能
23
删除角色功能
24
修改角色功能
25
查询角色功能
26
添加日志功能
27
删除日志功能
28
查询日志功能
29
修改个人信息功能
30
权限控制功能
3.2项目功能实现
3.2.1登录功能
用户通过登录页面、输入登录用户名/密码/验证码信息后提交表单、页面js判断登录数据是否符合格式、如果数据不符合格式页面显示提示信息、并禁止表单提交。
当用户表单数据符合格式后表单提交、登录action获取表单数据并通过业务层调用持久层方法搜索数据库中数据、判断用户名/密码是否匹配。
如果匹配将用户信息存到session中、并跳转到首页。
否则跳转到登录页面并显示登录失败信息。
图23:
登录页面
3.2.2退出功能
登录成功用户、通过退出登录链接、访问退出登录action、退出登录action中删除session中存储的用户信息、并完成日志记录操作、跳转到登录页面。
图24:
退出页面
3.2.3添加用户功能
登录用户通过添加用户页面、提交表单、页面js判断数据是否符合格式、如果不符合则显示提示信息、表单不提交、否则访问添加用户action、添加用户action通过业务层访问持久层、并调用保存方法。
持久层将保存结果返回给添加用户action、如果添加成功将跳转到添加用户页面、并显示添加成功信息。
否则将跳转到添加用户页面、页面表单中数据将被保留下来、并显示添加失败信息。
图25添加用户页面
3.2.4删除用户功能
登录用户通过删除用户页面、提交表单、页面js判断提交信息是否完整、如果不完整则显示提示信息、表单不提交。
否则提交到删除用户action、删除用户action通过业务层访问持久层、并调用删除方法。
持久层将删除结果返回给删除用户action、如果删除成功、将跳转到查询用户action。
否则跳转到删除用户页面并显示删除失败信息。
图26删除用户页面
3.2.5修改用户功能
登录用户通过修改用户页面、提交表单、页面js判断信息是否被修改、如果没有修改过、则显示提示信息、提示用户信息没有修改不用保存、表单不提交。
否则js判断修改的数据是否符合格式、如果不符合则显示提示信息、提示用户相应数据不符合要求、表单不提交。
否则访问修改用户action、修改用户action通过业务层访问持久层、并调用修改方法、持久层将修改结果返回给修改用户action、如果修改成功、将跳转到查询用户action。
否则跳转到修改用户页面并显示修改失败信息。
图27修改用户页面
3.2.6查询用户功能
登录用户通过查询用户页面、提交表单、页面js判断查询数据是否符合格式。
如果不符合格式、显示提示信息、表单不提交,否则访问查询用户action、查询用户action通过业务层访问持久层、并调用查询方法、持久层查询结果返回给查询用户action、查询用户action将跳转到显示查询用户结果页面。
图28查询用户页面
3.2.7添加客户功能
登录用户通过添加客户页面、提交表单、页面js判断数据是否符合格式、如果不符合则显示提示信息、表单不提交、否则访问添加客户action、添加客户action通过业务层访问持久层、并调用保存方法。
持久层将保存结果返回给添加客户action、如果添加成功将跳转到添加客户页面、并显示添加成功信息。
否则将跳转到添加客户页面、页面表单中数据将被保留下来、并显示添加失败信息。
图29添加客户页面
3.2.8删除客户功能
登录用户通过删除客户页面、提交表单、页面js判断提交信息是否完整、如果不完整则显示提示信息、表单不提交。
否则提交到删除客户action、删除客户action通过业务层访问持久层、并调用删除方法。
持久层将删除结果返回给删除客户action、如果删除成功、将跳转到查询客户action。
否则跳转到删除客户页面并显示删除失败信息。
图30删除客户页面
3.2.9修改客户功能
登录用户通过修改客户页面、提交表单、页面js判断客户信息是否被修改、如果没有修改过、则显示提示信息、提示客户信息没有修改不用保存、表单不提交。
否则访问修改客户action、修改客户action通过业务层访问持久层、并调用修改方法、持久层将修改结果返回给修改客户action、如果修改成功、将跳转到查询客户action。
否则跳转到修改客户页面并显示修改失败信息。
图31修改客户页面
3.2.10查询客户功能
登录用户通过查询客户页面、提交表单、页面js判断查询数据是否符合格式。
如果不符合格式、显示提示信息、表单不提交,否则访问查询客户action、查询客户action通过业务层访问持久层、并调用查询方法、持久层查询结果返回给查询客户action、查询客户action将跳转到显示查询客户结果页面。
图32查询客户页面
3.2.11添加汽车功能
登录用户通过添加汽车页面、提交表单、页面js判断数据是否符合格式、如果不符合则显示提示信息、表单不提交、否则访问添加汽车action、添加汽车action通过业务层访问持久层、并调用保存方法。
持久层将保存结果返回给添加汽车action、如果添加成功将跳转到添加汽车页面、并显示添加成功信息。
否则将跳转到添加汽车页面、页面表单中数据将被保留下来、并显示添加失败信息。
图33添加汽车页面
3.2.12删除汽车功能
登录用户通过删除汽车页面、提交表单、页面js判断提交信息是否完整、如果不完整则显示提示信息、表单不提交。
否则提交到删除汽车action、删除汽车action通过业务层访问持久层、并调用删除方法。
持久层将删除结果返回给删除汽车action、如果删除成功、将跳转到查询汽车action。
否则跳转到删除汽车页面并显示删除失败信息。
图34删除汽车页面
3.2.13修改汽车功能
登录用户通过修改汽车页面、提交表单、页面js判断汽车信息是否被修改、如果没有修改过、则显示提示信息、提示汽车信息没有修改不用保存、表单不提交。
否则访问修改汽车action、修改汽车action通过业务层访问持久层、并调用修改方法、持久层将修改结果返回给修改汽车action、如果修改成功、将跳转到查询汽车action。
否则跳转到修改汽车页面并显示修改失败信息。
图35修改汽车页面
3.2.14查询汽车功能
登录用户通过查询汽车页面、提交表单、页面js判断查询数据是否符合格式。
如果不符合格式、显示提示信息、表单不提交,否则访问查询汽车action、查询汽车action通过业务层访问持久层、并调用查询方法、持久层查询结果返回给查询汽车action、查询汽车action将跳转到显示查询汽车结果页面。
图37查询汽车页面
3.2.15添加出租单功能
登录用户通过添加出租单页面、提交表单、页面js判断数据是否符合格式、如果不符合则显示提示信息、表单不提交、否则访问添加出租单action、添加出租单action通过业务层访问持久层、并调用保存方法。
持久层将保存结果返回给添加