汽车租赁管理系统的设计与实现毕业设计论文.docx
《汽车租赁管理系统的设计与实现毕业设计论文.docx》由会员分享,可在线阅读,更多相关《汽车租赁管理系统的设计与实现毕业设计论文.docx(23页珍藏版)》请在冰豆网上搜索。
汽车租赁管理系统的设计与实现毕业设计论文
毕业设计论文
汽车租赁管理系统的设计与实现
摘要:
汽车租赁业被称为“朝阳产业”,它因为无须办理保险、无须年检维修、车型可随意更换等优点,以租车代替买车来控制企业成本,这种在外企中十分流行的管理方式,正慢慢受到国内企事业单位和个人用户的青睐。
将买车、养车的包袱全丢给汽车租赁公司,而把主要财力和精力放在自己的主业上,这是当今国际跨国公司流行的做法。
据统计,一年下来,像桑塔纳2000这样的普通车,购车要比租车多花费10000元修理费,即以租车代替买车,成本就可以下降3成。
另外,租车还为企业节省一笔管理成本,其根本原因在于对企业管理上“成本可控”理念认可——采用租赁,随时可以调整开支,风险小,灵活性强,是降低成本的最好办法。
那些对中国地方性法规制度不熟悉的商家可以减少诸如汽车上牌、年检、缴费、违章事故的处理等一系列不必要的麻烦。
客户们还可以自由地选择租赁汽车的品牌,从经济型车到高档车,所有汽车均有完备的手续。
汽车租赁的五个优势
一、车型可随时更新
随着人们消费水平的提高,对高档消费品有不断更新的欲望。
在欧美人们平均8个月更换一次车型。
假如现在花费三十多万元购买一台轿车,因社会经济发展很快,一年后汽车的性能、外观改进很多,而价格却会大幅下降。
一年后,如果想换新车型,老车可能15万元就很难卖出。
这意味着,一年中车价损失接近20万元。
但假如租赁一台三十多万元的车,只需10余万元。
而且,可随时租用最新车型。
从目前人们经常更换手机的状况就能预料到几年后,经常换新车,将是人们的新时尚。
二、解除车辆维修、年度检验的烦恼
自购车辆后对车辆的维修和保养及一年一度的车辆年检要耗费很多财力和精力。
但如果租车,就不存在这些烦恼,无论是车辆维修还是其它原因,车辆不能正常使用时,租赁公司都会及时提供替代车,保证用车。
三、可充分提高资金利用率
如果自购车辆要一次性支付30万元,消费者具有一定经济实力。
也就是说租车和买车相比至少可节省一次性投资20万元。
消费者用这20万元去经营,可赚取一笔可观的利润。
四、可保证你良好的财务状况
自购车辆必然会造成固定资产增加、借款增加、流动资产减少使财务出现不良状况,而租赁车辆将有效回避上述风险。
五、有利于提高成本观念,减少浪费
自购车辆使用时随心所欲,特别是单位公车,私自用车现象较多,造成不必要的浪费,而如果租赁车,一是可根据业务需要随时调控用车数量,二是用车人知道自己的用车成本,,可直接减少不必要的用车,有效地提高员工的成本观念。
第1章开发环境
1.1开发所需工具
Tomcat6.0,WindowsXP,EditPlus,DreamweaverMX2004,IE6.0,Firefox火狐浏览器,Oracle10g等。
1.2Tomcat
Tomcat服务器是一个免费的开放源代码的Web应用服务器,目前最新版本是6.0.18.
Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat5支持最新的Servlet2.4和JSP2.0规范。
因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。
Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。
实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。
1.3JSP
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与JavaServlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。
目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。
1.4Servlet
Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面。
它担当Web浏览器或其他HTTP客户程序发出请求,与HTTP服务器上的数据库或应用程序之间的中间层。
Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。
而在Servlet中,每个请求由一个轻量级的Java线程处理(而不是重量级的操作系统进程)。
在传统CGI中,如果有N个并发的对同一CGI程序的请求,则该CGI程序的代码在内存中重复装载了N次;而对于Servlet,处理请求的是N个线程,只需要一份Servlet类代码。
在性能优化方面,Servlet也比CGI有着更多的选择。
Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。
在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。
例如,Servlet能够直接和Web服务器交互,而普通的CGI程序不能。
Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。
Servlet用Java编写,ServletAPI具有完善的标准。
因此,为IPlanetEnterpriseServer写的Servlet无需任何实质上的改动即可移植到Apache、MicrosoftIIS或者WebStar。
几乎所有的主流服务器都直接或通过插件支持Servlet。
不仅有许多廉价甚至免费的Web服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持Servlet的话,要加上这部分功能也往往是免费的(或只需要极少的投资)。
1.5静态网页与动态网页
静态网页是标准的HTML文件,其文件扩展名是.htm或.html。
它可以包含HTML标记、文本、Jave小程序、客户端脚本以及客户端ActiveX控件,但这种网页不包含任何服务器端脚本,该页中的每一行HTML代码都是在放置到Web服务器前由网页设计人员编写的,在放置到Web服务器后便不再发生任何更改,所以称之为静态网页。
程序是否在服务器端运行,是动态网页的重要标志。
在服务器端运行的程序、网页、组件,属于动态网页,它们会随不同客户、不同时间,返回不同的网页,例如ASP、PHP、JSP、ASP.net、CGI等。
运行于客户端的程序、网页、插件、组件,属于静态网页,例如html页、Flash、JavaScript、VBScript等等,它们是永远不变的。
1.6JDBC
JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,同时,JDBC也是个商标名。
有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。
换言之,有了JDBCAPI,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用。
同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。
Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。
JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。
作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。
JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。
JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。
Java具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。
所需要的只是Java应用程序与各种不同数据库之间进行对话的方法。
而JDBC正是作为此种用途的机制。
JDBC扩展了Java的功能。
例如,用Java和JDBCAPI可以发布含有applet的网页,而该applet使用的信息可能来自远程数据库企业也可以用JDBC通过Intranet将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有Windows、Macintosh和UNIX等各种不同的操作系统)。
随着越来越多的程序员开始使用Java编程语言,对从Java中便捷地访问数据库的要求也在日益增加。
1.7Oracle
Oracle是殷墟(YinXu)出土的甲骨文(oracleboneinscriptions)的英文翻译的第一个单词,在英语里是“神谕”的意思。
与无压缩格式下存储数据相比,新的Oracle数据压缩技术能够确保以较小的开销节省三倍以上的磁盘存储空间。
这一点比仅节省磁盘空间要具有更大的优势,因为它能够使企业节约更多的开支,以便有更多的资金来巩固自己的地位。
自动诊断知识库(AutomaticDiagnosticRepository,ADR)是专门针对严重错误的知识库。
该知识库基本上能够自动完成一些以往需要由数据库管理员来手动完成的操作。
作为ADR的一部分,SQL性能分析器(SQLPerformanceAnalyzer,SPA)是最让人惊喜的特性之一。
SQL性能分析器是一个整体调整工具,管理员可以通过该工具在数据库上定义和重演(replay)一个典型的工作负载,之后管理员可以调节整体参数来使数据库尽快的达到最佳性能——而这一任务同样也是许多年以来由数据库管理员手动完成的。
由于获得了最优的初始参数,数据库管理员就不需要调整数以万计的SQL语句。
管理员需要做的就是给定一个典型的负载,由SAP根据历史记录来决定SQL的最终设置,而不用管理员来检测哪一个SQL设置是最合理的。
多年以来,甲骨文公司一直在努力完成地另一个新特性便是“联机更新”(在不down机的情况下更新软件)。
实际上,很难从软件工程的角度来设计一个运行时能自动升级的软件。
由于真正的应用集群(RealApplicationClusters,RAC)特性,甲骨文公司再一次对其他的数据库供应商造成了更大的压力。
在实际的使用过程中,数据库产品的用户总是希望产品有持续的高可用性,这并不是说只需满足下次补丁更新之前的3年的时间就够了。
自动内存管理特性可以追根溯源至Oracle9i,那时甲骨文公司推出首款自动调节存储池的工具。
AMM工具其实就是一种探测机制。
实际上,Oracle11g有很多随机访问存储池,当AMM探测到某个存储池中已满时,它将整个RAM从一个区域分配到其他相对合适的区域。
第2章系统后台设计
2.1系统的主要技术分析
2.1.1.Browser/Server系统的三层体系结构
在Browser/Server的系统中,用户可以通过浏览器向分布在网络上的许多服务器发出请求。
Browser/Server结构极大的简化了客户机的工作,客户机上只需安装、配置少量的客户端软件即可,服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。
在Browser/Server三层体系结构下,表示层(Presentation)、功能层(BusinessLogic)、数据层(DataService)被分割成三个相对独立的单元:
第一层--表示层:
Web浏览器在表示层中包含系统的显示逻辑,位于客户端。
它的任务是由Web浏览器向网络上的某一Web服务器提出服务请求,Web服务器对用户身份进行验证后用HTTP协议把所需的主页传送给客户端,客户机接受传来的主页文件,并把它显示在Web浏览器上。
第二层--功能层:
具有应用程序扩展功能的Web服务器在功能层中包含系统的事务处理逻辑,位于Web服务器端。
它的任务是接受用户的请求,首先需要执行相应的扩展应用程序与数据库进行连接,通过SQL等方式向数据库服务器提出数据处理申请,而后等数据库服务器将数据处理的结果提交给Web服务器,再由Web服务器传送回客户端。
第三层--数据层:
数据库服务器在数据层中包含系统的数据处理逻辑,位于数据库服务器端。
它的任务是接受Web服务器对数据库操纵的请求,实现对数据库查询、修改、更新等功能,把运行结果提交给Web服务器。
从上面的分析中可以看出,三层的Browser/Server体系结构是把二层Client/Server结构的事务处理逻辑模块从客户机的任务中分离出来,由单独组成的一层来负担其任务,这样客户机的压力大大减轻了,把负荷均衡地分配给了Web服务器,于是由原来的两层的Client/server结构转变成三层的Browser/Server结构。
图2-1数据模型
第3章数据库设计
3.1数据库模式
数据库模式定义了数据库的结构、表、关系、域和业务规则。
数据库模式是一种设计,数据库和应用正是建立在此基础上的。
域是一列可能拥有的值的集合。
必须为每一个表的每一列确定域。
除了数据的物理格式外,还需要确定是否有些域对表来说是唯一的。
数据库模式的最后一个要素是业务规则,它是对需要反映在数据库和数据库应用程序中的业务活动的约束。
业务规则是模式的一个重要部分,因为他们指定了无论什么数据变化到达DBMS引擎,允许的数据值必须满足的约束。
不管无效的数据变化请求是来自窗体的用户、查询/修改请求还是应用程序,DBMS都应该拒绝。
遗憾的是,不同的DBMS产品用不同的方法实施业务规则。
在某些情况下,DBMS产品不具备实施必要业务规则的能力,必须以代码形式把它们编入应用程序。
3.2用户表结构
用户表用来反映用户在数据库内所有属性,包括:
用户ID,登入名,密码,身份证号,姓名,性别,地址,联系电话,职位以及用户类型.
用户表Users
名称
中文名称
物理名称
字段类型
主键
字段名
ID
Userid(PK)
Number
是
字段名
登录名
Username
Varchar2(30)
否
字段名
身份证
Identity
Number
否
字段名
姓名
Fullname
Varchar2(30)
否
字段名
性别
Sex
Number
否
字段名
地址
Address
Varchar2(30)
否
字段名
联系电话
Phone
Number
否
字段名
职位
Position
Varchar2(30)
否
字段名
用户类型
Userlevel
Number
否
字段名
密码
Userpwd
Varchar2(30)
否
表3-1用户表
功能关系图如下:
图3-1功能关系图
3.3客户表结构
客户表用来反正真实客户在数据库内所有属性,包括:
客户ID,身份证号,姓名,性别,地址,电话,职业,密码等。
客户表:
Customers
名称
中文名称
物理名称
字段类型
主键
字段名
ID
Cust_id(PK)
Number
是
字段名
身份证
Identity
Number
否
字段名
姓名
Custname
Varchar2(30)
否
字段名
性别
Sex
Number
否
字段名
地址
Address
Varchar2(30)
否
字段名
电话
Phone
Number
否
字段名
职业
Career
Varchar2(30)
否
字段名
密码
Custpwd
Varchar2(30)
否
表3-2客户表结构
功能关系图如下:
图3-2功能关系图
3.4汽车表结构
汽车表用来反正真实汽车在数据库内所有属性,其中包括:
汽车ID,车号,车型,颜色,价值,租金,押金,租用情况,简介等.
汽车信息表:
Cars
名称
中文名称
物理名称
字段类型
主键
字段名
ID
carid(PK)
Number
是
字段名
车号
carnumber
Varchar2(30)
否
字段名
型号
cartype
Varchar2(30)
否
字段名
颜色
color
Varchar2(30)
否
字段名
价值
price
Number
否
字段名
租金
rentprice
Number
否
字段名
押金
deposit
Number
否
字段名
租用情况
isrenting
Number
否
字段名
简介
description
Varchar2(50)
否
表3-3信息表
功能关系图如下:
图3-4关系图
3.5出租单表结构
反映出租单情况,包括出租单编号,预付金,应付金,实际交付金额,起租日期,应归还日期,归还日期,出租单状态,客户号,车号,服务人员编号等.
出租单信息表:
Rentable
名称
中文名称
物理名称
字段类型
主键
字段名
出租单编号
tableid(PK)
Number
是
字段名
预付金
Imprest
Number
否
字段名
应付金
shouldpayprice
Number
否
字段名
实际交付金额
Price
Number
否
字段名
起租日期
Begindate
Date
否
字段名
应归还日期
shouldreturndate
Date
否
字段名
归还日期
Returndate
Date
否
字段名
出租单状态
Rentflag
Number
否
字段名
客户号
custid(FK)
Number
否
字段名
车号
carid(FK)
Number
否
字段名
服务人员编号
userid(FK)
Number
否
表3-4信息表
3.6检查单表结构
反映检查单实际情况,包括检查单号,检查时间,属性,问题,赔费,检查员,出租单编号等.
检查单信息表:
checktable
名称
中文名称
物理名称
字段类型
主键
字段名
检查单号
checkid(PK)
Number
是
字段名
检查时间
checkdate
Date
否
字段名
属性
Field
Varchar2(30)
否
字段名
问题
problem
Varchar2(30)
否
字段名
赔费
paying
Number
否
字段名
检查员
checkuserid(FK)参照用户表
Number
否
字段名
出租单编号
Rentid(FK)参照出租单表
Number
否
表3-5检查单信息表
客户租车流程图:
图3-5客户租车流程图
客户还车流程图:
图3-6客户还车流程图
1.1.连接数据库
通过JDBC连接到ORACLE,利用JAVA的反射机制来寻找ORACLE提供的JDBC连接方法
源代码节选:
/**
*连接数据库抽象类
*作为工具提供其他类直接调用Connection连接数据库
*含有关闭数据库连接方法
*/
Class.forName(ConnectionImport.driver);//反射机制获取数据库驱动!
conn=DriverManager.getConnection(ConnectionImport.url,
ConnectionImport.user,ConnectionImport.password);
//回滚操作。
第4章建立数据库
4.1数据库建模
通过建模工具建立数据库中所有数据模型
UML图如下:
图4-1UML数据模型
4.2数据库建表
利用SQL语句建立数据库表,利用数据库表的互相管理来反映具体事务的真实关系。
由于表太多,这里也就不一一列举了。
权限与目录表的SQL语句如下:
createtableOA_ROLES_MENUS(
ROLE_