汽车租赁系统项目报告.docx
- 文档编号:23498080
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:44
- 大小:1.32MB
汽车租赁系统项目报告.docx
《汽车租赁系统项目报告.docx》由会员分享,可在线阅读,更多相关《汽车租赁系统项目报告.docx(44页珍藏版)》请在冰豆网上搜索。
汽车租赁系统项目报告
封面:
XX大学毕业设计(论文)
题目:
汽车租赁系统的设计与实现
指导教师:
职称:
学生姓名:
学号:
专业:
院(系):
完成时间:
年月日
1.项目背景
1.1项目开发目标
通过开发该项目,加深自己对ssh框架的理解和应用,加强自己对jquery,json的使用,熟练掌握css来为页面进行美化,熟悉oracle数据库的配置和使用。
使自己在学校中所学的技术融合在一起、使自己学的更加深入、更加直接,从而让自己能更好的完成项目的编写。
1.2项目来源
实训项目
1.3开发目标
1.3.1允许管理人员登录、使用该系统。
1.3.2系统根据登录用户的权限生成不同的功能菜单。
其中超级管理员的权限最大、可以使用全部功能菜单-----(1、用户管理2、客户管理3、汽车管理4、业务管理5、业务统计6、系统管理)。
1.3.2允许超级管理员使用用户管理功能、对用户信息进行增、删、改、查等操作。
1.3.3允许超级管理员及其他管理人员使用客户管理功能、对客户信息进行增、删、改、查等操作。
1.3.4允许超级管理员及其他管理人员使用汽车管理功能、对汽车信息进行增、删、改、查等操作。
1.3.5允许超级管理员及其他管理人员使用业务管理功能、对出租单、检查单信息进行增、删、改、查等操作。
1.3.6允许超级管理员及其他管理人员使用业务统计功能、对当月应还汽车信息进行查看。
同时还可查看汽车信息、出租单信息、用户信息等信息的统一预览。
1.3.7允许超级管理员及其他管理人员使用系统管理功能、对角色、日志信息进行增、删、改、查等操作。
1.3.8允许用户更改自己的密码。
1.3.9没有登录的用户不能使用系统功能。
1.3.10软件结构图示:
图1:
软件结构图
2.项目设计
2.1项目总体设计
2.1.1项目设计模式设计
项目使用软件设计模式中的MVC设计模式;
其中Model层是普通的java类,该类中只包含属性和属性的get和set方法,而且类中的每个属性均对应数据库表中的一个字段;
View层为jsp页面,页面美化是html+css共同完成,为了提高客户体验度,项目中使用jquery框架。
Controller层,有struts1框架负责控制,同时整合hibernate,spring框架,共同完成系统业务处理,流程控制。
2.1.2项目包设计
图2:
包模块图
图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
VARCHAR2()
40
是
用户身份证
FULLNAME
VARCHAR2()
40
是
全名
SEX
NUMBER
1
是
性别0男、1女
ADDRESS
VARCHAR2()
40
是
地址
PHONE
NUMBER
40
是
电话
POSITION
VARCHAR2()
40
是
职位名称
USERLEVEL
NUMBER
40
是
外键
管理员id、外键关联ROLES表的
ROLEID
USERPWD
VARCHAR2()
40
是
密码
表2:
权限表
表名
ROLES
字段名
类型
长度
是否为空
主键/外键
备注
ROLEID
NUMBER
40
否
主键
角色id
ROLENAME
VARCHAR2()
40
是
角色名称
表3:
菜单表
表名
MENUS
字段名
类型
长度
是否为空
主键/外键
备注
MENUID
NUMBER
40
否
主键
菜单id
MENUNAME
VARCHAR2()
40
是
菜单名称
MENUURL
VARCHAR2()
40
是
菜单路径
FATHERID
NUMBER
40
是
父菜单id
表4:
功能表
表名
FUNS
字段名
类型
长度
是否为空
主键/外键
备注
FUNID
NUMBER
40
否
主键
功能id
FUNNAME
VARCHAR2()
40
是
功能名称
FUNURL
VARCHAR2()
40
是
功能路径
MENU_ID
NUMBER
40
是
外键
所属菜单id、管理MENUS表中的MENUID
表5
表名
ROLES_MENUS
字段名
类型
长度
是否为空
主键/外键
备注
ROLE_ID
NUMBER
40
否
主键、外键
角色id、关联ROLES表的主键ROLEID
MENU_ID
NUMBER
40
否
主键、外键
菜单id、关联MENUS表中的主键MENUID
表6:
汽车信息表
表名
CARS
字段名
类型
长度
是否为空
主键/外键
备注
CARNUMBER
VARCHAR2()
40
否
主键
汽车号码
CARTYPE
VARCHAR2()
40
是
汽车类型
COLOR
VARCHAR2()
40
是
汽车颜色
PRICE
NUMBER
40
是
汽车价格
RENTPRICE
NUMBER
40
是
汽车出租价格
DEPOIST
NUMBER
40
是
出租保证金
ISRENTING
NUMBER
1
是
是否归还0否、1是
DESCRIPTION
VARCHAR2()
40
是
汽车描述
表7:
出租单表
表名
RENTTABLE
字段名
类型
长度
是否为空
主键/外键
备注
TABLEID
NUMBER
40
否
主键
出租单id
IMPREST
NUMBER
40
是
预付金
SHOULDPAYPRICE
NUMBER
40
是
应付金额
PRICE
NUMBER
40
是
价格
BEGINDATE
DATE
是
开始时间
SHOULDRETURNDATE
DATE
是
因归还时间
RETURNDATE
DATE
是
归还时间
RENTFLAG
NUMBER
1
是
是否归还0否、1是
CUSTID
VARCHAR2()
40
是
外键
客户id、外键关联CUSTOMERS表中的IDENTITY
CARID
VARCHAR2()
40
是
外键
汽车id外键关联CARS表中的CARNUMBER
USERID
VARCHAR2()
40
是
外键
用户id、外键关联USERS表中的USERNAME
表8:
检查单表
表名
CHECKTABLE
字段名
类型
长度
是否为空
主键/外键
备注
CHECKID
NUMBER
40
否
主键
检查表id
CHECKDATE
DATE
是
检查日期
FIELD
VARCHAR2()
40
是
检查场地
PROBLEM
VARCHAR2()
40
是
问题
PAYING
NUMBER
40
是
支付金额
CHECKUSERID
VARCHAR2()
40
是
外键
用户表id、外键关联表USERS中的USERNAME字段
RENTID
NUMBER
40
是
外键
出租单id、外键关联表RENTTABLE中的TABLEID
表9:
客户信息表
表名
CUSTOMERS
字段名
类型
长度
是否为空
主键/外键
备注
IDENTITY
VARCHAR2()
40
否
主键
客户身份证号
CUSTNAME
VARCHAR2()
40
是
客户姓名
SEX
NUMBER
1
是
性别
ADDRESS
VARCHAR2()
40
是
地址
PHONE
NUMBER
40
是
电话
CAREER
VARCHAR2()
40
是
职业
CUSTPWD
VARCHAR2()
40
是
密码
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:
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
登录/退出模块
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:
项目功能列表
汽车租赁系统
序号
功能名称
所属模块
1
登录功能
登录/退出模块
2
退出功能
3
添加用户功能
用户管理模块
4
删除用户功能
5
修改用户功能
6
查询用户功能
7
添加客户功能
客户管理模块
8
删除客户功能
9
修改客户功能
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判断客户信息是否被修改、如果没有修改过、则显示提示信息、提示客户信息没有修改不用保存、表单不提交。
否则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判断汽车信息是否被修改、如果没有修改过、则显示提示信息、提示汽车信息没有修改不用保存、表单不提交。
否则js判断修改的数据是否符合格式、如果不符合则显示提示信息、提示用户相应数据不符合要求、表单不提交。
否则访问修改汽车action、修改汽车action通过业务层访问持久层、并调用修改方法、持久层将修改结果返回给修改汽车action、如果修改成功、将跳转到查询汽车action。
否则跳转到修改汽车页面并显示修改失败信息。
图35修改汽车页面
3.2.14查询汽车功能
登录用户通过查询汽车页面、提交表单、页面js判断查询数据是否符合格式。
如果不符合格式、显示提示信息、表单不提交,否则访问查询汽车action、查询汽车action通过业务层访问持久层、并调用查询方法、持久层查询结果返回给查询汽车action、查询汽车action将跳转到显示查询汽车结果页面。
图37查询汽车页面
3.2.15添加出租单功能
登录用户通过添加出租单页面、提交表单、页面js判断数据是否符合格式、如果不符合则显示提示信息、表单不提交、否则访问添加出租单action、添加出租单action通过业务层访问持久层、并调用保
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汽车 租赁 系统 项目 报告