资源描述
山东建筑大学计算机科学与技术学院
课程设计阐明书
题 目: 车辆租赁管理系统设计-汽车预约及提车还车管理
课 程: 数据库原理及应用课程设计
院 (部): 计算机科学与技术学院
专 业: 软件开发
完毕日期: .1.5
山东建筑大学计算机科学与技术学院
课程设计任务书
设计题目
车辆租赁管理系统分析和设计
已知技术参数和设计规定
1. 采用面向对象或构造化设计办法,在windows开发环境下进行。
2. 3-4人成立一种开发小组,选出小组项目负责人,并对小构成员按任务进行分工。
3. 严格按软件工程办法,分阶段进行开发(需求分析、概要及详细设计、编码、测试等)。
4. 规定每阶段产生软件工程文档等软件配备齐全、合理。
5.课程设计结束上交课程设计报告电子版、编码。
规定提交课程设计报告内容涉及:
1)问题定义 2)需求分析
3)概要设计 4)详细设计
5)程序设计 6)软件测试。
设计内容与环节
1、 需求分析
2、 数据库设计
3、 用SQL语句、触发器与存储过程等实现功能
4、 课程设计阐明书
设计工作筹划与进度安排
1、 设计工作6学时
2、 实现4学时
3、 课程设计阐明书2学时
设计考核规定
1、 考勤20%
2、 课程设计阐明书50%
3、 答辩30%
指引教师(签字): 教研室主任(签字):
目录
目录 3
1. 系统概述 4
2.需求分析 4
2.1 数据流图 4
2.2数据字典 6
3. 数据库概念构造设计 8
3.1 实体分析 8
3.2 数据库概念构造设计 9
4.数据库逻辑构造设计 9
4.1 关系模型 9
4.2表与视图设计 10
5 数据库物理设计及实行 12
5.1 创立数据库 12
5.2 创立表 13
6 功能实现 15
6.1 插入功能模块 15
6.2 查询功能模块 18
6.3删除功能模块: 19
6.3修改功能模块: 20
7 总结 21
参照文献 22
车辆租赁管理系统设计-汽车预约及提车还车管理
1. 系统概述
今天,随着人民生活水平提高,汽车工业发展和汽车普及,汽车如今已经与咱们生活密不可分,而汽车租赁也已成为一种极具市场潜力行业,面对飞速发展汽车租赁市场,其经营管理汽车种类繁多,样式各异,客户需求量大,客户规定高,每天工作量大,一套完整管理系统对于汽车租赁公司来说已经十分重要,在信息飞速发展今天,计算机在事务管理方面应用已经相称广泛,但当前诸多汽车租赁公司还停留在人工管理水平上,显然不适应时代发展,管理人员当前需要一套以便、计算机化管理信息系统来代替她们繁琐、低效老式手工管理方式,并最后实现汽车租赁管理全面自动化,使用汽车租赁管理系统可以规范公司管理和经营行为,减少公司经营成本,提高工作效率。汽车租赁管理系统是为汽车租赁公司提供一种简朴易用系统,随着科技发展,设备和管理当代化,在实际工作中如何提高工作效率成为一种很重要问题。而建立管理系统是一种较好解决办法!
2.需求分析
2.1 数据流图
顾客选取登录后,系统判断其身份,分为管理员与客户。客户进行客户功能实现模块,可以操做相应客户信息,也可以查看相应司机信息,以及车辆信息以以便客户在租赁汽车时选取司机与汽车。 管理员进入管理员模块,对客户信息,以及司机信息增、删、改、查。如图2.1所示:
图2.1 车辆租赁系统数据流图
车辆租赁业务管理重要功能为出租车辆,租赁信息增删改查,还车车结算,催车还交,续租等.车辆租赁业务管理数据流图如图2.2所示:
图2.2 车辆提车还车数据流图
顾客可以预约车辆,对预约车辆进行增、删、改、查;管理员对预约车辆信息进行审批。如图2.3所示:
图2.3 预约车辆数据流图
2.2数据字典
1.数据项:
编号
名称
注释
类型
1
orderId
唯一标记一种元组
int
name
顾客姓名
varchar
phone
顾客电话
varchar
carName
车辆名称
varchar
type
车辆类型
varchar
flag
有无司机
varchar
startTime
预约时间
dateTime
endTime
结束时间
dateTime
2
rentId
唯一标记一种元组
int
name
顾客姓名
varchar
carName
车辆名称
varchar
type
车辆类型
varchar
number
车牌号
int
flag
有无司机
varchar
startTime
预约时间
dateTime
endTime
结束时间
dateTime
Money
定金
int
rentMoney
一天租金
int
编号
名称
注释
类型
3
rentId
唯一标记一种元祖
int
customName
客户姓名
varchar
carName
车辆名称
varchar
carType
车辆类型
varchar
carNumber
车牌号
int
flag
与否使用司机
varchar
startTime
开始租赁时间
dateTime
endTime
结束租赁时间
dateTime
money
订金
int
rentMoney
一天租金
int
zMoney
总租金
int
back
与否还车
varchar
2.数据构造:
编号
数据构造名
属性
1
预约
预约号,顾客姓名,手机号,车辆名称,车辆类型,有无司机,预约时间,结束时间。
2
提车
提车人身份证号,提车车牌号,租车方式,筹划还车时间,提车时间,租金,押金
3
还车
提车人身份证号,实际还车时间,实际缴纳金额
4
司机
司机编号、身份证号、姓名、年龄、地址、电话、驾驶证书,司机与否被安排
编号
数据流名
操作对象
构成
1
录入信息
系统管理员,顾客
预约信息
2
删除信息
系统管理员,顾客
预约信息
3
更改信息
系统管理员,顾客
预约信息
4
查询
系统管理员,顾客
预约信息
5
审批
系统管理员
预约信息,出租信息
6
出租
系统管理员
租赁信息
7
删除信息
系统管理员
租赁信息
8
更改信息
系统管理员
租赁信息
9
查询信息
系统管理员,顾客
租赁信息
10
催车还交
系统管理员
租赁信息
11
还车结算
系统管理员
租赁信息
12
续租
系统管理员
租赁信息
3.数据流:
4.数据存储:
编号
名称
含义
构成
1
预约基本信息表
存储预约信息
预约号,顾客姓名,手机号,车辆名称,车辆类型,有无司机,预约时间,结束时间。
2
提车基本信息表
存储出租信息
提车人身份证号,提车车牌号,租车方式,筹划还车时间,提车时间,租金,押金
3
还车信息表
存储还车信息
提车人身份证号,实际还车时间,实际缴纳金额
4
司机信息表
存储司机信息
司机编号、身份证号、姓名、年龄、地址、电话、驾驶证书,司机与否被安排
5.数据解决:
l 租赁车辆解决:每个客户可以租赁多辆车,每辆车可以安排有一位司机,租车时阐明租期,预付押金。每辆车不同步间可以租给不同客户。
l 预约车辆:阐明要预约车辆类型,司机名称,预约时间。
l 还车:使用日期以及需要交付金钱,汽车状况。
3. 数据库概念构造设计
3.1 实体分析
租车客户信息:客户编号、姓名、身份证号、手机号、年龄、VIP;
司机信息:司机编号、身份证号、姓名、年龄、地址、电话、驾驶证书,司机与否被安排;
管理员信息:工作号、姓名、性别、年龄、联系方式;
车辆信息:车辆编号、车辆名称、车辆型号、车牌号、出厂日期、使用年限、状态;
提车信息:提车人身份证号,提车车牌号,租车方式,筹划还车时间,提车时间,租金,押金
预约信息:预约编号、客户姓名、手机号、开始时间、结束时间。
还车信息:提车人身份证号,实际还车时间,实际缴纳金额
这些实体间语义描述如下:
一种车辆租赁系统可以有各种管理员、一种管理员可以管理各种租车客户和司机信息、一种租车客可以同步租赁各种汽车和司机,同一种司机只能受雇于一种租车客户,一辆汽车同步只能被一种司机使用。
3.2 数据库概念构造设计
4.数据库逻辑构造设计
4.1 关系模型
关系名
属性及码
其她约束条件
司机
司机编号、身份证号、姓名、年龄、地址、电话、驾驶证书,司机与否被安排;
1、编号,身份证号,姓名,电话,驾驶证书不能为空
提车信息
提车人身份证号,提车车牌号,租车方式,筹划还车时间,提车时间,租金,押金
1、 提车人身份证号不能为空
预约信息
预约编号、客户姓名、手机号、开始时间、结束时间。
1、 预约编号不能为空
2、 客户姓名从客户调用
还车信息
提车人身份证号,实际还车时间,实际缴纳金额
1、三个值都不能为空
4.2表与视图设计
表4.1提车信息表:
字段名
数据类型
含义阐明
空值状况
Tcard
int
提车人身份证号
主键
carNumber
varchar
车牌号
不能为空
Tfangshi
varchar
租车方式
不能为空
Ttime
varchar
提车时间
不能为空
Tback
varchar
筹划还车时间
可觉得空
zujiin
int
租金
不能为空
yajin
int
押金
可觉得空
表4.2预约信息表:
字段名
数据类型
含义阐明
空值状况
orderId
int
预约号
主核心字
ordername
varchar
顾客姓名
不能为空
phone
varchar
顾客电话
不能为空
ordercar
varchar
车辆名称
不能为空
orderType
varchar
车辆类型
不能为空
flag
varchar
有无司机
不能为空
orderTime
dateTime
预约时间
不能为空
orderNumber
int
预约数量
不能为空
ordertiche
varchar
预约提车时间
不能为空
orderback
vachar
预约还车时间
不能为空
表4.3还车信息表:
字段名
数据类型
含义阐明
空值状况
Tcard
int
提车人身份证号
不能为空
Bday
varchar
实际还车日期
不能为空
Bmoney
int
实际缴纳金额
不能为空
表4.4司机信息表:
字段名
数据类型
含义阐明
空值状况
DID
int
司机编号
主键
DcardId
varchar
司机身份证号
不能为空
DName
varchar
司机姓名
不能为空
Dage
int
司机年龄
不能为空
HomeAddress
varchar
司机家庭住址
不能为空
DTelephone
varchar
司机电话
不能为空
DrivingLicense
varchar
司机驾驶证
不能为空
DriverArrange
varchar
司机与否被安排
不能为空
5 数据库物理设计及实行
5.1 创立数据库
5.2 创立表
create table back
(
Tcard int not null,--提车人身份证号
Bday varchar(50),--实际还车时间
Bmoney int,--实际缴纳金额
FOREIGN KEY(Tcard) REFERENCES Tiche(Tcard)
)
create table driver
(
DID int not null, --司机id
DcardId varchar(50), --司机身份证号码
DName varchar(50), --司机姓名
Dage int ,--司机年龄
HomeAddress varchar(50),--司机家庭地址
DTelephone varchar(20), --司机电话号码
DrivingLicense varchar(20), --司机驾驶证书
DriverArrange varchar(50),--司机与否被安排
PRIMARY KEY(DID),
)
create table ordercar
(
orderId int not null,--预约号
orderName varchar(50),--预约顾客姓名
phone varchar(50),--顾客电话
ordercar varchar(50),--预约车辆名称
orderType varchar(50),--预约车辆类型
orderdriver varchar(50),--预约司机
orderTime varchar(50),--预约时间
ordertiche varchar(50),--预约提车时间
orderback varchar(50),--预约还车时间
orderNumber int not null,--预约数量
)
create table Tiche
(
Tcard int not null PRIMARY KEY,--提车人身份证号
carNumber varchar(50),--提车车牌号
Tfangshi varchar(50),--租车方式
Ttime varchar(50),--筹划还车时间
Tback varchar(50),--提车时间
zujin int ,--租金
yajin int,--押金
FOREIGN KEY(carNumber)REFERENCES car(carNumber)
)
6 功能实现
6.1 插入功能模块
(1)预约信息插入:
Insert into ordercar(orderID,orderName,phone,ordercar,orderType,orderdriver,orderTime,ordertiche,orderback,orderNumber)
values('30','李思','','奥迪','中型车','大帅','.1.1','.1.2','.1.5','3')
Insert into ordercar(orderID,orderName,phone,ordercar,orderType,orderdriver,orderTime,ordertiche,orderback,orderNumber)
values('31','李思思','','奥迪','小型车','小宝','.1.1','.1.3','.1.6','2')
Insert into ordercar(orderID,orderName,phone,ordercar,orderType,orderdriver,orderTime,ordertiche,orderback,orderNumber)
values('32','李一','','奥迪','大型车','小李','.1.1','.1.2','.1.5','1')
Insert into ordercar(orderID,orderName,phone,ordercar,orderType,orderdriver,orderTime,ordertiche,orderback,orderNumber)
values('33','张二','','奔驰','小型车','李二','.1.1','.1.2','.1.5','1')
Insert into ordercar(orderID,orderName,phone,ordercar,orderType,orderdriver,orderTime,ordertiche,orderback,orderNumber)
values('34','张三','','奔驰','中型车','李三','.1.1','.1.2','.1.5','3')
Insert into ordercar(orderID,orderName,phone,ordercar,orderType,orderdriver,orderTime,ordertiche,orderback,orderNumber)
values('35','张四','','奔驰','大型车','李四','.1.1','.1.2','.1.5','3')
Insert into ordercar(orderID,orderName,phone,ordercar,orderType,orderdriver,orderTime,ordertiche,orderback,orderNumber)
values('36','张武','','大众','小型车','礼物','.1.1','.1.2','.1.5','3')
Insert into ordercar(orderID,orderName,phone,ordercar,orderType,orderdriver,orderTime,ordertiche,orderback,orderNumber)
values('37','张柳','','大众','中型车','李刘','.1.1','.1.2','.1.5','3')
Insert into ordercar(orderID,orderName,phone,ordercar,orderType,orderdriver,orderTime,ordertiche,orderback,orderNumber)
values('38','张琪','','大众','大型车','李琦','.1.1','.1.2','.1.5','3')
Insert into ordercar(orderID,orderName,phone,ordercar,orderType,orderdriver,orderTime,ordertiche,orderback,orderNumber)
values('39','张吧','','宝马','中型车','李吧','.1.1','.1.2','.1.5','3')
(2) 提车信息插入:
Insert into Tiche(Tcard,carNumber,Tfangshi,Tback,Ttime,zujin,yajin)
values('','2B005','日租','.1.7','.1.5','600','200');
Insert into Tiche(Tcard,carNumber,Tfangshi,Tback,Ttime,zujin,yajin)
values('','2B006','日租','.1.7','.1.1','600','200')
Insert into Tiche(Tcard,carNumber,Tfangshi,Tback,Ttime,zujin,yajin)
values('','2B007','日租','.1.7','.1.2','600','200')
Insert into Tiche(Tcard,carNumber,Tfangshi,Tback,Ttime,zujin,yajin)
values('','2B008','日租','.1.7','.1.3','400','200')
Insert into Tiche(Tcard,carNumber,Tfangshi,Tback,Ttime,zujin,yajin)
values('','2B457','日租','.1.7','.1.4','500','200')
Insert into Tiche(Tcard,carNumber,Tfangshi,Tback,Ttime,zujin,yajin)
values('','2B458','日租','.1.9','.1.5','800','200')
Insert into Tiche(Tcard,carNumber,Tfangshi,Tback,Ttime,zujin,yajin)
values('','2B459','日租','.1.27','.1.6','1000','200')
Insert into Tiche(Tcard,carNumber,Tfangshi,Tback,Ttime,zujin,yajin)
values('+65498149','2B527','日租','.1.17','.1.7','900','200')
Insert into Tiche(Tcard,carNumber,Tfangshi,Tback,Ttime,zujin,yajin)
values('','2B528','日租','.1.11','.1.9','900','200')
Insert into Tiche(Tcard,carNumber,Tfangshi,Tback,Ttime,zujin,yajin)
values('','2B529','日租','.1.10','.1.8','900','200')
(3) 还车信息插入:
Insert into back(Tcard,Bday,Bmoney)
values('65498149','.1.17','900')
Insert into back(Tcard,Bday,Bmoney)
values('','.1.7','600')
Insert into back(Tcard,Bday,Bmoney)
values('','.1.7','600')
Insert into back(Tcard,Bday,Bmoney)
values('','.1.7','400')
Insert into back(Tcard,Bday,Bmoney)
values('','.1.11','900')
Insert into back(Tcard,Bday,Bmoney)
values('','.1.7','600')
Insert into back(Tcard,Bday,Bmoney)
values('','.1.9','800')
Insert into back(Tcard,Bday,Bmoney)
values('','.1.10','900')
Insert into back(Tcard,Bday,Bmoney)
values('','.1.27','1000')
Insert into back(Tcard,Bday,Bmoney)
values('','.1.7','500')
(4) 司机信息插入:
Insert into driver(DID,DCardId,DName,DAge,HomeAddress,DTelephone,DrivingLicense,DriverArrange)
values('50','4509814','大帅','40','山东德州','','B1','已安排');
Insert into driver(DID,DcardId,DName,DAge,HomeAddress,DTelephone,DrivingLicense,DriverArrange)
values('51','4509815','小宝','35','广西百色','','C1','已安排');
Insert into driver(DID,DcardId,DName,DAge,HomeAddress,DTelephone,DrivingLicense,DriverArrange)
values('52','4509855','小李','35','百色','','C1','已安排');
Insert into driver(DID,DcardId,DName,DAge,HomeAddress,DTelephone,DrivingLicense,DriverArrange)
values('53','115555','李二','35','广色','','C1','已安排');
Insert into driver(DID,DcardId,DName,DAge,HomeAddress,DTelephone,DrivingLicense,DriverArrange)
values('54','115555','李三','35','广西是','','C1','已安排');
Insert into driver(DID,DcardId,DName,DAge,HomeAddress,DTelephone,DrivingLicense,DriverArrange)
values('55','4509825','李四','35','广','','C1','已安排');
Insert into driver(DID,DcardId,DName,DAge,HomeAddress,DTelephone,DrivingLicense,DriverArrange)
values('56','115555','礼物','35','三王','','C1','已安排');
Insert into driver(DID,DcardId,DName,DAge,HomeAddress,DTelephone,DrivingLicense,DriverArrange)
values('57','4509325','李刘','35','山西','','C1','已安排');
Insert into driver(DID,DcardId,DName,DAge,HomeAddress,DTelephone,DrivingLicense,DriverArrange)
values('58','4509815','李琦','35','广西三','','C1','已安排');
Insert into driver(DID,DcardId,DName,DAge,HomeAddress,DTelephone,DrivingLicense,DriverArrange)
values('59','115555','李吧','35','山我','','C1','已安排');
6.2 查询功能模块
(1) 司机信息查询:
select *
from driver
(2) 预约信息查询:
select *
from ordercar
(3) 提车信息查询:
select *
from Tiche
(4) 还车信息查询:
select *
from back
6.3删除功能模块:
(1) 司机信息删除:
delete
from driver
where DID='50'
(2) 预约信息删除:
delete
from ordercar
where orderId='30'
(3) 还车信息删除:
delete
from back
where Tcard=''
(4) 提车信息删除:
delete
from Tiche
where Tcard=''
6.3修改功能模块:
(1) 司机信息更改:
update driver
set DTelephone=
where DID='51'
(2) 预约信息修改:
update ordercar
set orderNumber=1
where orderId='31'
(3) 提车信息修改:
update Tiche
set carNumber='2B006'
where Tcard='65498149'
(4) 还车信息修改
update back
set Bday='.1.20'
where Tcard='65498149'
7 总结
这次课程设计咱们组设计是一种汽车租赁管理系统,通过这次可视化编程课程设计,我理解了一种完整数据库系统设计环节,掌握了租车公司汽车租赁系统业务流程及管理,巩固了我在课堂上所学理论知识,更进一步理解了面向对象编程基本思想,并且对可视化编程工具Visual Studio 及SQL Server 软件应用有了更进一步掌握。 固然在咱们小组共同努力成果下,见证了一种系统诞生,虽然不复杂,但它可以实现某些基本功能,并且也学到诸多课本上没有涉及到知识,对编程经验也起到了累积作用,也是第一次理解了一种系统诞生所要通过流程,前期、设计、完毕、后期一种也不能少,不像平时只用编一种程序,至于需求和维护没有涉及,这次课程设计就像一次工作体验,从头到尾不遗余力把它完毕。体会就是自己在这次设计当中遇到了诸多问题,一开始时候主线无从下手、什么都不会,但是通过和小构成员讨论,查阅资料、网上查询等有了基本理解,遇到问题也和其她同窗进行交流、探讨,问题得以一一解决。总之,在这次程序设计中,学会到了诸多此前没有理解到知识,回忆咱们在这这段时间课程设计,咱们分工合伙,人们一起讨论,查找资料,感到非常充实。这也充分呈现了团队合伙重要性,由于有了人们付出,才干完满完毕了这个课程设计。在后来学习中咱们还会更努力学习,把自己学到知识运用到后来学习和工作中去。
参照文献
[1]萨师煊,王珊. 数据库系统概论[M].北京:高等教诲出版社,.
[2]甘仞初. . 管理信息系统[M].北京:机械工业出版社,.
[3]钱雪忠.数据库原理及应用[M]北京:邮电大学出版社,.
[4]仝春灵,数据库原理与应用—SQL Server ,北京:电子工业出版社,
[5]王珊.数据库技术与联机分析解决[M]北京:科学出版社,
[6]辛赫(Singh.S.K)、何玉洁等.数据库系统概念、设计及应用[M]北京:机械工业出版社,
[7]周成兴.SQL与关系数据库理论[M]北京:清华大学出版社,.
展开阅读全文