汽车租赁系统《数据库课程设计》设计说明书.docx

上传人:b****0 文档编号:17867323 上传时间:2023-08-04 格式:DOCX 页数:26 大小:416.22KB
下载 相关 举报
汽车租赁系统《数据库课程设计》设计说明书.docx_第1页
第1页 / 共26页
汽车租赁系统《数据库课程设计》设计说明书.docx_第2页
第2页 / 共26页
汽车租赁系统《数据库课程设计》设计说明书.docx_第3页
第3页 / 共26页
汽车租赁系统《数据库课程设计》设计说明书.docx_第4页
第4页 / 共26页
汽车租赁系统《数据库课程设计》设计说明书.docx_第5页
第5页 / 共26页
汽车租赁系统《数据库课程设计》设计说明书.docx_第6页
第6页 / 共26页
汽车租赁系统《数据库课程设计》设计说明书.docx_第7页
第7页 / 共26页
汽车租赁系统《数据库课程设计》设计说明书.docx_第8页
第8页 / 共26页
汽车租赁系统《数据库课程设计》设计说明书.docx_第9页
第9页 / 共26页
汽车租赁系统《数据库课程设计》设计说明书.docx_第10页
第10页 / 共26页
汽车租赁系统《数据库课程设计》设计说明书.docx_第11页
第11页 / 共26页
汽车租赁系统《数据库课程设计》设计说明书.docx_第12页
第12页 / 共26页
汽车租赁系统《数据库课程设计》设计说明书.docx_第13页
第13页 / 共26页
汽车租赁系统《数据库课程设计》设计说明书.docx_第14页
第14页 / 共26页
汽车租赁系统《数据库课程设计》设计说明书.docx_第15页
第15页 / 共26页
汽车租赁系统《数据库课程设计》设计说明书.docx_第16页
第16页 / 共26页
汽车租赁系统《数据库课程设计》设计说明书.docx_第17页
第17页 / 共26页
汽车租赁系统《数据库课程设计》设计说明书.docx_第18页
第18页 / 共26页
汽车租赁系统《数据库课程设计》设计说明书.docx_第19页
第19页 / 共26页
汽车租赁系统《数据库课程设计》设计说明书.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

汽车租赁系统《数据库课程设计》设计说明书.docx

《汽车租赁系统《数据库课程设计》设计说明书.docx》由会员分享,可在线阅读,更多相关《汽车租赁系统《数据库课程设计》设计说明书.docx(26页珍藏版)》请在冰点文库上搜索。

汽车租赁系统《数据库课程设计》设计说明书.docx

汽车租赁系统《数据库课程设计》设计说明书

 

设计说明书

 

课程名称《数据库课程设计》

题目名称汽车租赁管理系统

学生姓名学号

专业

指导教师

 

年月日

 

目录

第一章系统概述1

1.1背景1

1.2发展现状1

第二章需求分析2

2.1功能需求2

2.2数据需求3

第三章系统设计5

3.1系统结构5

3.2数据库设计5

3.2.1ER图5

3.2.2逻辑结构6

3.2.3数据库物理结构7

3.2.4数据库实现9

3.3用户控制系统9

3.4模块设计10

3.4.1汽车管理模块设计10

3.4.2基本设置模块设计11

第四章系统实现11

4.1用户登录模块11

4.2汽车管理模块实现12

4.3汽车预租模块实现16

第五章后记18

5.1完善计划18

5.2个人总结19

参考文献19

第一章系统概述

1.1背景

今天,随着人民生活水平的提高,汽车工业的发展和汽车的普及,汽车如今已经与我们的生活密不可分,而汽车租赁也已成为一个极具市场潜力的行业,面对飞速发展的汽车租赁市场,其经营管理的汽车种类繁多,样式各异,客户需求量大,客户要求高,每天的工作量大,一套完整的管理系统对于汽车租赁公司来说已经十分重要,在信息飞速发展的今天,计算机在事务管理方面的应用已经相当广泛,但目前很多汽车租赁公司还停留在人工管理的水平上,显然不适应时代的发展,管理人员目前需要一套方便、计算机化的管理信息系统来代替他们繁琐、低效的传统手工管理方式,并最终实现汽车租赁管理的全面自动化,使用汽车租赁管理系统可以规范企业的管理和经营行为,减少企业的经营成本,提高工作效率。

汽车租赁管理系统是为汽车租赁公司提供的一个简单易用的系统,随着科技的发展,设备和管理的现代化,在实际工作中如何提高工作效率成为一个很重要的问题。

而建立管理系统是一个很好的解决办法。

1.2发展现状

目前市场上相关系统并不多,毕竟汽车租赁行业也算是个新兴的产业,但由于它的飞速发展,市场也看到了它的设计价值,不过大都大同小异,一般市场上的汽车租赁管理系统多是针对汽车租赁的业务处理的一种系统,其它管理层面也有涉及,只是比较简略,一般包括基本设置、综合管理、业务处理、查询报表、统计排行以及系统管理等模块,优点在于业务处理模块比较结合实际,所以对于日常的汽车租赁管理系统已经不成问题,但缺点也是存在的。

如汽车照片的存储仍然采取相对路径的存储,用户密码的安全性做得不够,系统的扩展性也不是很全等。

因此,我们决定利用所学知识设计一个汽车租赁管理系统,主要是针对汽车租赁的基本设置、综合管理、业务处理、查询报表、统计排行以及系统管理进行全面管理的系统,而并不再是只注重于业务处理,并且我们将解决一些问题,如汽车照片用二进制进行存取,用户密码进行双重加密,基本设置模块更好地体现系统的扩展性,报表的打印,SQL语句利用视图跟存储过程,以增强系统的访问安全性,试图完善汽车租赁管理系统的安全性跟扩展性,让其更人性化,更好地服务于汽车租赁公司。

 

第二章需求分析

2.1功能需求

经过调研及分析,汽车租赁管理系统主要完成以下功能:

(1)综合管理

此模块主要对客户(包括普通客户跟会员),员工以及汽车的具体信息进行管理,分为普通客户管理,会员管理,员工管理以及汽车管理。

汽车管理:

管理员可以对租赁公司现已拥有的汽车的具体信息进行查看,修改信息或者删除档案(当汽车报废或不再租赁时),而且是可以批量删除的,也可添加新购进的汽车的具体信息,以便更快地投入租赁市场,方便客户了解,以便做出更好的租赁选择。

普通客户管理/会员管理:

管理员对客户的资料(包括普通客户跟会员)可以进行查看,添加新客户,修改一些基本资料以及删除客户档案;

员工管理:

对聘用的员工的资料也可以进行查看,对新聘用的员工添加其详细信息,修改一些基本信息以及删除员工档案。

(2)业务管理

此模块提供对汽车日常业务进行管理,包括汽车预租/出租/续租,汽车加油,汽车维修,还车结算,催车还交以及事故登记。

汽车预租:

员工可以根据客户需求帮其预租汽车,可以查看及修改预租的相关信息,但是不可以删除客户之前已经预租的汽车,管理员可以修改以及取消客户之前已经预租的汽车,可以查看已经预租汽车的情况等。

汽车出租:

员工可以根据客户的需求出租汽车,可以查看及修改出租的相关信息,但也不可以删除已经出租的汽车,而管理员则可以修改,查看以及删除出租汽车的相关情况。

当汽车出租时可以打印相关合同,双方签订合同。

汽车续租:

在客户出租汽车的还车时间三天之前可前往汽车租赁公司办理汽车续租手续,员工在检查完汽车的相关情况后,可根据实际情况调整还车时间以便达到续租的目的。

汽车加油:

员工可以进行记录相关加油情况,修改,删除加油记录。

汽车维修:

员工可以进行记录汽车相关维修情况,修改,删除维修记录。

还车结算:

员工对来还车的客户进行查询,统计其它费用(如事故费,罚金费等),算出总费用,收款后返回客户押金以及客户抵押件等。

催车还交:

员工可以根据出租汽车的还车时间,催促那些还车时间快到了的客户及时还车以免交罚金。

事故登记:

员工应该根据所出租的汽车发生的事故的具体情况登记入表,以便以后查询,也可修改或删除信息。

(3)基本设置管理

此模块提供对汽车信息设置以及服务信息设置的全面管理功能。

包括汽车设置管理与服务设置管理等。

管理员可以对一些基本信息进行添加,修改,删除。

汽车设置管理包括汽车类型设置,汽车名称设置,燃油类型设置;服务设置管理包括修理厂设置,加油站设置,保险类型设置。

这项管理可以使管理员更好地根据租赁公司实际情况修改汽车以及服务的一些基本信息,使系统更适合其公司的运营,而且管理员只需在设置界面进行修改,而不需自己修改数据库,更体现出系统的人性化。

(4)查询报表

此模块分为加油记录查询,维修记录查询,汽车预租查询,汽车出租查询,还车结算查询,事故记录查询,单车租赁查询,汽车资料查询,会员资料查询,客户资料查询以及员工资料查询。

此模块可对客户,员工以及汽车相关业务的情况进行查询,对查询到的相关信息可以生成相应的Excel文件以及打印报表,尤其是汽车资料查询还可以生成显示照片的报表等。

(5)统计排行

此模块根据汽车出租次数的实际情况可以统计出本周/本月/全部排行,进而有利于管理员分析购买哪些汽车能使公司的利润最大化。

还可以根据客户(包括普通客户和会员)租赁汽车的次数,统计出其排行,有利于管理员有针对性地对某些客户进行高质里的服务。

(6)系统维护

备份数据:

可以提供直接备份数据库的相关数据

还原数据:

当系统出现异常状况时可以通过此还原数据库的相关数据

修改密码:

可以账户修改登录密码,密码是采取双重MD5加密,使其更具安全性。

2.2数据需求

系统外部:

实物或单据:

实物或信息流向

处理:

数据存储

图2-1综合管理流程图

图2-2汽车预租流程图

图2-3汽车出租、续租流程图

图2-4还车结算流程图

图2-5汽车加油、维修、事故流程图

图2-6基本设置流程图

第三章系统设计

3.1系统结构

此汽车租赁管理系统主要实现6个大的功能模块:

综合管理、业务管理,基本设置,查询报表、统计排行、系统维护。

每个模块有分成多详细的功能子模块。

详情如下图3-1所示:

图3-1系统结构图

3.2数据库设计

3.2.1ER图

3.2.2逻辑结构

1、用户信息表

用户(uid,users,pwd,type)

分析:

因为uid是主键,而且users不允许重复,所以主键只有一个属性,不存在部分依赖;又因为uidusers,所以不存在非主属性对主键uid的传递依赖,所以该关系属于3NF。

2、客户信息表

客户(kid,ktype,kname,ksex,ksf,kdy,ktel,klic,kadd,ktimes)

分析:

因为只有kid是主键,所以不存在部分依赖,因此该关系属于2NF。

但存在非主属性kname通过ktel对主键kid的传递依赖,所以该关系不属于3NF。

3、员工信息表

员工(eid,ename,esex,esf,etel,eadd)

分析:

因为只有eid是主键,所以不存在部分依赖,因此该关系属于2NF。

但存在非主属性ename通过etel对主键eid的传递依赖,所以该关系不属于3NF。

4、管理员信息表

管理员(uid,uname,usex)

分析:

因为只有uid是主键,所以不存在部分依赖,且不存在非主属性对主键uid的传递依赖,所以该关系属于3NF。

5、汽车信息表

汽车(cid,cname,ctype,cnum,cclor,clsu,coil,cpho,cmile,cgm,cbf,cdep,cdm,csta,ctimes)

分析:

因为cid是主键,而且cnum不允许重复,所以主键只有一个属性,不存在部分依赖;又因为cidcnum,所以不存在非主属性对主键cid的传递依赖,所以该关系属于3NF。

6、租赁情况表

租赁(htid,cid,eid,kid,renttype,renttime,returntime,mustmoney,des,regtime,rem)

分析:

因为只有htid是主键,所以不存在部分依赖,因此该关系属于2NF。

但存在非主属性des通过cid对主键htid的传递依赖,所以该关系不属于3NF。

7、加油表

加油(oid,cid,eid,oilstation,price,oilvolume,ototal,odate)

分析:

因为只有oid是主键,所以不存在部分依赖,且不存在非主属性对主键oid的传递依赖,所以该关系属于3NF。

8、维修表

维修(rid,cid,eid,rplace,rmat,rpmoney,rother,rtotal,rdate,rcon,rrem)

分析:

因为只有rid是主键,所以不存在部分依赖,且不存在非主属性对主键rid的传递依赖,所以该关系属于3NF。

9、事故登记表

事故(aid,cid,eid,aple,adate,aplace,acus,acon,adtime,arem)

分析:

因为只有aid是主键,所以不存在部分依赖,且不存在非主属性对主键aid的传递依赖,所以该关系属于3NF。

10、费用表

费用(htid,eid,kid,fdis,freturn,fother,ftotal)

分析:

因为只有htid是主键,所以不存在部分依赖,因此该关系属于2NF。

但存在非主属性fdis通过kid对主键htid的传递依赖,所以该关系不属于3NF。

11、基本信息表

基本信息(sid,uid,sstyle,sname)

分析:

因为只有sid是主键,所以不存在部分依赖,且不存在非主属性对主键sid的传递依赖,所以该关系属于3NF。

3.2.3数据库物理结构

1、视图

uh_kh:

select*from用户,客户wherekid=uid

kh_ht:

select*from客户

where(notexists(select*fromhtwherekid=客户.kid))

ht:

selecthtid,kname,ktype,ktel,cname,ctype,cnum,renttype,renttime,

returntime,mustmoney,des,regtime,rem,租赁.cid,租赁.kid,eid

from租赁,汽车,客户where租赁.cid=汽车.cidand客户.kid=租赁.kid

oil:

selectoid,加油.cid,加油.eid,oilstation,price,oilvolume,ototal,

odate,ename,cname,coilfrom加油,汽车,员工where加油.cid=汽车.cid

2、存储过程

u_xg:

createprocedureu_xg(@userschar(20),@pwdchar(35))as

update用户setpwd=@pwdwhereusers=@users

kh_tj:

createprocedurekh_tj(@userschar(20),@pwdchar(35),@ktypechar(8),@knamechar(10),@ksexchar(5),@ksfchar(20),@kdychar(10),@ktelchar(15),@klicchar(10),@kaddchar(25))asdeclare@kidnumeric(4)begin

insertinto用户(users,pwd,type)values(@users,@pwd,@ktype)

select@kid=uidfrom用户whereusers=@users

insertinto客户(kid,ktype,kname,ksex,ksf,kdy,ktel,klic,kadd)

values(@kid,@ktype,@kname,@ksex,@ksf,@kdy,@ktel,@klic,@kadd)

end

em_tj:

createprocedureem_tj(@userschar(20),@pwdchar(35),@typechar(8),@enamechar(10),@esexchar(6),@esfchar(20),@etelchar(15),@eaddchar(25))asdeclare@eidnumeric(4)begin

insertinto用户(users,pwd,type)values(@users,@pwd,@type)

select@eid=uidfrom用户whereusers=@users

insertinto员工values(@eid,@ename,@esex,@esf,@etel,@eadd)

end

car_xg:

createprocedurecar_xg(@cidnumeric(4),@cnamechar(10),@ctypechar(10),@cnumchar(10),@cclorchar(6),@clsuchar(10),@coilchar(6),@cphoimage,@cmilenumeric(5),@cgmdatetime,@cbfdatetime,@cdepmoney,@cdmmoney)asbegin

update汽车setcname=@cname,ctype=@ctype,cnum=@cnum,cclor=@cclor,

clsu=@clsu,coil=@coil,cpho=@cpho,cmile=@cmile,cgm=@cgm,cbf=@cbf,

cdep=@cdep,cdm=@cdmwherecid=@cid

end

3、触发器

csta_xg:

createtriggercsta_xgon租赁forinsertas

update汽车setcsta=(selectrenttypefrominserted)

wherecid=(selectcidfrominserted)

csta_xg2:

createtriggercsta_xg2on租赁forupdateas

if(selectcidfromdeleted)<>(selectcidfrominserted)

begin

update汽车setcsta='待租'wherecid=(selectcidfromdeleted)

update汽车setcsta=(selectrenttypefrominserted)

wherecid=(selectcidfrominserted)

update汽车setctimes=ctimes+1wherecid=(selectcidfrominserted)

update汽车setctimes=ctimes-1wherecid=(selectcidfromdeleted)

end

ctimes_xg:

createtriggerctimes_xgon租赁forinsertasdeclare@ctimesnumeric(4)

if(selectrenttypefrominserted)='出租'

update汽车setctimes=ctimes+1wherecid=(selectcidfrominserted)

ht_change:

createtriggerht_changeon租赁fordeleteas

update汽车setcsta='待租'wherecid=(selectcidfromdeleted)

3.2.4数据库实现

数据库创建语句:

IFEXISTS(SELECTnameFROMmaster.dbo.sysdatabasesWHEREname=N'car')

DROPDATABASE[car]

GO

CREATEDATABASE[car]ON(NAME=N'car_Data',FILENAME=N'C:

\ProgramFiles\MicrosoftSQLServer\MSSQL\data\car_Data.MDF',SIZE=8,FILEGROWTH=10%)LOGON(NAME=N'car_Log',FILENAME=N'C:

\ProgramFiles\MicrosoftSQLServer\MSSQL\data\car_Log.LDF',SIZE=5,FILEGROWTH=10%)

COLLATEChinese_PRC_CI_AS

GO

3.3用户控制系统

系统及数据库中用户访问控制体系可以用如下图3-2所示:

图3-2用户控制系统图

3.4模块设计

3.4.1汽车管理模块设计

此模块实现:

管理员可以对租赁公司现已拥有的汽车的具体信息进行查看,修改档案或者删除档案(当汽车报废或不再租赁时),而且是可以批量删除的,也可添加新购进的汽车的具体信息,以便更快地投入租赁市场,方便客户了解,以便做出更好的租赁选择。

此模块设计过程中,由于经常有大量的汽车照片需要保存,简便的方法是把图片存储在指定的文件夹下,数据库中只保存图片所在的路径和图片名,但是这种方法对数据的管理很不方便,同时安全性和可靠性也不能保证;另一种方法是把图片数据存储在数据库中,在数据库中提供了Image数据类型,该类型存储的是可变长度的二进制数,因此要把保存到数据库中的图片文件的类型转换成二进制数据类型。

利用MemoryStream类将图像文件以二进制的形式在数据库中直接进行读写操作。

此模块采用第二种方法即把图片以二进制的形式存储在数据库中,该方案解决了汽车租赁管理系统中数据库存储图像数据的问题,提高了汽车租赁管理系统的应用功能和范围。

由于图片的保存是一个独立的过程,在其它的模块开发中也可以方便的应用,提高了整个系统开发的效率。

另外,考虑到系统的人性化,添加,修改以及删除等操作采取了批处理,即可以批量添加,批量修改以及批量删除;而在批量删除时要注意在选中的行中从后面往前删,避免出现沙漏效应。

3.4.2基本设置模块设计

此模块实现:

提供对汽车信息设置以及服务信息设置的全面管理功能。

包括汽车设置管理与服务设置管理等。

管理员可以对一些基本信息进行添加,修改,删除。

汽车设置管理包括汽车类型设置,汽车名称设置,燃油类型设置;服务设置管理包括修理厂设置,加油站设置,保险类型设置。

这项管理可以使管理员更好地根据租赁公司实际情况修改汽车以及服务的一些基本信息,使系统更适合其公司的运营,而且管理员只需在设置界面进行修改,而不需自己修改数据库,更体现出系统的人性化。

第四章系统实现

4.1用户登录模块

1、界面如图4-1所示:

图4-1用户登录模块

2、重点代码

(1)、加密函数

PublicFunction加密(ByValstrSourceAsString)AsString

dataToHash=(NewSystem.Text.ASCIIEncoding).GetBytes(strSource)

hashvalue=CType(System.Security.Cryptography.CryptoConfig.CreateFromName("MD5"),System.Security.Cryptography.HashAlgorithm).ComputeHash(dataToHash)

Fori=0To15

strresult+=Hex(hashvalue(i)).ToLower

Next

Returnstrresult

EndFunction

(2)、连接数据库

PublicSub连接数据库()

Iftype.Trim="管理员"Then

con.ConnectionString="server=.;database=car;userid=admin;password=admin"

ElseIftype.Trim="员工"Then

con.ConnectionString="server=.;database=car;userid=employee;password=employee"

ElseIftype.Trim="客户"Then

con.ConnectionString="server=.;database=car;userid=kh;password=kh"

EndIf

cmd.Connection=con

EndSub

4.2汽车管理模块实现

1、界面如图4-2所示:

图4-2汽车管理模块

2、重点代码

(1)、批量删除

PublicSubdeletedgvs(ByRefdgvAsDataGridView,ByValsqlAsString)

count=dgv.SelectedRows.Count

res=MsgBox("确定删除这"&count&"条记录?

",1+32+0,"提示")

Ifres=1Then

Try

Fori=count-1To0Step-1

cmd.CommandText=sql&dgv.SelectedRows(i).Cells(0).Value&"'"

con.Open()

cmd.ExecuteNonQuery()

dgv.Rows.Remove(dgv.SelectedRows(i))

con.Close()

Next

Catchex

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2