汽车租赁系统文档_第1页
汽车租赁系统文档_第2页
汽车租赁系统文档_第3页
汽车租赁系统文档_第4页
汽车租赁系统文档_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z.课程设计课程名称:数据库课程设计学院:计算机科学与技术学院专业:网络工程姓名:学号:年级:任课教师:2015年12月12日-.z.**大学本科课程设计任务书学生信息**学院计算机科学与技术学院班级专业网络工程131教师信息**职称学历任务书发出时间论文(设计)题目汽车租赁管理信息系统论文(设计)起止时间11月21日到12月12日共需周数4设计内容:1.租车用户功能:查看车辆信息、注册租车用户信息、查看租车用户信息、修改租车用户信息、查看合同信息、租车、还车、修改密码、找回密码。2.员工功能:查看租车用户信息、删除租车用户信息、添加车辆信息、查看车辆信息、删除车辆信息、修改车辆信息、查看出租列表、查看合同信息、准许租车、准许还车、结算金额并打印报表。3.管理员功能:添加员工信息、查看员工信息、删除员工信息、修改员工信息、查看报表。主要要求:租车用户能通过查询车辆信息选择车辆租凭,找到合适的车辆后提交订单。然后由员工审核是否准许租车然后签合同,租凭期间租车用户可以查询交易信息。还车时由租车用户提交,员工审核是否准许还车,然后结算金额并打印报表。员工能通过查询租车用户信息和车辆信息来决定是否出租车辆给租车用户,如果出租则签合同并保存合同。当租车用户还车时可以决定是否允许还车,打印报表。员工还可以查看库存内的车辆信息并管理。管理员能通过查询报表信息来管理员工信息。-.z.预期目标:3天完成租车用户功能,主要是租车用户可以查询车辆信息,并且能够租凭车辆,租凭期间可以查询交易信息;2天完成汽车信息,主要是车辆状态:是否可以出租,车辆品牌与单价;4天完成员工功能,员工能够管理租车用户信息,管理车辆信息,准许租车用户还车与租凭,打印报表,保存合同;1天完成管理员功能,管理员能够查看报表信息。计划进程:2015.11.21-2015.11.22查阅和收集与设计有关的资料并讨论2015.11.23-2015.11.24根据题目进行调研,按照指导教师所下任务书的具体要求完成整体设计与如何布局2015.11.25-2015.11.28设计初稿形成一个大体的构思并分配任务2015.11.29-2015.12.6sqlserver、jdk1.6与java的代码编写2015.12.7-2015.12.8测试系统2015.12.9-2015.12.10修改程序、定稿2015.12.11-2015.12.12编写设计文档准备答辩主要参考文献:*海藩.软件工程导论(第5版)[M].清华大学,2008.王珊,萨师煊等.数据库系统概论(第4版)[M].高等教育.2006欧立奇VisualC*.NET案例开发集锦[M],电子工业,2005.10.KarliWatson等著,齐立波译.C*入门经典[M].清华大学,2006.5系审查意见:系主任签字:年月日-.z.目录TOC\o"1-3"\h\u26434摘要125825Abstract220398第一章概述34475(1)项目背景332234(2)编写目的314794(3)软件定义332401(4)开发环境34923第二章需求分析41963(1)租车用户的功能、性能等的需求416573(2)数据流图42389(3)数据字典10285011.数据项和数据结构10277542.数据流14237063.数据存储18142514.处理过程2015814第三章软件概要设计2522268(1)系统目标、总体设计、运行设计等25298121.系统目标25239812.总体设计2598093.运行设计259193(2)软件功能图以及每一个功能所完成的任务2714147第四章数据库设计2824769(1)数据库概念设计(E-R图)2825042(2)数据库逻辑设计31116321.关系模型31183932.主关键字和唯一键32961(1)登陆功能JAVA代码3326062(2)用户预租车功能JAVA代码386347(3)用户预还车功能JAVA代码3925880(4)员工准许租车功能JAVA代码4015961(5)员工准许还车功能JAVA代码4328238(6)添加车辆功能JAVA代码462228(7)租车查询功能JAVA代码(组合查询)4925185(8)删除车辆功能JAVA代码529136(9)车辆信息修改功能JAVA代码5723022第五章用户使用说明书6022823第六章结束语721103第七章附录参考文献73-.z.摘要设计汽车租赁系统的目的在于使租车用户、商户和仓库之间建立更好的互通性;客户可以更便捷的选车、下单、还车,节省客户宝贵时间;商户可以更直接的查询汽车的状态(出租中、维修中、在库);仓库可以更简单有效的管理汽车的进出库信息。在设计中,利用数据库对数据的有效管理的机制,在SQLServerManagementStudio2008和JCreator的环境下进行编写代码,基于JDBC技术,实现JAVA的数据库访问的应用程序编程接口。对数据快速有效的批量处理以解决在汽车租赁时复杂程序和步骤是我们的设计的成功标志。AbstractCarrentalsystemisdesignedtomakecustomers,merchantsandbuildbetterinteroperabilitybetweenthewarehouse.Customerscanmoreconvenienttochoosecar,order,andreturnthecar,inordertosavecustomerstime;Merchantscanmoredirectlyquerystatusofcar(Leasing,repairingandrentable);Thewarehousecanbemoresimpleandeffectivemanagementoferosionanddepositionbehaviorinformationofcar.Inthedesign,theuseofdatabasemechanismtotheeffectivemanagementofdata,InSQLServerManagementStudio2008andJCreatorundertheenvironmentofwritingcode.BasedonJDBCtechnology,therealizationofJAVAdatabaseaccessapplicationprogramminginterface.Batchprocessingofdataquicklyandefficientlyinordertosolvetheple*proceduresandstepswhenthecarrentalisthesymbolofsuccessforourdesign.第一章概述(1)项目背景汽车租赁管理信息系统可以帮助企业处理日常工作业务,规*管理各项工作和操作流程。能够方便地实现汽车租赁管理系统中的租车流程,预定汽车,对合同的添加、删除、修改,对租车用户和员工的信息管理等功能,高效地完成各种汽车租赁经营中的信息统计、计算和汇总工作。(2)编写目的传统的租赁公司采取手工方式对租赁情况进行人工管理,由于信息较多,管理起来比较复杂;一般租赁情况是记录在租赁合同上的,资料的数目和内容记录在文档中。如果时间过长,工作人员和管理人员就会出现纰漏,造成费时费力的结果。如果对很长时间以前的资料进行更改就会更加困难。为了更好的管理汽车租赁的各项信息,使汽车租赁的效率大大提高,所以我们设计了这个系统。(3)软件定义本次所设计的软件为汽车租赁系统,是基于java语言和SQL语言,采用C/S模式实现的。可以实现不同权限的使用和管理。大致分为主界面、管理员界面、员工界面和用户界面,这些界面以下有不同的功能子模块。租车用户可以查看车辆信息、个人信息浏览、查看合同信息、注册客户信息、租车、还车;员工可以添加租车用户信息、查看租车用户信息、删除租车用户信息、修改租车用户信息、添加车辆信息、查看车辆信息、删除车辆信息、修改车辆信息、查看出租列表、查看合同信息、添加合同信息、修改合同信息、删除合同信息、准许租车、准许还车、统计金额并打印报表、提交报表。管理员可以添加内部人员、查看内部人员、删除内部人员、修改内部人员、查看报表。(4)开发环境我们的系统所使用的环境主要是sqlserver和jdk1.6第二章需求分析租车用户的功能、性能等的需求租车用户的功能是可以通过官网页面注册用户信息,忘记密码时可以通过**找回密码,修改密码,浏览用户信息,浏览车辆信息,预订车辆,预还车辆和查看合同信息。即可这样归类注册用户信息:租车用户信息注册,成为在线会员。租车用户登录:租车用户登录进行预订。生成订单:查看订单,打印订单。租车用户中心:租车用户信息修改,修改密码,查看车辆,预订车辆,订单修改,订单取消,信誉查询,预还车、投诉等。员工:员工登录,修改车辆信息,准许租车用户租车、还车,查看业绩、合同。管理员:管理员登录,管理员工信息,查看报表。(2)数据流图顶层1层2层3层(3)数据字典数据项和数据结构USER数据项名称中文名数据类型(长度)描述Uno用户编号Int该表主键并与租车表、还车表、预租车表的用户编号建立外码关系。用户编号,不允许空值,自动增长1Uname用户**Char(20)用户**,不允许空值Uid用户**号Nchar(18)与合同表的用户**号建立外键关系。用户**号,不允许空值,唯一Udri用户驾驶证号Nchar(12)用户驾驶证号,不允许空值,唯一Use*用户性别Nchar(2)用户性别,男或女Uaddr用户地址Nchar(30)用户居住地Uphone用户Ncar(11)用户,不允许空值Account登录**Nchar(30)与登录信息表的登录账号建立外码关系。用户登录**,不允许空值Credibility信誉度Int用户信誉度,0为初始值Ureg是否注册Int判断用户**是否可注册STAFF数据项名称中文名数据类型(长度)描述Sno员工编号Int该表主键并与租车表、业务表的员工编号建立外码关系。员工编号,不允许空值,自动增长1Sname员工**Char(20)员工**,不允许空值Sid员工**号Nchar(18)与合同表的员工**号建立外键关系。员工**号,不允许空值,唯一Sse*员工性别Nchar(1)员工性别,男或女Sphone员工Nchar(11)员工,不允许空值Saddr员工地址Nchar(30)员工居住地址Scardid员工银行卡号Nchar(19)员工银行卡号,不允许空值Account登录**Nchar(30)与登录信息表的登录账号建立外码关系。员工登录**,不允许空值Sreg是否注册Int判断员工**是否可注册LOGIN数据项名称中文名数据类型(长度)描述Account登录**Nchar(30)该表主键并与用户表、员工表的登录账号建立外码关系。登录**,不允许空值Password登录密码Nchar(15)登录密码,不允许空值Permission权限Int判断**权限CAR数据项名称中文名数据类型(长度)描述o车辆编号Int该表主键并与租车表、预租车表、还车表、库存表的车辆编号建立外码关系。车辆编号,不允许空值,自动增长1Cid车牌号Nchar(15)与合同表的车牌号建立外键关系。车牌号,不允许空值,唯一Ctype车辆类型Nchar(4)与库存表的车辆类型建立外键关系。车辆类型,不允许空值Ccost单价Money与库存表的单价建立外键关系。单价,不允许空值Cpledge押金Money与预租车表、租车表、合同表的押金建立外键关系。押金,不允许空值Clstate租用状态Nchar(3)租用状态(是否正在出租)不允许空值Ccstate车辆状态Nchar(3)车辆状况(损坏部位)允许空值Cbrand车辆品牌Nchar(10)与库存表的车辆品牌建立外键关系。车辆品牌,不允许空值Cmodel车辆型号Nchar(10)与库存表的车辆型号建立外键关系。车辆型号,不允许空值Ccolor颜色Nchar(2)车辆颜色,不允许空值Creg是否注册Int判断车辆编号是否已经注册RENT数据项名称中文名数据类型(长度)描述Uno用户编号Int该表主键并与用户表、还车表、预租车表的用户编号建立外码关系。用户编号,不允许空值o车辆编号Int该表主键并与用户表、预租车表、还车表、库存表的(车辆编号)建立外码关联车辆编号,不允许空值RyearRmonRday出租年、月、日Date出租的日期,不允许空值TREyearTREmonTREday归还年、月、日Date归还年、月、日,不允许空值Rprice总价Money应付金额,由日租金和预出租日期和归还日期算出,允许空值Sno员工编号Int与员工表、业务表的员工编号建立外码关系。员工编号,不允许空值RETURN数据项名称中文名数据类型(长度)描述Uno用户编号Int该表主键并与用户表、租车表、预租车表的用户编号建立外码关系。用户编号,不允许空值o车辆编号Int该表主键并与车辆信息表、租车表、预租车表、库存表的车辆编号建立外码关系。车辆编号,不允许空值REyearREmonREday归还年、月、日Date归还的日期,不允许空值TRENT数据项名称中文名数据类型(长度)描述Uno用户编号Int该表主键并与用户表、租车表、预租车表的用户编号建立外码关系。用户编号,不允许空值o车辆编号Int该表主键并与车辆信息表、租车表、预租车表、库存表的车辆编号建立外码关系。车辆编号,不允许空值RyearRmonRday出租年、月、日Date出租的日期,不允许空值TREyearTREmonTREday归还年、月、日Date预归还年、月、日,不允许空值Rprice总价Money应付金额,由日租金和预出租日期和归还日期算出,允许空值Cpledge押金Money与车辆信息表、租车表、合同表的押金建立外键关系押金,允许空值STOCK数据项名称中文名数据类型(长度)描述Ctype车辆类型Nchar(10)该表主键并与车辆信息表的车辆类型建立外键关系。车辆的类型,允许空值Cbrand车辆品牌Nchar(10)该表主键并与车辆信息表的车辆品牌建立外键关系。车辆的品牌,允许空值Cmodel车辆型号Nchar(10)该表主键并与车辆信息表的车辆型号建立外键关系。车辆的型号,允许空值Amount数量Int库存里该车辆的数量,不允许空值Ccoust单价Money与车辆信息表的单价建立外键关系。日租金,不允许空值CONTRACT数据项名称中文名数据类型(长度)描述CONno合同编号Int该表主键。合同编号,不允许空值Uid用户**号Nchar(18)与用户表的用户**号建立外键关系。用户**号,不允许空值Sid员工**号Nchar(18)与员工表的员工**号建立外键关系。员工**号,不允许空值Cid车牌号Nchar(15)与车辆信息表的车牌号建立外键关系。车牌号,不允许空值RyearRmonRday出租年、月、日Date出租的日期,不允许空值TREyearTREmonTREday预归还年、月、日Date预归还年、月、日,不允许空值Rprice总价Money应付金额,由日租金和预出租日期和归还日期算出,允许空值Cpledge押金Money与预租车表、租车表、车辆信息表的押金建立外键关系。押金,不允许空值PERFORMANCE数据项名称中文名数据类型(长度)描述Sno员工编号Int该表主键并与租车表、员工表的员工编号建立外码关系。用户编号,不允许空值PERmon当月业绩Int员工当月业绩,不允许空值PER总业绩额Int员工总业绩额,不允许空值数据流数据流名:员工注册说明:员工注册员工信息获得登录信息数据流来源:员工数据流去向:员工信息表、登录信息表数据结构:员工信息表、登录信息表数据流名:员工管理说明:管理员对员工的员工信息和登录信息进行删除,修改数据流来源:管理员数据流去向:员工信息表数据结构:员工信息表数据流名:查看员工信息说明:管理员和员工对员工信息进行查看数据流来源:员工信息表数据流去向:管理员、员工数据结构:员工信息表数据流名:员工业绩说明:对员工的业绩进行记录数据流来源:租车信息数据流去向:员工业绩表数据结构:租车表、还车表、员工业绩表数据流名:员工业绩查询说明:对员工的业绩进行查询数据流来源:员工业绩表数据流去向:管理员、员工数据结构:员工业绩表数据流名:租车用户注册说明:用户注册用户信息获得登录信息数据流来源:租车用户数据流去向:租车用户信息表、登录信息表数据结构:租车用户信息表、登录信息表数据流名:租车用户管理说明:员工对租车用户的信息和登录信息进行删除、修改数据流来源:员工数据流去向:用户信息表、登录信息表数据结构:用户信息表、登录信息表数据流名:查看用户信息说明:员工对用户的信息进行查看数据流来源:用户信息表数据流去向:员工数据结构:用户信息表数据流名:预组车辆信息说明:租车用户在租车界面选车后向系统提交的预租车辆信息数据流来源:租车用户、库存表数据流去向:预租车表数据结构:预租车表、库存表数据流名:租车信息说明:员工同意用户的租车请求,租车给用户数据流来源:预租车表、员工数据流去向:车辆信息表数据结构:预租车表、车辆信息表数据流名:租车减库说明:车辆出租后对库存删减数据流来源:预租车表数据流去向:库存表数据结构:预租车表、库存表数据流名:租车记录说明:将车辆出租信息记录到租车表数据流来源:预租车表数据流去向:租车表数据结构:预租车表、租车表数据流名:预还车辆信息说明:用户提交还车信息,录入还车表数据流来源:用户预还车信息数据流去向:还车表数据结构:还车表数据流名:还车入库说明:还车表信息记录到库存表数据来源:还车表数据流去向:库存表数据结构:还车表、库存表数据流名:还车信息说明:员工核对还车表确定车辆信息,同意还车数据流来源:还车表数据流去向:车辆信息表数据结构:还车表、车辆信息表数据流名:还车记录说明:将还车信息记录到租车表数据流来源:还车表数据流去向:租车表数据结构:换车表、租车表数据流名:查看租车信息说明:对租车信息进行查看数据流来源:租车表数据流去向:员工、管理员数据结构:租车表数据流名:车辆信息管理说明:员工添加、删除、修改车辆信息到车辆信息表数据流来源:员工数据流去向:车辆信息表数据结构:车辆信息表数据流名:查看车辆信息说明:员工查看车辆信息数据流来源:车辆信息表数据流去向:员工数据结构:车辆信息表数据流名:查看库存信息说明:员工查看库存信息数据流来源:库存表数据流去向:员工数据结构:库存表数据流名:形成合同说明:由租车信息形成合同数据流来源:租车信息数据流去向:合同数据结构:合同数据流名:合同记录说明:将形成的合同记录入合同表数据流来源:合同数据流去向:合同表数据结构:合同表数据流名:查看合同说明:员工和用户对合同进行查看数据流来源:合同表数据流去向:员工、用户数据结构:合同表数据流名:登录信息管理说明:管理员对登录信息进行管理数据流来源:管理员数据流去向:登录信息表数据结构:登录信息表数据存储数据存储名:租车用户表说明:租车用户注册或者员工对注册用户管理后所产生的信息表A1输入的数据流:租车用户注册、租车用户管理输出的数据流:查看用户信息组成:用户信息表、登录信息表数据存储名:员工信息表说明:员工注册或者管理员对员工信息进行管理后所产生的信息表A2输入的数据流:员工注册、员工管理输出的数据流:查看员工信息组成:员工信息表、登录信息表数据存储名:员工业绩表说明:根据员工业绩所产生的报表A4输入的数据流:员工业绩输出的数据流:员工业绩查询组成:租车表、员工业绩表数据存储名:登录信息表说明:员工和用户注册后包含他们登录信息(AccountPasswordPermission)的信息表A3输入的数据流:员工注册、员工管理、租车用户注册、租车用户管理输出的数据流:登录信息管理组成:员工信息表、用户信息表、登录信息表数据存储名:预租车表说明:用户提交给系统的租车信息B1输入的数据流:预租车辆信息输出的数据流:租车信息组成:预租车表、库存表、车辆信息表数据存储名:还车表说明:用户提交还车信息给系统所产生的信息表B2输入的数据流:预还车辆信息输出的数据流:还车入库、还车信息、还车记录组成:还车表、库存表、车辆信息表、租车信息表数据存储名:库存表说明:车辆信息录入以及之后的车辆信息变动所产生的信息表B3输入的数据流:还车入库、租车减库输出的数据流:预租车辆信息组成:预租车表、还车表、库存表数据存储名:车辆信息表说明:员工对车辆信息进行录入、删除、修改后所产生的信息表B4输入的数据流:租车信息、还车信息、车辆信息表输出的数据流:查看车辆信息组成:车辆信息表、还车表、预租车表数据存储名:合同表说明:有租车信息打印合同所产生的信息表B6输入的数据流:租车信息、合同表输出的数据流:查看合同组成:合同表处理过程处理过程名:员工注册说明:员工注册的处理过程输入:员工基本信息、员工登录信息输出:是否注册成功处理:检验员工输入信息是否合法,将合法信息录入员工信息表处理过程名:员工管理说明:管理员对员工信息进行管理的处理过程输入:员工更改信息输出:员工信息表处理:检验更改信息是否合法,将更改信息录入员工信息表处理过程名:查看员工信息说明:管理员查看员工信息的处理过程输入:员工**号输出:员工信息处理:检索员工**号(唯一)显示员工信息处理过程名:员工业绩结算说明:结算员工信息的处理过程输入:员工管理的租车信息历史输出:员工业绩表处理:按月算出员工业绩、累加总业绩到业绩表处理过程名:员工业绩查询说明:管理员对员工的业绩查询、员工对自己的业绩查询的处理过程输入:员工标志信息(**号)输出:员工业绩表处理:检索员工标志信息(**号)显示员工信息处理过程名:用户注册说明:用户注册的处理过程输入:用户基本信息、登录信息输出:是否注册成功处理:检验输入信息是否合法,将合法信息录入用户信息表处理过程名:用户管理说明:员工对用户信息进行管理的过程输入:用户更改信息输出:用户信息表处理:检验更改信息是否合法,将合法信息录入用户信息表处理过程名:查看用户信息说明:员工查看用户信息的过程输入:用户标志信息(**号)输出:用户信息表处理:检索用户标志信息(**号)显示用户信息处理过程名:用户/员工登录说明:用户/员工登录的处理过程输入:登录**、密码输出:是否登录成功处理:检查登录**和密码是否预数据库中的一致,成功显示主界面,不成功则提示登录失败,并提示重新登录。处理过程名:租车界面说明:用户在租车界面进行租车输入:预租车辆信息输出:库存信息处理:系统输出库存信息给用户选择处理过程名:预租车说明:用户提交预租车辆信息给系统输入:预租车信息输出:预租车表处理:检验预租车信息,将预租车信息录入预租车信息表处理过程名:同意租车说明:员工对用户提交的预租车表判断是否同意输入:预租车信息输出:是否同意处理:员工对预租车信息进行判断,适合就点同意,不适合就点不同意处理过程名:租车给用户说明:系统租车给用户输入:预租车表输出:车辆信息表处理:系统比对预租车表和车辆信息表选择适合的车辆租给用户,对租出的车辆的租用状态进行更改处理过程名:租车减库说明:把租出的车辆的信息从库存表中减除输入:租车信息输出:改动的库存表处理:把租出去的车辆的类型的量的数量从库存表减出处理过程名:记录租车说明:记录租车信息到租车表输入:租车信息输出:租车表处理:将租出的车辆信息记录到租车表处理过程名:预还车说明:用户提交预还车信息到系统输入:预还车信息输出:还车表处理:将用户提交的还车信息记录到还车表处理过程名:同意还车说明:员工对用户提交的还车信息判断是否同意输入:还车表输出:是否同意处理:员工对用户的还车表进行判断,适合点同意,不适合点不同意处理过程名:还车信息说明:将归还的车辆信息比对到车辆信息输入:还车表输出:车辆信息表处理:将还车表信息比对车辆信息表,更改租用状态处理过程名:还车入库说明:将归还车辆信息比对到库存表输入:还车表输出:库存表处理:将还车信息比对库存表,更改库存数量处理过程名:还车记录说明:将还车信息记录到租车表输入:还车表输出:租车表处理:比对还车表租车表,记录还车日期到租车表处理过程名:查看租车信息说明:员工查看租车信息输入:租车标志信息(用户编号)输出:租车信息处理:检索租车标志信息,显示租车信息处理过程名:车辆信息管理说明:员工对车辆信息进行管理输入:车辆的更改信息(添加、删除、修改)输出:车辆信息表处理:将员工更改的车辆信息录入车辆信息表处理过程名:查看车辆信息说明:员工查看车辆信息输入:车辆标志信息(车辆编号)输出:车辆信息处理:检索车辆标志信息,显示车链信息处理过程名:形成合同说明:将租车信息形成合同输入:租车信息输出:合同处理:将租车信息录入合同模版,形成合同处理过程名:记录合同说明:记录合同信息到合同表输入:合同信息输出:合同表处理:系统读取合同信息,将合同信息录入到合同表中处理过程名:查看合同说明:员工查看合同输入:合同标志信息(合同编号)输出:合同信息处理:检索合同标志信息,显示合同信息处理过程名:登录信息管理说明:管理员对登录信息的权限进行管理输入:登录信息的更改输出:更改后登录信息处理:将管理员更改后的登录信息录入系统处理过程名:查看库存说明:员工查看库存输入:车辆标志信息(类型,品牌,型号)输出:库存里的车辆信息(数量,日租金)处理:检索车辆标志信息,显示库存里的车辆信息第三章软件概要设计(1)系统目标、总体设计、运行设计等1.系统目标系统的整体目标是:利用互联网和信息化技术,结合汽车租赁经营的实际运作情况,建设一个覆盖汽车租赁经营全部业务的“汽车租赁管理信息系统”,通过该系统提高企业信息化水平,完善经营管理体系,提高员工素质,进一步加强企业市场竞争能力。2.总体设计“汽车租赁管理信息系统”中的总体设计可以包括以下几个方面:客户可以通过网上、前台预订车辆;能够保存客户的预订申请单;能够保存客户的历史记录;员工可以处理客户申请;员工可以处理车辆信息;管理员除了管理员工信息还可以查看合同信息。满足上述需求的系统主要包括以下几个模块:基本数据维护模块:该模块提供了使用者录入、修改并维护基本数据的途径。基本业务模块:在系统中,客户可以填写汽车租赁申请表,员工处理这些表格;同时,员工还可以修改每辆车的状态,以便员工根据这些资料决定是否批准客户的请求。数据库管理模块:在系统中,对所有客户、员工以及车辆的信息都要进行统一管理,车辆的租赁情况也要进行详细的登记。信息查询模块:该模块主要用于查询相关信息。3.运行设计基本数据维护模块基本数据维护模块包括的主要功能模块:添加用户信息修改用户信息删除用户信息添加员工信息修改员工信息删除员工信息添加车辆信息修改车辆信息删除车辆信息基本业务模块基本业务模块包含的功能:用户填写预定申请员工处理预定请求员工处理预定还车数据库模块数据库模块的功能:客户信息管理车辆信息管理租赁信息管理职员信息管理信息查询模块信息查询模块是查询数据库中的相关信息,包括:查询客户信息查询职员信息查询车辆信息查询合同信息查询业绩信息软件功能图以及每一个功能所完成的任务查看报表修改内部人员删除内部人员查看内部人员添加内部人员员工信息管理查看业绩准许还车准许租车合同信息出租列表租车管理添加车辆信息删除车辆信息修改车辆信息查看车辆信息车辆信息管理删除客户信息查看客户信息查看合同信息租车还车个人信息浏览查看车辆信息租车用户租车用户信息管理管理员员工汽车租赁系统查看报表修改内部人员删除内部人员查看内部人员添加内部人员员工信息管理查看业绩准许还车准许租车合同信息出租列表租车管理添加车辆信息删除车辆信息修改车辆信息查看车辆信息车辆信息管理删除客户信息查看客户信息查看合同信息租车还车个人信息浏览查看车辆信息租车用户租车用户信息管理管理员员工汽车租赁系统第四章数据库设计数据库概念设计(E-R图)车辆编号租用状态车牌号车辆类型单价押金车辆编号租用状态车牌号车辆类型单价押金车辆信息表车辆信息表车辆状况车辆状况车辆型号颜色是否注册车辆品牌车辆型号颜色是否注册车辆品牌租车用户编号归还日归还月归还年车辆编号租车用户编号归还日归还月归还年车辆编号还车表还车表租车用户编号预归还月预归还年出租日出租月出租年车辆编号租车用户编号预归还月预归还年出租日出租月出租年车辆编号租车表租车表预归还日总价押金员工编号预归还日总价押金员工编号居住地性别员工**号员工**员工编号居住地性别员工**号员工**员工编号员工表员工表银行卡号登录账号是否注册银行卡号登录账号是否注册租车用户**号驾驶证号性别居住地租车用户**租车用户编号租车用户**号驾驶证号性别居住地租车用户**租车用户编号租车用户表租车用户表登录账号信誉度是否注册登录账号信誉度是否注册车辆类型单价数量车辆型号车辆品牌车辆类型单价数量车辆型号车辆品牌库存表库存表租车用户编号预归还月预归还年出租日出租月出租年车辆编号租车用户编号预归还月预归还年出租日出租月出租年车辆编号租车表租车表预归还日总价押金预归还日总价押金数据库逻辑设计1.关系模型用户(用户编号,用户**,用户**号,驾驶证号,性别,居住地,,登录账号,信誉度,是否注册)员工(员工编号,员工**,员工**号,性别,,居住地,银行卡号,登录账号,是否注册)车辆信息(车辆编号,车牌号,车辆类型,单价,押金,租用状态,车辆状况,车辆品牌,车辆型号,颜色,是否注册)库存(车辆类型,车辆品牌,车辆型号,数量,单价)租车(用户编号,车辆编号,出租年,出租月,出租日,欲归还年,欲归还月,预归还日,总价,押金,员工编号)还车(用户编号,车辆编号,归还年,归还月,归还日)预租车(用户编号,车辆编号,出租年,出租月,出租日,预归还年,预归还月,预归还日,总价,押金)主关键字和唯一键表名列名属性USERUno主键Uid唯一键Udri唯一键Account唯一键STAFFSno主键Sid唯一键Scardid唯一键Account唯一键LOGINAccount主键CARo主键Cid唯一键RENTUno主键oRETURNUno主键oTRENTUno主键oSTOCKCtype主键CbrandCmodelCONTRACTCONno主键Uid唯一键Sid唯一键Cid唯一键PERFORMANCESno主键用户的信息内容为:用户名,用户密码。第五章详细设计与功能实现(1)登陆功能JAVA代码登陆界面在网上搜集了图片素材,然后在图片的基础上,将文本框和按钮设置为透明,将其放在图片的基础上,这样就实现了在有素材的基础上,写出属于自己的界面。在设计界面的时候使用了PHOTOSHOP设计,设计出了界面,通过了全组成员的投票后,才开始进行前台代码的设计。这样做的目的是为了不重复修改界面,一次性确定了界面,就可以进行编写。另外登陆界面的每一个文本输入框都添加了数据约束来确保数据的正确性,输入正确的用户名和密码后系统会根据用户名的权限显示不同的界面。登陆界面的设计思想与其他界面的设计思想相似,其他界面不再累述。…………(引用的包)publicclassdljm{publicstaticintno;dljm(){}publicvoidzjm(){ intwidth,height; JFrameframe=newJFrame("汽车租赁管理系统——网络131"); frame.setDefaultCloseOperation(JFrame.E*IT_ON_CLOSE);//设置关闭的事件rame.setSize(910,510);//设置大小frame.setResizable(false);frame.setLayout(null); DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();DimensionframeSize=frame.getSize();if(frameSize.height>screenSize.height)frameSize.height=screenSize.height;if(frameSize.width>screenSize.width)frameSize.width=screenSize.width;width=(screenSize.width-frameSize.width)/2;height=(screenSize.height-frameSize.height)/2-20;frame.setLocation(width,height); JPanelpanel=newJPanel();panel.setBounds(0,0,1000,700); ImageIconbg=newImageIcon("汽车背景.jpg"); JLabellabel=newJLabel(bg);label.setBounds(0,0,bg.getIconWidth(),bg.getIconHeight());frame.getLayeredPane().add(label,newInteger(Integer.MIN_VALUE));JPanelimagePanel=(JPanel)frame.getContentPane();imagePanel.setOpaque(false);panel.setOpaque(false);panel.setLayout(null);panel.setBackground(newColor(0,100,255));//标题集合JLabelyhm=newJLabel("用户名:");yhm.setBounds(560,113,60,50);//用户名标题位置JLabelmima=newJLabel("密码:");mima.setBounds(560,145,60,50);//密码标题位置JLabelzhaohuimima=newJLabel("找回密码");zhaohuimima.setBounds(580,180,60,50);zhaohuimima.setForeground(Color.blue);JLabelzhuce=newJLabel("注册");zhuce.setBounds(670,180,60,50);zhuce.setForeground(Color.blue);//文本框集合JTe*tFieldzhmnr=newJTe*tField();zhmnr.setSize(95,20);//用户名文本框大小zhmnr.setLocation(635,126);//用户名文本框位置zhmnr.setBorder(null);//去边框zhmnr.setOpaque(false);//设置透明JPasswordFieldmmnr=newJPasswordField();mmnr.setSize(95,20);//密码文本框大小mmnr.setLocation(635,157);//密码文本框位置mmnr.setBorder(null);//去边框mmnr.setOpaque(false);//设置透明//按钮集合uttondl=newutton();dl.setSize(56,56);//按钮大小dl.setLocation(766,130);//按钮位置dl.setContentAreaFilled(false);//按钮的设置透明的方法dl.setBorder(null);//去边框dl.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//在按钮上有小手dl.addActionListener(newActionListener(){OverridepublicvoidactionPerformed(ActionEvente){Stringurl="jdbc:sqlserver://:1433;databaseName=汽车租赁系统;USER=sjk;password=123456";//sa身份连接Connectioncon=null;Statementstmt=null;ResultSetrs=null;inti=0;try{Class.forName(".microsoft.sqlserver.jdbc.SQLServerDriver");con=DriverManager.getConnection(url);StringSQL="selectPasswordfromLOGIN1whereAccount='"+zhmnr.getTe*t()+"'";stmt=con.createStatement();rs=stmt.e*ecuteQuery(SQL);while(rs.ne*t()){i=1;}} catch(E*ceptionqqq){qqq.printStackTrace();}if(i==1){inti1=0;Stringmm=newString(mmnr.getPassword());try{Class.forName(".microsoft.sqlserver.jdbc.SQLServerDriver");con=DriverManager.getConnection(url);StringSQL1="select*fromLOGIN1whereAccount='"+zhmnr.getTe*t()+"'andPassword='"+mm+"'";stmt=con.createStatement();rs=stmt.e*ecuteQuery(SQL1);while(rs.ne*t()){ i1=1;}}catch(E*ceptionqqq){qqq.printStackTrace();}if(i1==1){try{Class.forName(".microsoft.sqlserver.jdbc.SQLServerDriver");con=DriverManager.getConnection(url);StringSQL2="selectPermissionfromLOGIN1whereAccount='"+zhmnr.getTe*t()+"'";stmt=con.createStatement();rs=stmt.e*ecuteQuery(SQL2);while(rs.ne*t()){ if(rs.getInt(1)==1) { yhjm**=newyhjm();try{ Class.forName(".microsoft.sqlserver.jdbc.SQLServerDriver"); con=DriverManager.getConnection(url); StringSQL3="selectUnofromUser1whereAccount='"+zhmnr.getTe*t()+"'"; stmt=con.createStatement();rs=stmt.e*ecuteQuery(SQL3);while(rs.ne*t()){no=rs.getInt(1);//cl**jm.no=no;}}catch(E*ceptionqqq){ qqq.printStackTrace(); } frame.setVisible(false);**.jm();} else { if(rs.getInt(1)==2) { cl**jm**=newcl**jm();try{Class.forName(".microsoft.sqlserver.jdbc.SQLServerDriver");con=DriverManager.getConnection(url);StringSQL3="selectSnofromSTAFFwhereAccount='"+zhmnr.getTe*t()+"'";stmt=con.createStatement();rs=stmt.e*ecuteQuery(SQL3);while(rs.ne*t()){no=rs.getInt(1);}}catch(E*ceptionqqq){ qqq.printStackTrace(); } frame.setVisible(false);**.jm(); } else { cl**jm**=newcl**jm();frame.setVisible(false);**.glyjm();}}}}catch(E*ceptionqqq){ qqq.printStackTrace(); } }else{ JOptionPane.showMessageDialog(null,"密码错误,请检查");}}else{JOptionPane.showMessageDialog(null,"账号不存在,请检查");}}});uttonzhmm=newutton();//找回密码按钮zhmm.setSize(60,50);zhmm.setLocation(580,180);zhmm.setContentAreaFilled(false);//按钮的设置透明的方法zhmm.setBorder(null);//去边框zhmm.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//在按钮上有小手zhmm.addActionListener(newActionListener(){OverridepublicvoidactionPerformed(ActionEvente){zhmmjm**=newzhmmjm();**.jm();}});uttonzc=newutton();//注册按钮zc.setSize(60,50);zc.setLocation(670,180);zc.setContentAreaFilled(false);//按钮的设置透明的方法zc.setBorder(null);//去边框zc.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//在按钮上有小手zc.addActionListener(newActionListener(){OverridepublicvoidactionPerformed(ActionEvente){zcjmzhuce=newzcjm();zhuce.zhucejiemian();}});……(显示控件)}publicstaticintgetno(){ returnno;}}(2)用户预租车功能JAVA代码租车系统的核心是租车和换车功能,我们将此功能细分为租车用户的预租车和预还车以及员工的准许租车和准许还车。预租车主要涉及预租车表的添加操作。首先我们根据租车用户选择的汽车类型、汽车品牌和汽车型号来选择一辆可租并可用的汽车预分配给该用户,同时我们限定租车的日期必须在当前天数之后,并且使用Java的DATE包对日期进行操作从而根据用户所选择的预租车日期和租车天数来计算出预还车日期。之后根据汽车信息表中的预分配的汽车单价与天数相乘得出总价,并将汽车编号、汽车押金、汽车预租日期、汽车预还日期与汽车总价一起添加进预租车表。publicvoidyuzuche(Strings1,Strings2,Strings3,Dated1,inti){ Stringurl="jdbc:sqlserver://:1433;databaseName=汽车租赁系统;USER=sjk;password=123456";//sa身份连接Connectioncon=null;Statementstmt=null;ResultSetrs=null; try {Class.forName(".microsoft.sqlserver.jdbc.SQLServerDriver");con=DriverManager.getConnection(url);StringSQL2="selecto,Cpledge,CcostfromCARwhereCtype='"+s1+"'andCbrand='"+s2+"'andCmodel='"+s3+"'andClstate='可租用'andCcstate='可使用'";stmt=con.createStatement();rs=stmt.e*ecuteQuery(SQL2);rs.ne*t();} catch(E*ceptionqqq){ qqq.printStackTrace();} try { BigDecimalzongjia;BigDecimaldanjia=newBigDecimal(rs.getDouble(3)); BigDecimaltianshu=newBigDecimal(i); zongjia=tianshu.multiply(danjia); Dated2=getyhcrq(d1,i); SimpleDateFormatsdf2=newSimpleDateFormat("yyyy-MM-dd");StringnewStr1=sdf2.format(d1);//改变格式StringnewStr2=sdf2.format(d2);//改变格式Class.forName(".microsoft.sqlserver.jdbc.SQLServerDriver");con=DriverManager.getConnection(url);StringSQL3="INSERTINTOTRENT(Uno,o,[RyearRmonRday],[TREyearTREmonTREday],Rprice,Cpledge)values('"+no2+"','"+rs.getInt(1)+"','"+newStr1+"','"+newStr2+"','"+zongjia+"','"+rs.getString(2)+"')";stmt=con.createStatement();intn=stmt.e*ecuteUpdate(SQL3); } catch(E*ceptionqqq){ qqq.printStackTrace();}}(3)用户预还车功能JAVA代码预还车主要涉及还车表的添加操作。我们根据租车用户选择的所还车辆的车辆编号、Java中的Date函数确定的当前日期以及当前租车用户的用户编号添加到还车表。publicvoidhuanche(Strings){ Stringurl="jdbc:sqlserver://:1433;databaseName=汽车租赁系统;USER=sjk;password=123456";//sa身份连接Connectioncon=null;Statementstmt=null;ResultSetrs=null;//ResultSetrs1=null;ints1=zhaoo(s); try { SimpleDateFormatdf=newSimpleDateFormat("yyyy-MM-dd");//设置日期格式 // StringnewStr=df.format(newDate());Class.forName(".microsoft.sqlserver.jdbc.SQLServerDriver");con=DriverManager.getConnection(url);StringSQL2="INSERTINTORETURN1(Uno,o,[REyearREmonREday])values('"+no2+"','"+s1+"','"+newStr+"')";stmt=con.createStatement();intn=stmt.e*ecuteUpdate(SQL2);} catch(E*ceptionqqq){ qqq.printStackTrace();}}(4)员工准许租车功能JAVA代码准许租车主要涉及租车表的添加操作、合同表的添加操作、预租车表的删除操作、车辆信息表的修改操作、业绩表的修改操作、库存表的修改操作。我们根据预租车表的提供的车辆编号、租车用户的用户编号、员工编号、车辆押金、租车总价、车辆预租日期、车辆预还日期将其插入到租车表。之后我们根据车辆编号找到车牌号,根据租车用户的用户编号找到租车用户的**号,根据员工编号找到员工**号,再加上车辆押金、租车总价、车辆预租日期、车辆预还日期,添加到合同表。然后我们将对应同意的预租车表的信息删除,将车辆信息表中对应出租的车辆的租用情况改为不可租,将业绩表中对应员工的员工业绩增加,将库存表中对应车辆类型、车辆品牌、车辆型号的车辆数目减一。publicvoidzhun*uzuche(Strings1,Strings2){ Stringurl="jdbc:sqlserver://:1433;databaseName=汽车租赁系统;USER=sjk;password=123456";//sa身份连接Connectioncon=null;Statementstmt=null;ResultSetrs=null;ResultSetrs1=null;ResultSetrs2=null;intss1=zhaoUno(s1);intss2=zhaoo(s2);intj=0;inta=0,b=0;int[]ii=newint[3];String[]ss=newString[4];String[]sss=newString[3];String[]ssss=newString[3]; try {Class.forName(".microsoft.sqlserver.jdbc.SQLServerDriver");con=DriverManager.getConnection(url);StringSQL="selectUno,o,[RyearRmonRday],[TREyearTREmonTREday],Rprice,CpledgefromTRENTwhereUno="+ss1+"ando="+ss2+"";stmt=con.createStatement();rs=stmt.e*ecuteQuery(SQL);rs.ne*t();ii[0]=rs.getInt(1);//Unoii[1]=rs.getInt(2);//oss[0]=rs.getString(3);//Rss[1]=rs.getString(4);//TREss[2]=rs.getString(5);//Rpricess[3]=rs.getString(6);//Cpledge} catch(E*ceptionqqq){ qqq.printStackTrace();}try {Class.forName(".microsoft.sqlserver.jdbc.SQLServerDriver");con=DriverManager.getConnection(url);StringSQL="selectCtype,Cbrand,CmodelfromCARwhereo="+ss2+"";stmt=con.createStatement();rs1=stmt.e*ecuteQuery(SQL);rs1.ne*t();ssss[0]=rs1.getString(1); ssss[1]=rs1.getString(2); ssss[2]=rs1.getString(3);} catch(E*ceptionqqq){ qqq.printStackTrace();}try {Class.forName(".microsoft.sqlserver.jdbc.SQLServerDriver");con=DriverManager.getConnection(url);StringSQL="selectAmountfromSTOCKwhereCtype='"+ssss[0]+"'andCbrand='"+ssss[1]+"'andCmodel='"+ssss[2]+"'";stmt=con.createStatement();rs2=stmt.e*ecuteQuery(SQL);rs2.ne*t();j=rs2.getInt(1)-1;} catch(E*ceptionqqq){ qqq.printStackTrace();}try {Class.forName(".microsoft.sqlserver.jdbc.SQLServerDriver");con=DriverManager.getConnection(url);StringSQL="selectPERmon,PERfromPERFORMANCEwhereSno="+no1+"";stmt=con.createStatement();rs2=stmt.e*ecuteQuery(SQL);rs2.ne*t(); a=rs2.getInt(1)+Integer.valueOf(String.valueOf((int)Double.parseDouble(ss[2]))).intValue();b=rs2.getInt(1)+Integer.valueOf(String.valueOf((int)Double.parseDouble(ss[2]))).intValue();} catch(E*ceptionqqq){ qqq.printStackTrace();}try { sss[0]=zhaoUid(ii[0]); sss[1]=zhaoCid(ii[1]); sss[2]=zhaoSid(no1);Class.forName(".microsoft.sqlserver.jdbc.SQLServerDriver");con=DriverManager.getConnection(url);StringSQL1="INSERTINTORENT(Uno,o,[RyearRmonRday],[TREyearTREmonTREday],Rprice,Cpledge,Sno)values('"+ii[0]+"','"+ii[1]+"','"+ss[0]+"','"+ss[1]+"','"+ss[2]+"','"+ss[3]+"','"+no1+"')";StringSQL2="INSERTINTOCONTRACT(CONno,Uid,Sid,Cid,[RyearRmonRday],[TREyearTREmonTREday],Rprice,Cpledge)values('"+nCONno()+"','"+sss[0]+"','"+sss[2]+"','"+sss[1]+"','"+ss[0]+"','"+ss[1]+"','"+ss[2]+"','"+ss[3]+"')";StringSQL3="deletefromTRENTwhereUno='"+ii[0]+"'ando='"+ii[1]+"'";StringSQL4="UPDATECARSETCAR.Clstate='不可租'WHEREo="+ii[1]+"";StringSQL5="updateSTOCKsetSTOCK.Amount="+j+"whereCtype='"+ssss[0]+"'andCbrand='"+ssss[1]+"'andCmodel='"+ssss[2]+"'";StringSQL6="updatePERFORMANCEsetPERmon='"+a+"',PER='"+b+"'whereSno='"+no1+"'";stmt=con.createStatement();intn=stmt.e*ecuteUpdate(SQL1);n=stmt.e*ecuteUpdate(SQL2);n=stmt.e*ecuteUpdate(SQL3);n=stmt.e*ecuteUpdate(SQL4);n=stmt.e*ecuteUpdate(SQL5);n=stmt.e*ecuteUpdate(SQL6);} catch(E*ceptionqqq){ qqq.printStackTrace();}}(5)员工准许还车功能JAVA代码准许还车主要涉及租车表的删除操作、还车表的删除操作、车辆信息表的修改操作、租车用户表的修改、库存表的修改操作。我们根据还车表的提供的车牌号、租车用户的用户编号、车辆预还日期、还有车辆的归还情况来决定是否增加金额,之后删除对应的租车表、还车表,并对对应的车辆信息表进行对应的修改。之后我们根据换车的租

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论