基于java的汽车租赁管理系统的设计与实现(含源文件)

欢迎添加微信互相交流学习哦!

二维码

项目源码:https://gitee.com/oklongmm/biye

摘 要
随着汽车工业的发展和汽车在现实生活中的普及,汽车租赁成为近年来兴起的一个新行业。为规范管理和经营行为,减少经营成本,提高工作效率,开发汽车租赁管理系统变得十分有必要。该汽车租赁管理系统的设计目的是让繁杂的租赁操作变简单,变高效。对于汽车租赁公司特别是资金不充分的企业尤为适合,该系统带来的方便与效率化,必然为公司减少财务支出,提高工作效率。
本系统使用MySQL数据库和Java语言实现了一个基于JSP的汽车租赁管理系统。其开发主要包括前端应用程序的开发以及后台数据库的建立和维护两个方面。前台操作包括:用户可以进行会员注册,浏览查询车辆信息,查看加盟商信息,给管理员留言,对车辆进行在线预定。后台操作包括:管理会员信息资料,管理新闻信息,管理会员的留言,管理车辆信息,管理加盟商信息,管理订单信息等。
该系统以网络为平台,界面简洁,操作简单,易于掌握,简化租赁活动记录手续,提高了租赁周转时间。

关键词:汽车租赁;管理系统;MySQL; JSP
 
 
Abstract


With the development of the automobile industry and the popularity of the vehicles in real life, the car rental to become a new industry for the rise in recent years. Regulate the management and conduct of operations, reduce operating costs, improve efficiency, the development of car rental management system has become very necessary. The car rental management system is designed to give the complex's leasing operation simple and efficient change. Particularly suitable for the car rental companies, especially the funds are not fully enterprise, the system brings convenience and efficiency, will inevitably reduce financial expenditures for the company, improve work efficiency.
The system uses MySQL database and the Java language to implement a JSP-based car rental management system. Includes the development of front-end application development as well as the establishment and maintenance of two aspects of the back-end database. The front desk operations including: users can Register, browse to check vehicle information, view franchisee information, a message to the administrator, online booking of the vehicle. Background operation include: manage member information, manage news and information, management, members of the message, to manage vehicle information, management franchisee information, manage order information.
The system to the network as a platform, simple interface, simple operation, easy to grasp, to simplify the record formalities for leasing activities, lease turn-around time.

Keywords: Car rental; Management system; MySQL; JSP 
目  录

1 绪论    1
1.1 系统背景    1
1.2 系统目标    2
1.3 系统开发环境和技术介绍    2
1.3.1 技术介绍    2
1.3.2 系统开发环境    5
1.4 章节安排    5
2 系统分析    6
2.1 可行性分析    6
2.1.1 操作可行性分析    6
2.1.2 开发环境的选择    7
2.2 需求分析    8
2.2.1 功能模块需求    8
2.2.2 系统数据流图    11
2.2.3 数据字典    14
3 系统设计    17
3.1 概要设计    17
3.1.1 设计原则    17
3.1.2 系统结构分析与设计    17
3.1.3 系统三层模式    18
3.2 数据库设计    20
4 系统实现    24
4.1 用户注册    24
4.2 前台功能模块    24
4.2.1 前台默认界面    24
4.2.2 车型报价    26
4.2.3 在线订车    27
4.3 后台功能模块    27
4.3.1 后台默认界面    28
4.3.2 用户管理    28
4.3.3 租车管理    29
4.3.4 订单管理    30
4.3.5 留言管理    33
4.4 问题解决    35
5 系统测试    38
5.1 系统测试    38
5.2 系统测试方案    38
5.3 系统检测过程    39
6 总结    41
参考文献    42
致谢    43
 
1 绪论
1.1 系统背景
随着经济的发展和生活水平的提高,人们对汽车的需求越来越大,但中国现状是现有汽车难以充分满足需求,购买私家车还不能普及。从个人角度来说,租车是最好的,买车一次性投入大,购车的手续多,养车费用高,而私家车的利用率一般不高,闲置时间较长,出现交通事故后,处理手续太烦琐。而租车则有很大的灵活性,既不会占用大量资金,也不会出现闲置,车况有保证,出差到外地也可以驾驶车辆,租赁车型可选择,满足客户多样化的需求。从社会角度看,租赁车辆属于公共用车的范畴,它既缓解了现阶段财政控购与企业单位用车之间的矛盾,提高了资金利用率,同时也符合社会车辆总量控制原则,可在一定程度上缓解交通拥挤。从发展角度看,汽车租赁业的发展不仅可以带动中国的新车销售,同时还可以推动中国二手车的经营,为旧车交易注入新的资源。汽车租赁的特殊作用,可以带动多种相关行业的发展,融合产业间的联系,成为第二产业与第三产业间的联系纽带。
得益于以上几个方面的原因,汽车租赁业在我国迅速崛起,业务量也是越来越多,对信息的处理要求也是越来越高,传统的汽车管理人员已不满足汽车租赁业务的需求发展。租赁管理就是对车辆信息和客户信息的管理,主要包括车辆的出租状态、车辆的基本信息、定单的管理等。这些操作过程之间的关系复杂,其中有一对一的关系,一对多的关系,也有多对多的关系,所有这些操作使管理工作变得量大而又复杂。现实生活中还有很多汽车租赁公司采用人工管理,直接导致了一些不可避免的错误产生,服务质量低下。汽车租赁管理系统的开发使得这一状况得到了根本的改善。
本系统充分利用计算机庞大的存储空间,高性能的处理效率,高度可靠的数据安全,清晰的可视化数据等这些资源,通过合理有效地利用这些资源使其真正达到减少劳动力,提高劳动效率的目的。根据目前的需求,设计了一套具有网络功能的汽车租赁管理系统,客户可以通过网络查阅相关的汽车租赁情况,企业的管理人员可以根据客户的实际情况进行管理,具有很强的实用性,操作简易方便,提高了工作效率。
 
1.2 系统目标
使用MySQL数据库和JSP设计完成的汽车租赁管理系统,一方面可以实现租赁车辆信息共享。管理员上传租赁车辆的一些描述信息、图片等,用户就可以在线浏览,对所属的租赁车辆有更感官的了解。当遇到不解的问题,还可以在线留言,等待管理员的解答;另一方面通过Internet网广泛平台以及计算机庞大的存储空间,高性能的处理效率,高度可靠的数据安全等优点,准确的记录租赁信息,计算租赁排行,并将信息结果清晰地显示出来便于管理员管理。将本系统应用到租赁汽车行业中,会大大增加租赁会员的数量,客户也会及时得到更新的租赁信息等。同时也方便管理员查看租赁情况,减少人工统计的时间,节省成本,加快汽车租赁的周期。
1.3 系统开发环境和技术介绍
1.3.1 技术介绍
本系统采用MyEclipse8.0作为开发工具,MySQL5.1作为数据库用来存储系统数据。MyEclipse8.0整合其他很多工具(比如Tomcat等等)到它的IDE中一起工作,程序员可以方便有效地开发项目。MySQL5.1使用了先进的数据库结构,可以为中型的Web站点和企业应用提供优良的扩展性。同时MySQL5.1还为用户提供了重要的安全性处理功能,为用户的数据安全提供了可靠的保证。
(1) JSP技术
为了快速方便地进行动态系统的开发,JSP在以下几个方面做了改进,使其成为快速建立跨平台的动态系统的首选方案。
① 将内容的生成和显示进行分离
使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且将其捆绑在脚本中,所有的脚本在服务器端运行。由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。
在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容,并且将结果以HTML(或者XML)页面的形式发送回浏览器。这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。
 
② 可重用组件
绝大多数JSP页面依赖于可重用的、跨平台的组件来执行应用程序所要求的复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者和客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
③ 采用标识
Web页面开发人员不会都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性等功能。
④ 适应平台
几乎所有平台都支持Java,JSP+JavaBeans可以在大多数平台下运行。将程序从一个平台移植到另外一个平台时,JSP和JavaBeans甚至不用重新编译就可以使用,因为Java字节码都是标准的与平台无关的。
⑤ 数据库连接
Java中连接数据库的技术是JDBC,Java程序通过JDBC驱动程序与数据库相连,执行查询、提取数据等操作。
(2) 级联样式表
CSS是Cascading Style Sheets(层叠样式表单)的简称,更多的人把它称作样式表。CSS语句可以实现许多需要专业软件才可以达到的效果,利用其属性可以设置字体、颜色、背景等页面格式;利用定位可以使页面布局更加规范;利用滤镜可以使页面产生多媒体效果等特点。
实际上CSS的代码都是由一些最基本的语句构成的。它的基本语句的结构是:选择符{属性:属性值}。独立编辑好的CSS文档有两种方法加入到HTML文档中:一种是把CSS文档放到<head>文档中;另一种方法是把编辑好的CSS文档保存成“.CSS”文件,然后在<head>中定义。这两种方法中第二种方法非常适宜同时定义多个文档,它能使多个文档同时使用相同的样式,从而减少了大量的冗余代码。 
   (3) 开发工具MyEclipse8.0的简介及特点
MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大地提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML、Struts、JSP、CSS、Javascript、Spring、SQL、Hibernate等技术。
在结构上,MyEclipse的特征可以被分为7类:JavaEE模型;WEB开发工具;EJB开发工具;应用程序服务器的连接器;JavaEE项目部署服务;数据库服务;MyEclipse整合帮助。
(4) 服务器tomcat的简介及特点
Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
(5) 数据库mysql的简介及特点
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购,而2009年SUN又被Oracle收购。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就加快了速度并提高了灵活性。SQL是用于访问数据库的最常用标准化语言,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体开发成本。
1.3.2 系统开发环境
系统开发环境主要有计算机的硬件平台和软件平台。
(1) 硬件平台:
处理器:P4 2.0GHz
内存:1G以上
(2) 软件平台:
操作系统:Windows XP(推荐)/Windows 2000/Windows 2003
数据库:MySQL5.1
开发环境:JAVA 1.6
开发工具:Myeclipse8.0
开发语言:JSP
服务器:Tomcat 5.5
浏览器:IE 6.0以上
分辨率:最佳效果1024×768像素
1.4 章节安排
本系统采用MVC框架,Java语言及MyEclipse开发平台完成基于JSP的汽车租赁管理系统的设计与开发。
主要分为六章,内容安排如下:
第1章介绍设计的研究背景及其系统开发环境和相关技术介绍。
第2章主要对本系统进行可行性分析及其系统的需求分析。
第3章介绍系统总体结构分析与设计和数据库的设计及说明。
第4章阐述系统系统功能设计以及主要功能模块的实现等内容。
第5章系统测试的相关知识及其本系统测试的详细信息。
第6章对全文的总结和对未来工作的展望 
2 系统分析
2.1 可行性分析
2.1.1 操作可行性分析
(1) 经济方面可行性
现在计算机的价格已经十分低廉,性能却有了很大的进步。而开发本系统对系统开发者来说,并不需要太高的成本支出,开发周期不需太长,节省了人力、物力、财力、资源,所以本系统在经济上是可行的。
(2) 技术上可行性
根据新系统目标来衡量所需的技术是否具备,一般可从硬件、软件的性能要求、环境条件、技术人员和数量等方面去考虑和分析,其中开发人员的技术力量应首先考虑能力与水平,人员要求能够熟练的运用开发工具,具有一定的开发编程能力,熟悉汽车租赁业务流程的基本功能。
通过课程设计MVC框架编程训练,掌握了架构的使用规则,应用模块组件的实现、测试、和维护。使用Tomcat服务器实现了系统的Browser/Server结构。
系统的开发采用优秀的关系数据库来管理系统,MySQL5.1作为本系统的数据库能和windows以及当前各种系统很好的兼容搭配。
使用MyEclipse作为系统开发的开发环境,利用它在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高了工作效率。MyEclipse完备的编码、调试、测试和发布功能,完整支持HTML、Struts、JSF、CSS、Java script、SQL、Hibernate等,这一特点非常有利于以后对本系统的扩展与修改。
综上所述本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此它在技术上是可行的。
(3) 性能效益可行性
所开发的系统能满足汽车租赁管理系统的基本功能要求和展示网站的特点风格,在处理运算速度、存储量以及响应时间上完全能满足系统要求。
根据上述三方面进行分析研究后,认为该项目的开发是可行的。
 
2.1.2 开发环境的选择
(1) B/S结构
B/S结构(Browser/Server结构)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式数据库应用相对易于把握,成本也是较低的。它是一次性到位的开发,能实现不同的人员从不同的地点以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库,它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
B/S结构最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,系统可以自动分配给用户一个账号进入系统。
C/S(客户机服务器模式)结构软件分为客户机和服务器两层,客户机不是毫无运算能力的输入、输出设备,而是具有了一定的数据处理和数据存储能力,通过把应用软件的计算和数据合理地分配在客户机和服务器两端,可以有效地降低网络通信量和服务器运算量。由于服务器连接个数和数据通信量的限制,这种结构的软件适于在用户数目不多的局域网内使用。
B/S(浏览器服务器模式)是随着Internet技术的兴起,对C/S结构的一种改进。在这种结构下,软件应用的业务逻辑完全在应用服务器端实现,用户表现完全在Web服务器实现,客户端只需要浏览器即可进行业务处理,是一种全新的软件系统构造技术。这种结构已经成为当今应用软件的首选体系结构。
 
(2) MVC架构
MVC(Model View Controller)模型(model)-视图(view)-控制器(controller)。
图2-1 MVC三成架构图
MVC是三个单词的缩写,分别为:模型(Model)、视图(View)和控制(Controller)。MVC模式的目的就是实现Web系统的职能分工。Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。View层用于与用户的交互,通常用JSP来实现。Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
2.2 需求分析
2.2.1 功能模块需求
根据汽车租赁管理系统任务需求将系统划分为前台和后台两大模块,其中系统用户又分为不同权限的用户:游客、会员、超级管理员三种权限用户。
(1) 游客的主要功能需求
游客权限只限于前台操作,可以浏览租赁车辆信息,例如:车辆的座位数、日租金额、月租金额、租车押金等车辆信息;游客可以进行会员注册,填写信息有:用户名(必填项)、密码、邮箱等;游客可以进行匿名留言,留言后管理员在后台可以看到就可以处理用户的留言。

图2-2 游客功能图
(2) 会员的主要功能需求
在前台会员可以浏览租赁车辆信息,同游客一样可以查看租赁车辆的基本信息,并且会员可以在线租赁车辆,在车型报价页面查看、预定;会员可以给管理员留言。在后台会员可以查看租赁进度;可以查看租赁车辆订单的历史纪录;可以发布并管理自己的新闻信息;可以管理个人留言信息。
图2-3 会员功能图
 
(3) 管理员的主要功能需求
系统中管理员具有最高的管理权限,前台管理员可以有游客和会员的权利,后台管理员可以管理会员信息;可以对租赁车辆进行管理;可以查看、回复用户的留言;可以对租赁订单进行管理。
 
图2-4 管理员功能图
(4) 本系统的主要功能模块
本系统的主要功能模块有用户信息管理、新闻信息管理、车辆信息管理、加盟商信息管理、订单信息管理、用户留言交互信息管理等。在用户信息管理模块,管理员可以查看、添加、修改、删除会员的信息;新闻信息管理模块,管理员可以查看、添加、修改、删除新闻信息;车辆信息模块,管理员可以查看、添加、修改、删除车辆信息,当需要添加或减少已经添加的车辆信息时可以在修改车辆模块里面添加或减少车辆的数量;加盟商信息模块,管理员可以查看、添加、修改、删除加盟商信息;订单信息模块,管理员可以处理存在的订单信息,查看订单历史记录;留言信息模块,管理员查看并回复客户的留言信息。
 

2.2.2 系统数据流图
通过结构化分析方法,使用数据流图DFD描述系统中数据流程,标识了一个系统的逻辑输入和逻辑输出以及把逻辑转换逻辑输出所需的加工处理。
 
(1) 顶层数据流图
 
图2-6 汽车租赁管理系统顶层数据流图
(2) 第一层数据流图
 
图2-7 汽车租赁管理系统
 
(3) 第二层数据流图
处理游客请求可以划分为浏览查询和注册。处理会员请求可以细化为浏览查询,登录,租赁,留言,添加新闻信息。处理管理员请求可以细化为发布新车辆,车辆更新,订单管理,新闻管理,加盟商管理和留言回复。
 
图2-8 处理游客请求细分

 
图2-9 处理会员请求细分

 
图2-10 处理管理员请求细分
2.2.3 数据字典
(1) 外部实体定义
名称:会员                                                                 
输入数据流:查询信息、发布新闻、租赁订单、添加订单
输出数据流:订单信息、车辆信息、留言信息、新闻信息

名称:游客                                                                
输入数据流:查询信息、注册信息
输出数据流:车辆信息、留言信息、新闻信息

名称:管理员                                                                
输入数据流:车辆更新信息、订单处理、用户信息、新闻信息、加盟商信息、留言信息
输出数据流:查询信息
(2) 处理过程定义
名称:处理游客请求                                     编号:P1                                      
输入数据流:浏览查询要求、注册信息、留言
输出数据流:浏览查询结果

名称:处理会员请求                                     编号:P2                                   
输入数据流:浏览查询要求、留言、租赁订单、发布新闻
输出数据流:浏览查询结果、订单信息、车辆信息

名称:处理管理员请求                                    编号:P3                                  
输入数据流:车辆更新信息、审批申请、报表查询要求、留言
输出数据流:浏览查询信息、处理订单结果、留言回复

(3) 数据流定义
名称:注册信息                                          
数据流简述:注册会员需要填写的信息                 
数据来源:游客              
数据项组成:[用户名|密码|邮箱|性别] 

名称:浏览查询要求                                      
数据流简述:查询车辆信息                 
数据来源:游客、会员              
数据项组成:[车辆信息]

名称:浏览查询结果                                      
数据流简述:显示浏览查询的结果                 
数据去向:会员              
数据项组成:车辆信息、新闻信息、加盟商信息
 
名称:留言                                              
数据流简述:各种留言,用户对服务的评价                
数据来源:游客、会员              
数据项组成:留言,用户对服务的评价

名称:留言回复                                          
数据流简述:回复留言,用户对服务的评价                
数据去向:会员              
数据项组成:回复用户对服务的评价

名称:租赁订单                                          
数据流简述:租赁信息描述
数据来源:会员              
数据项组成:[身份证编号|还车时间|押金]

名称:车辆更新信息                                      
数据流简述:新车辆发布、修改、删除信息
数据来源:管理员             
数据项组成:车辆信息
 
3 系统设计
3.1 概要设计
3.1.1 设计原则
本系统遵循软件工程规定的设计方法和步骤,对系统进行细致地分析研究后,确定了以下基本设计原则:
(1) 实用性:尽量选择成熟实用的技术,使得整个系统有一个安全、稳定的运行环境。
(2) 安全性:为了保障系统平稳正常的运行以及数据的完整性,整个系统必须有很好的安全性,必须加强数据库的安全保密设计。
(3) 开放性:该系统在建设上必须加强标准化及采用统一的技术规范,以实现网络互联、资源共享、高效运行和科学管理。
3.1.2 系统结构分析与设计
系统分析的任务是明确汽车租赁系统开发的目的、系统应用的功能等,主要有以下步骤:
(1) 软件结构分析
对于大型系统的设计,通常分为两个阶段:结构设计和过程设计。
结构设计:确定系统由哪些模块组成,以及这些模块之间的相互关系。过程设计:确定每个模块的处理过程。其中,结构设计是总体设计阶段的任务,而过程设计则是详细设计阶段的任务。这里只是一个小型的数据库管理系统,只分析构成它们最基本的成分以及所有这些成分之间的相互关系。结构分析就是系统分析人员对完成任务的每一个工序进行分析的过程。
系统开发的过程首先是要确定需要建立的表格以及视图,即首先完成数据库的设计,这个过程主要是通过MySQL数据库来完成的;其次,就是进行界面的设计,这个过程是在MyEclipse中完成的,它是系统开发中比较重要的一步,系统界面在用户对软件的评价中占有很大的比重,影响到本系统开发的成功与否。最后就是详细代码的编写以实现系统的主要功能。 
(2) 工作量分析
对工作量的分析是以分析传统汽车租赁管理系统的各种工作量为基础的。分析包括输入量分析、显示分析、文档结构、程序编制、调试状况分析等,一般有问题分析与综合、数据库组织与结构的分析、文档结构分析与编制、子系统处理过程分析、与用户充分交流的分析、显示界面的分析、程序编制、调试状况分析和软件测试对象的分析等。
整个系统主要由前台系统、后台管理两个部分组成。这个系统制作的基本目标是:结构清晰、内容丰富、方便快捷。本着这样的总体设计思想,又将需求分析具体化:
① 用户操作方便,系统的运行可以给用户带来很大的便利。
② 系统的运行可以节省许多资源。
③ 界面友好、美观、大方。
④ 系统的概要设计最重要的就是将系统模块化。 
模块化是指在解决一个复杂问题时自顶向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来成为一个整体,完成整个系统所要求的功能。将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性和可维护性,同时系统设计的模块化也为提高系统的可扩展性和系统的可移植性提供了方便,但模块的划分不能是任意的,应尽量保持其独立性。也就是说每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少,即尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
3.1.3 系统三层模式
本系统采用三层架构模式:表示层(JSP页面),业务逻辑层(DAO模式),控制层(SERVLET),程序中业务的控制由控制器来负责,通过web.xml配置文件可以由系统负责判断某个JSP页面该调用哪个控制类中的哪个方法来处理请求,控制器再将请求的相关参数传递给实例化好的DAO组件,进行页面跳转。
 
(1) 数据库连接
DB包下设计了一个DBuser.java类,有getConnection()方法用来与数据库建立连接,close()方法用来关闭与数据库的连接。
(2) 表示层
表示层主要是系统中的JSP页面,整个系统的实现通过主要页面的跳转实现。
前台实现的功能主要为用户可以浏览系统提供的新闻信息、租赁车辆信息、供应商信息、公司招聘信息、公司的联系方式,并且可以在线预订车辆。前台主要页面有:default.jsp:默认首页;news.jsp:新闻信息页面;chexing.jsp:车型报价页面;order.jsp:在线预订页面;companys.jsp:联盟企业页面;job.jsp:招聘精英页面;company.jsp:联系我们页面;addmessage.jsp:留言页面;index.jsp:后台管理员登录页面。
后台实现的功能为管理用户信息、新闻信息、车辆信息、加盟商信息、订单信息、留言信息。根据用户权限的分配有不同的显示界面。后台主要页面如下图所示:
图3-1 后台主要页面图
(3) 控制层
系统通过CSS文件来控制整个系统的布局和整体框架。后台控制页面updateN.jsp 为updateN.java控制,insertC.jsp为insertC.java控制等。这些控制在web.xml中都有配置。
(4) 业务逻辑层
业务逻辑层是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计。处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。
3.2 数据库设计
本系统数据库选择MySQL数据库,管理软件为Navicat for MySQL。数据库构建步骤为建立数据库连接,创建数据库,构建所需的表格,添加数据。
创建新的数据库,名称为qczl。
图3-2 创建数据库
双击打开刚才新建的数据库,选择表,点击右键新建数据库表,本系统的数据库中包含6张表,分别为:bus(汽车信息表)、franchisee(供应商信息表)、message(留言信息表)、newsinfo(新闻信息表)、orderinfo(订单信息表)、user(会员用户信息表)。
 
(1) 对应的表结构依次是:
表3-1 bus汽车信息表
id    int    11
name    varchar    20
type    varchar    20
weishu    varchar    11
yajin    varchar    20
offer    varchar    50
miaoshu    varchar    1000
daily    varchar    100
month    varchar    100
overtime    varchar    100
img    varchar    1000
remain    int    20
rent    int    20
表3-2 franchisee供应商信息表
id    int    11
name    varchar    20
province    varchar    20
tel    varchar    50
address    varchar    100
ing    varchar    1000
miaoshu    varchar    500
regtime    date    0
top    int    1
表3-3 message留言信息表
id    int    11
sex    varchar    4
name    varchar    20
email    varchar    20
content    varchar    1000
gbdate    varchar    20
redate    varchar    20
recontent    varchar    1000

 
表3-4 newsinfo新闻信息表
newsinfo_id    int    10
newsinfo_uid    varchar    10
newsinfo_title    varchar    200
newsinfo_type    varchar    10
newsinfo_content    varchar    1000
newsinfo_date    date    0
newsinfo_updatetime    date    0
图3-5 orderinfo订单信息表
id    int    11
userid    int    11
busid    int    11
orderdate    varchar    20
returndate    varchar    20
user    varchar    20
tel    varchar    20
needs    varchar    1000
idcard    varchar    18
state    int    1
disable    int    1
表3-6 user会员用户信息表
user_id    int    4
user_name    varchar    20
user_password    varchar    20
user_sex    varchar    2
user_email    varchar    50
user_regtime    varchar    0
user_type    varchar    12

 
(2) 表与表之间的关系
根据上述表的数据结构,列出了数据库表与表之间的关联,表中的主键以及其它字段属性。如下图所示:
图3-3 表间关系图
 
4 系统实现
4.1 用户注册
用户注册验证成功后,则跳转到登录页面进行登录操作;如果注册验证不成功则提示用户注册失败原因重新填写注册信息。
注册页面流程图如下图所示:
 
图4-1 注册页面流程图
4.2 前台功能模块
导航栏里面有7大模块,分别为:首页、新闻中心、车型报价、在线订车、联盟企业、诚聘精英、联系我们,对应7个前台页面。前台默认首页从数据库里面调出最新上传的五款车辆信息,以及最新上传的前十条新闻记录。新闻中心页面显示的主要内容是从数据库里面按照时间倒序调出的新闻信息。联盟企业页面列出所有加盟商的信息,包括供应商的名称、联系电话、公司地址、公司的一些介绍、公司商标等。招聘精英页面则显示公司的一些招聘信息。联系我们页面列出公司的一些联系方式。下面则主要介绍本系统中主要功能模块。
4.2.1 前台默认界面
前台默认首页上面从数据库里面调出最新上传的五款车辆信息以及最新上传的前十条新闻记录和公司的一些介绍图片。
图4-2 前台默认页面
核心代码:
<%
List list = car.CarDao.top5();
Iterator it = list.iterator();
while(it.hasNext()){
Carinfo carinfo = (Carinfo)it.next() ;
%>
<div class="fl list_left">
<img src="<%=carinfo.getImg() %>" width="255" height="200" />
</div>
<div class="fl list_right">
    <div class="list_right_test">
<h1>
<b><%=carinfo.getName() %></b>
</h1>
</div>
    <h2>:<%=carinfo.getOffer() %></h2>
    <p><%=carinfo.getMiaoshu() %></p>                            
</div>
<%
}
%>
 
4.2.2 车型报价
列出所有的车辆信息,包括车辆的图片、车名、车位数、车供应商以及车辆的日租、月租、押金、超时费(元/每小时)的具体金额。用户可以在此查询出来想要租赁的车辆并点击我要租赁图片链接,经具体的车辆信息传到在线订车(order.jsp)的页面上进行在线对车的核对,并填写下一步信息进行车辆的在线订购。
图4-3 车型报价页面
核心代码:
<form method="post" action="csearchC.jsp" name="post">    
<table width="1800%" border="0" align="center"
 cellpadding="3" cellspacing="6">
        <tr>
          <td>查询:
            <select name="select"><!--
                <option >选择类型</option>
                --><option selected="selected" value="name">名称</option>
                <option value="offer">供应商</option>
            </select></td>
        </tr>
        <tr>
          <td>关 键 字:
            <INPUT name="keyword" class="autoline02" size=15> </td>
        </tr>
        <tr>
<td align="center"><input type="submit" name="submit">
</input></td>
        </tr>
    </table>
</form>    
4.2.3 在线订车
从上一个页面chexing.jsp接受要预订的车辆信息,让用户进行预订前的核对,系统自动生成订单的订单号,用户需要记下自己的订单号,接着填写预定该汽车所需要的信息,包括起租时间、还车时间、订单人的姓名、订单人的联系电话、订单人的身份证号以及客户所需要的一些特殊要求,填写好信息后用户可点击“确认订单信息”进行预订。
如果客户没有从车型报价页面跳转过来,这样就没有具体的参数显示,系统会默认用“***”代替具体的信息值,并提示用户在车型报价页面进行车辆挑选、预订。
图4-4 在线订车页面
4.3 后台功能模块
后台模块有管理用户会员信息、管理新闻信息、管理车辆信息、管理加盟商信息、管理订单信息、管理用户留言信息。根据用户权限的不同,有不同的显示界面。管理员有最高的权限,下面介绍后台的主要功能模块。
 
4.3.1 后台默认界面
此界面为系统后台登陆后的默认界面。
 
图4-5 后台默认页面
4.3.2 用户管理
此页面为系统用户的管理界面,只有系统管理员才可以管理用户,所以只有是系统管理员登陆的时候才显示此界面,而普通会员则不显示此界面。
 
图4-6 用户管理页面
 
添加用户,包括用户名、性别、登录密码、用户邮箱,确认信息后,点击提交按钮交给系统进行用户的添加处理。
 
图4-7 添加用户页面
4.3.3 租车管理
此页面是管理租赁车辆的管理模块,列出所有车辆信息,管理员可以点击查看按钮进行详细查阅,并可进行修改;点击删除按钮时删除该车辆对应的记录。
 
图4-8 后台租车管理页面
 
添加车辆信息界面,填写汽车车名、汽车类型、车辆的服务商、车位、日租金额、月租金额、车辆押金、更新汽车的数量等信息,用户填写完详细信息后点击确定按钮后由系统进行车辆信息的添加操作。
 
图4-9 后台添加车辆页面
4.3.4 订单管理
此界面用来管理订单信息模块,列出所有订单信息,用户可以点击修改按钮进行详细查阅,并可进行修改;点击删除按钮时删除该订单对应的记录。
 
图4-10 后台订单管理页面
核心代码:
<% Connection conn=null;
    Statement stmt=null; ResultSet rst=null; String strSQL="";
    int PageSize=15; int Page=1; int totalPage=1; int totalrecord=0;
    try { Class.forName("com.mysql.jdbc.Driver");
    }catch(ClassNotFoundException ce) {
out.print(ce.getMessage());}    try{conn=DriverManager.getConnection("jdbc:mysql://localhost/qczl",
"root","root");
    stmt=conn.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_READ_ONLY );
    strSQL="SELECT * from orderinfo where disable=0 order by id desc";
    rst=stmt.executeQuery(strSQL);
    if(rst.next()) { rst.last(); totalrecord=rst.getRow(); rst.first(); }
    if(totalrecord%PageSize==0)
      totalPage=totalrecord/PageSize;
      else  totalPage=(int)Math.floor(totalrecord/PageSize)+1;
    if(totalPage==0) totalPage=1;
if(request.getParameter("Page")==null  ||request.getParameter("Page").equals("")  )
    Page=1;
    else
    try { Page=Integer.parseInt(request.getParameter("Page"));
    }catch(NumberFormatException e) {
    Page=1; }
    if(Page<1)Page=1;
    if(Page>totalPage)Page=totalPage;
    rst.absolute((Page-1)*PageSize+1);
    out.print("<table border=1>");
out.print("<tr><td>Oid</td><td>Uid</td><td>Cid</td><td>orderdate</td><td>returndate</td><td>联系人</td><td>电话</td><td>身份证</td><td>需求</td><td>状态</td><td>操作</td></tr>");
    for(int iPage=1;iPage<=PageSize;iPage++)
    {  out.print("<tr><td>"+rst.getInt("id")+"</td>");
        out.print("<td>"+rst.getInt("userid")+"</td>");
     out.print("<td>"+rst.getInt("busid")+"</td>");
     out.print("<td>"+rst.getString("orderdate")+"</td>");
     out.print("<td>"+rst.getString("returndate")+"</td>");
     out.print("<td>"+rst.getString("user")+"</td>");
     out.print("<td>"+rst.getString("tel")+"</td>");
     out.print("<td>"+rst.getString("idcard")+"</td>");
     out.print("<td>"+rst.getString("needs")+"</td>");
    if("1".equals(rst.getString("state"))){out.print("<td>"+"未出库"+"</td>");
out.print("<td><a href=updateO0?s="+"c"+rst.getInt("id")+">
受理</a></td></tr>");
    }else if("0".equals(rst.getString("state"))){
out.print("<td>"+"已出库"+"</td>");
out.print("<td><a href=updateO0?s="+"h"+rst.getInt("id")+">
还车</a></td></tr>");}    
    if(!rst.next()) break;    }out.print("</table>");
    }catch(SQLException e)
      { System.out.print(e.getMessage()); }
    finally{ if(stmt!=null){ stmt.close(); }
      if(conn!=null){ conn.close(); } }
%>
在用户归还车辆后点击还车,这位条记录就不会在订单管理里面显示,自动在订单记录里面显示。这样可以使管理员方便直观的管理订单。
图4-11 后台订单记录页面
4.3.5 留言管理
此界面用来管理留言信息模块,列出所有留言信息,用户可以点击修改按钮进行详细查阅,并可进行修改;点击删除按钮时删除该留言对应的一条记录。
 
图4-12 后台留言管理页面
在后台留言管理页面上点击回复后进入留言的修改页面,在这里可以对用户的留言进行回复。
图4-13 后台回复用户留言页面
核心代码:
<%request.setCharacterEncoding("gbk");
response.setContentType("text/html;charset=gbk");
String mid=request.getParameter("id");
Message message=new Message();
message=MessageDao.selectContentByID(Integer.parseInt(mid));%>
<form action="updateM" method="post">
<div style= "display:none "> 
    <input type="text" name="id" value="<%=message.getId() %>" />
</div>
<table width="440" height="235" border="0" align="center">
  <tr><td colspan="2" align="center"><h3>更新留言</h3></td></tr>
  <tr><td width="49">昵称</td><td width="381"><input type="text" 
    name="name" value="<%=message.getName() %>" size="20"/> </td> </tr>
<tr><td>性别</td> <td><input type="text" name="sex"
     value="<%=message.getSex() %>" size="7"/> </td></tr> 
<tr> <td>邮件</td><td><input type="text" name="email" 
value="<%=message.getEmail() %>" size="7"/></td></tr>
<tr> <td>留言时间</td> <td><input type="text" name="gbdate"
     value="<%=message.getGbdate() %>" size="7"/> </td></tr>
<tr><td height="77">内容</td><td><textarea name="content" 
style="font-size: 12px;width: 325px;    height: 80px;border: 1px solid 
#009CEC;" ><%=message.getContent() %></textarea></td>
<tr><td>回复时间</td><td><input type="text" name="redate" 
value="<%=new java.text.SimpleDateFormat("yyyy-MM-dd").format(
new Date()) %>" size="7"/></td></tr></tr>
<tr><td height="77">回复</td>
<td><textarea name="recontent" style="font-size: 12px;width: 325px;height: 80px;border: 1px solid #009CEC;"><%=message.getRecontent() %></textarea> </tr>
<tr><td colspan="2"><input type="submit" name="sub" value="确定">
<input type="reset" name="res" value="重置"></td></tr>
</table>
</form>
 
4.4 问题解决
 (1) 连接数据库的实现
    private final String DBDRIVER ="com.mysql.jdbc.Driver";
    private final String DBURL = "jdbc:mysql://localhost/qczl" ;
    private final String DBUSER = "root" ;
    private final String DBPASSWORD = "root" ;
    private  Connection conn = null ;
    public DBuser()    {
try{    Class.forName(DBDRIVER) ;         conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) }catch (Exception e){ }
    }
    public  Connection getConnection() // 取得数据库连接
    {return conn ;}
    public  void close()   // 关闭数据库连接
    {
        try{    conn.close() ;
        }catch (Exception e){ }        
}
(2) 字符串过滤的实现
注册登录过程中,输入登录名夹杂中文和英文,在数据库中显示为乱码数字。
        request.setCharacterEncoding("GBK");
        response.setCharacterEncoding("GBK");
(3) 上传图片的实现
在更新车辆的过程中,每次都要重新上传一次图片。更新页面中出现车辆的图片,当需要修改汽车图片时,再浏览上传图片即可。
上传图片用组件,导入commons-fileupload-1.2.1.jar、commons-fileupload.jar、commons-io-1.3.2.jar包。 
将图片上传到系统固定文件夹下面,并将具体图片路径存储到数据库表中,在页面调用时将路径放到img的src里面就可以将图片调用出来。
<img src="<%=c.getImg() %>
(4) 邮件格式问题限制的实现
游客注册时填写的邮件,除了要限制它的长度外还得限制邮件的格式。
function validate() {   
var strEmail=document.getElementById("email").value;
var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/; 
if (reg.test(strEmail))   
return true;   
else  {
alert("邮箱格式不正确");  
return false; }
(5) 分页问题处理的实现
public void setPageSize(int pageSize) {    
this.pageSize = pageSize; }    
/** *//**   
 * 初始化分页信息   
 */   
public void init(){    
this.isFirstPage = isFirstPage();    
this.isLastPage = isLastPage();    
this.hasPreviousPage = isHasPreviousPage();    
this.hasNextPage = isHasNextPage();    
}    
/** *//**   
 * 以下判断页的信息,只需getter方法(is方法)即可   
 */   
public boolean isFirstPage() {    
return currentPage == 1; }    
public boolean isLastPage() {    
return currentPage == totalPage; }    
public boolean isHasPreviousPage() {    
return currentPage != 1;}    
public boolean isHasNextPage() {    
return currentPage != totalPage;}    
/** *//**   
 * 计算总页数,静态方法,供外部直接通过类名调用   
 * @param pageSize 每页记录数   * @param allRow 总记录数  
 * @return 总页数   
 */   
public static int countTotalPage(final int pageSize,final int allRow){    
int totalPage = allRow % pageSize == 0 ? 
allRow/pageSize : allRow/pageSize+1;    
return totalPage;    }    
/** *//**   
 * 计算当前页开始记录  @param pageSize 每页记录数  
 * @return 当前页开始记录号   @param currentPage 当前第几页  
 */   
public static int countOffset(final int pageSize,final int currentPage){    
final int offset = pageSize*(currentPage-1);    
return offset;    
}    
/** *//**   
 * 计算当前页,若为0或者请求的URL中没有"?page=",则用1代替   
 * @param page 传入的参数(可能为空,即0,则返回1)   
 * @return 当前页   
 */   
public static int countCurrentPage(int page){    
final int curPage = (page==0?1:page);    
return curPage;    
}         
5 系统测试
5.1 系统测试
系统测试,顾名思义是对已经完成设计的系统进行检测,在系统投入使用之前检测出系统中的缺陷、漏洞等。系统测试是保证系统质量,提高系统可靠性的主要的工作之一。系统测试的目的是以最少的人力、物力和时间投入,尽可能多地找出系统中潜在的各种错误和缺陷。系统测试是软件系统完成后必须经历的一个步骤。
基于Web的系统测试与传统的软件测试不同,Web工程作为一门新兴的学科,提倡使用一个过程和系统的方法来开发高质量的基于Web的系统。它使用合理的、科学的工程和管理原则,用严密的和系统的方法来开发、发布和维护基于Web的系统。
设计测试用例的方法一般有两种:黑盒测试法和白盒测试法。
(1) 黑盒测试。如果已经知道产品应该具有的功能,可以通过测试来检验每个功能是否够正常使用,这样的测试称为黑盒测试,也叫做功能测试。黑盒测试法是将其看作一个黑盒子,完全不用考虑程序内部结构和处理过程。也就是说,黑盒是对程序接口进行的测试,它只检查程序功能是否能按照预期目标正常使用,程序是否能正确的接收输入的数据、处理数据、输出数据,并保证外部信息(如数据库)的完整性。
(2) 白盒测试。如果知道了产品内部工作过程,可以通过测试来检验产品内部动作是否按照预期的规定正常进行,这样的方法称为白盒测试,也叫做结构测试。与黑盒相反,白盒测试法的前提是把程序看做装在一个透明的盒子里,按照程序内部的逻辑测试程序,检验程序中的每条是否都按预定的要求正确工作。
5.2 系统测试方案
本系统采用的测试用例方法是黑盒测试法,将系统所有可能的值来检查程序的正确性。
需要测试的功能项是:
(1) 表单格式验证。
(2) 后台页面浏览权限。
(3) 系统中的分页。
(4) 管理员后台功能测试(车辆信息管理)。
5.3 系统检测过程
在Tomcat服务器上发布已经完成的Web系统,设置该系统的IP地址为服务器的IP地址(本地:localhost),设置端口为8080,域名为空。
然后,打开IE浏览器,在地址栏中输入http://localhost:8080/qczl/,即可转入系统的默认首页页面。
经由浏览器能够顺利打开服务器上系统的默认页面,说明系统已经发布成功。可以经由Web进入系统进行操作。
系统编码过程中出现的一些测试用例如下表所示:
图5-1 测试用例表
测试功能模块    测试点    输入    输出    测试结果
登录模块    登录    用户名:admin
密码:admin    正常登录    登录功能正常
        用户名:不存在的
密码:任意    提示出错    登录纠错功能正常
后台页面浏览权限    进入后台管理界面    不登陆直接在浏览器上面输入后台页面地址    直接跳转到后台登陆界面    页面过滤功能正常并正常跳转到
        用户登录后在浏览器上面输入后台管理页面地址

    页面正常跳转到后台管理页面    

页面过滤功能正常
 
续表5-1
测试功能模块    测试点    输入    输出    测试结果
系统中的分页    测试页面分页功能    在页面上输入-1、0、10000这样的特殊数字    当数字小于1是跳转到第一页;大于最大值时跳转到末页    在页面上溢出值控制功能正常
        在页面上输入正常数字,例如:1、2    页面正常跳转到对应的页面    
页面上分页功能正常
管理员后台功能测试(车辆信息管理)    查看功能    管理员登录进入系统后台后,点击车辆管理    界面上列出了要查看的车辆信息    查看功能正常
    删除功能    管理员登录进入系统后台后,点击车辆管理页面的删除按钮    界面上显示删除成功,再次查看,已没有该车辆信息    删除功能正常
    添加功能    管理员登录进入系统后台后,在添加车辆信息的界面上输入需要添加的车辆信息,确认后点击确定按钮    界面上显示添加成功,再次查看已有该车辆信息    添加功能正常
    修改功能    管理员登录进入系统后台后,选择需要修改的车辆信息,点击修改按钮进入车辆修改页面    在页面上显示需要修改的车辆信息,填写需要修改的车辆信息,确认无误后,点击确认按钮提交信息。    修改功能正常

 
6 总结
经过三个多月的设计和开发,基于JSP的汽车租赁管理系统已经开发完毕,其功能符合基本需求:管理员管理会员信息、管理租赁车辆信息、管理租赁车辆订单信息、管理用户的留言信息、管理加盟商信息等。会员可以在线浏览租赁的车辆信息资源、发表留言、进行分类查询等基本信息。游客可以在线查看车辆信息、匿名留言等基本功能。
通过对汽车租赁管理系统的开发,使我对系统开发有了很大的了解。需求分析和系统设计的质量往往是决定系统成功与否的决定性因素之一。在系统开发过程中,利用软件工程的知识理论开发软件,按“分析、设计、实现、测试”的步骤进行,避免人为盲目的“想到哪里就做到哪里”。从数据库的实现、系统功能的实现、系统关键技术的实现这三个角度对系统的部分实现进行分析。在数据库应用系统开发中,合理制定了存储过程,更加使系统中的查询灵活。拦截器的设置,让这个系统更加安全和贴近实际。在系统测试部分,从系统测试方法,系统测试内容,系统测试结论几个角度进行了介绍。经过全面测试,系统功能完全符合初步设想,满足了使用者的要求,界面友好,操作灵活,方便了车辆管理人员的使用。在现有的带宽下测试,系统的响应速度也比较理想,支持一定的并发量。系统功能基本符合需求。
但是,由于实际条件和时间限制,还有自己在这方面知识的欠缺,致使系统在功能方面还不完善,有的仅仅是最简单最基本的功能实现,而且由于我知识面的局限性,对于具体的系统方面的知识还有很大的欠缺,可能在设计数据库存在着不合理的地方,以至于影响到整个系统的功能以及性能。
尽管系统有种种的不如意的地方,但是从开发开始到结束这一过程中,从建库到建表,再到编写程序,从功能分析到界面设计,每一步都充满了我辛勤的劳动,每一次探索的成功都让我欣喜,让我得到无比的鼓舞。
总之,通过这次毕业设计使我学到了很多书本上没有的知识,让我了解到只有将理论和实际相结合才能将学到的知识消化,同时也让我认识到了我自身的不足。毕业设计留给我的经验对我以后的工作学习都是很有帮助的,而它给我留下的教训也足以让我在今后的学习工作中引以为戒。
 
参考文献
[1] 孙更新. J2EE开发员成长之路[M].电子工业出版社,2006.
[2] 曹衍龙,徐慧编著. JSP网络开发实用工程案例[M].北京:人民邮电出版社,2008.
[3] 萨师煊.数据库系统概论[M].高等教育出版社,2006.
[4] 曹广鑫,时强.JSP数据库项目开发宝典[M].北京:电子工业出版社,2006.
[5] 曾健.JSP网络开发入门与实践[M].北京: 电子工业出版社,2008.
[6] 吴伟敏.网站设计与Web应用开发技术[M]. 北京:清华大学出版社,2009.
[7] 孙鑫.基于Tomcat的Web开发[M].北京:电子工业出版社,2009.
[8] 蔡翠平等.Java程序设计[M].北京:清华大学出版社,2010.
[9] 谭文芳.JSP应用教程(修订本)[M].机械工业出版社,2011.
[10] 覃征.软件体系结构[M].西安:西安交通大学出版社,2007.
[11] 孙一林,彭波.JSP数据库编程实例[M]. 北京:清华大学出版社,2008.
[12] 贺松平.基于MVC模式B/S架构的研究及应用[M].华中科技大学,2006.
[13] 聂小燕,才文波.美工神话CSS网站布局与美化[M].北京:人民邮电出版社,2007.
[14] 耿祥义.JSP基础教程[M].北京:清华大学出版社,2007.
[15] 侯晓强,徐春荣,勾海波.Java服务器编程实例[M].中国青年出版社,2009.
[16] 邵丽萍,邵光亚等.Java语言程序设计(第3版)[M].北京:清华大学出版社,2010.
[17] 李宁等.Java Web开发技术大全[M].北京:清华大学出版社,2008.
[18] 赛奎春.JSP工程应用与项目实践[M].机械工业出版社,2008.
[19] 张海藩.软件工程导论(第四版)[M].北京:清华大学出版社,2007.
[20] 俞传正.基于博客的个人知识管理平台研究[D].天津:天津师范大学,2006.
[21] 耿祥义,张跃平.JAVA2实用教程(第二版)[M].北京:清华大学出版社,2007.
[22] 邓子云,张赐.JSP网络编程[M].西安:电子工业出版社,2008.
[23] 李东艳,崔崇芳等.J2EE应用开发实例精解[M].北京:清华大学出版社,2011. 
致谢
这次的设计从选择课题到系统的具体实现都是自己独立完成的。从前台网页设计的实现,到后台代码的编辑,用到的软件有word、photoshop、fireworks、dreamweaver、mysql、myeclipse等。当完成毕业设计的时候,有一种如释重负的感觉,在毕业设计的煎熬之后,感觉好像一切都尘埃落定之后,即将给自己的学生时代和校园生活划上一个分号,之所以说它是分号,是因为我对无忧无虑的学生生活还有无比的怀念,对单纯美好的校园生活还有无比的向往、无比的怀念。
为期两年的专升本学习生活即将结束,在此感谢我的家人,是他们的支持和鼓励,使我有了两年美好的大学时光。我感谢所有曾经教导过我的老师和关心过我的同学,感谢他们在我学习成长过程中所给予我的帮助。
这次毕业设计能成功完成,要特别感谢我的指导老师**老师,感谢老师对我的作品提出的建议和指导。在整个设计阶段,老师在我有困难的时候细心为我指导,给了我很大的帮助。在设计完成之际,向我尊敬的导师表示诚挚的谢意,感谢老师对我的关心和帮助。在整个系统的开发过程中,同学和朋友也给了我很大的帮助。感谢给予我帮助的同学和朋友们,他们在我的整个设计过程中给我提供了许多的技术方面的指导。
虽然系统中有很多缺点被补漏了,但是系统中难免还有很多不足之处,希望各位评委老师和同学给予指正与建议。
 

猜你喜欢

转载自blog.csdn.net/weixin_55459367/article/details/114102943