1、 山东建筑大学计算机科学与技术学院 课程设计阐明书 题 目: 车辆租赁管理系统设计-汽车预约及提车还车管理 课 程: 数据库原理及应用课程设计 院 (部): 计算机科学与技术学院 专 业: 软件开发 完毕日期: .1.5 山东建筑大学计算机科学与技术学院 课程设计任务书 设计题目 车辆租赁管理系统分析和设计 已知技术参数和设计规定 1. 采用面向对象或构造化设计办法,在windows开发环境下进行。 2. 3-4人成立一种开发小
2、组,选出小组项目负责人,并对小构成员按任务进行分工。 3. 严格按软件工程办法,分阶段进行开发(需求分析、概要及详细设计、编码、测试等)。 4. 规定每阶段产生软件工程文档等软件配备齐全、合理。 5.课程设计结束上交课程设计报告电子版、编码。 规定提交课程设计报告内容涉及: 1)问题定义 2)需求分析 3)概要设计 4)详细设计 5)程序设计 6)软件测试。 设计内容与环节 1、 需求分析 2、 数据库设计 3、 用SQL语句、触发器与存储过程等实现功能 4、 课程设计阐明书 设计工作筹划与进度安排 1、 设计
3、工作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 关
4、系模型 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. 系统概述 今天,随着人民生活水平提高,汽车工业发展和汽车普及,汽车如今已经与咱们生活密不可分,而汽车租赁也已成为一种极具市场潜力行业,面对飞速发展汽车租赁市场,其经营管理汽车种类繁多,样式各异,客户需求量大,客户规定高,每天工作量大
5、一套完整管理系统对于汽车租赁公司来说已经十分重要,在信息飞速发展今天,计算机在事务管理方面应用已经相称广泛,但当前诸多汽车租赁公司还停留在人工管理水平上,显然不适应时代发展,管理人员当前需要一套以便、计算机化管理信息系统来代替她们繁琐、低效老式手工管理方式,并最后实现汽车租赁管理全面自动化,使用汽车租赁管理系统可以规范公司管理和经营行为,减少公司经营成本,提高工作效率。汽车租赁管理系统是为汽车租赁公司提供一种简朴易用系统,随着科技发展,设备和管理当代化,在实际工作中如何提高工作效率成为一种很重要问题。而建立管理系统是一种较好解决办法! 2.需求分析 2.1 数据流图 顾客选
6、取登录后,系统判断其身份,分为管理员与客户。客户进行客户功能实现模块,可以操做相应客户信息,也可以查看相应司机信息,以及车辆信息以以便客户在租赁汽车时选取司机与汽车。 管理员进入管理员模块,对客户信息,以及司机信息增、删、改、查。如图2.1所示: 图2.1 车辆租赁系统数据流图 车辆租赁业务管理重要功能为出租车辆,租赁信息增删改查,还车车结算,催车还交,续租等.车辆租赁业务管理数据流图如图2.2所示: 图2.2 车辆提车还车数据流图
7、 顾客可以预约车辆,对预约车辆进行增、删、改、查;管理员对预约车辆信息进行审批。如图2.3所示: 图2.3 预约车辆数据流图 2.2数据字典 1.数据项: 编号 名称 注释 类型 1 orderId 唯一标记一种元组 int name 顾客姓名 varchar phone 顾客电话 varchar carName 车辆名称 varchar type 车辆类型 varchar flag 有无司机 varchar startT
8、ime 预约时间 dateTime endTime 结束时间 dateTime 2 rentId 唯一标记一种元组 int name 顾客姓名 varchar carName 车辆名称 varchar type 车辆类型 varchar number 车牌号 int flag 有无司机 varchar startTime 预约时间 dateTime endTime 结束时间 dateTime Money 定金 int rentMoney 一天租金 int 编号 名
9、称 注释 类型 3 rentId 唯一标记一种元祖 int customName 客户姓名 varchar carName 车辆名称 varchar carType 车辆类型 varchar carNumber 车牌号 int flag 与否使用司机 varchar startTime 开始租赁时间 dateTime endTime 结束租赁时间 dateTime money 订金 int rentMoney 一天租金 int zMoney 总租金 int back 与否还
10、车 varchar 2.数据构造: 编号 数据构造名 属性 1 预约 预约号,顾客姓名,手机号,车辆名称,车辆类型,有无司机,预约时间,结束时间。 2 提车 提车人身份证号,提车车牌号,租车方式,筹划还车时间,提车时间,租金,押金 3 还车 提车人身份证号,实际还车时间,实际缴纳金额 4 司机 司机编号、身份证号、姓名、年龄、地址、电话、驾驶证书,司机与否被安排 编号 数据流名 操作对象 构成 1 录入信息 系统管理员,顾客 预约信息 2 删除信息 系统管理员,顾客 预约信息 3 更改信息 系统管理员,顾客 预约信息
11、4 查询 系统管理员,顾客 预约信息 5 审批 系统管理员 预约信息,出租信息 6 出租 系统管理员 租赁信息 7 删除信息 系统管理员 租赁信息 8 更改信息 系统管理员 租赁信息 9 查询信息 系统管理员,顾客 租赁信息 10 催车还交 系统管理员 租赁信息 11 还车结算 系统管理员 租赁信息 12 续租 系统管理员 租赁信息 3.数据流: 4.数据存储: 编号 名称 含义 构成 1 预约基本信息表 存储预约信息 预约号,顾客姓名,手机号,车辆名称,车辆类型,有无司机,预约时间,结束时间。 2
12、提车基本信息表 存储出租信息 提车人身份证号,提车车牌号,租车方式,筹划还车时间,提车时间,租金,押金 3 还车信息表 存储还车信息 提车人身份证号,实际还车时间,实际缴纳金额 4 司机信息表 存储司机信息 司机编号、身份证号、姓名、年龄、地址、电话、驾驶证书,司机与否被安排 5.数据解决: l 租赁车辆解决:每个客户可以租赁多辆车,每辆车可以安排有一位司机,租车时阐明租期,预付押金。每辆车不同步间可以租给不同客户。 l 预约车辆:阐明要预约车辆类型,司机名称,预约时间。 l 还车:使用日期以及需要交付金钱,汽车状况。 3. 数据库概念构造设计 3.1 实体分析
13、 租车客户信息:客户编号、姓名、身份证号、手机号、年龄、VIP; 司机信息:司机编号、身份证号、姓名、年龄、地址、电话、驾驶证书,司机与否被安排; 管理员信息:工作号、姓名、性别、年龄、联系方式; 车辆信息:车辆编号、车辆名称、车辆型号、车牌号、出厂日期、使用年限、状态; 提车信息:提车人身份证号,提车车牌号,租车方式,筹划还车时间,提车时间,租金,押金 预约信息:预约编号、客户姓名、手机号、开始时间、结束时间。 还车信息:提车人身份证号,实际还车时间,实际缴纳金额 这些实体间语义描述如下: 一种车辆租赁系统可以有各种管理员、一种管理员可以管理各种租车客户和司机信息、一种租车
14、客可以同步租赁各种汽车和司机,同一种司机只能受雇于一种租车客户,一辆汽车同步只能被一种司机使用。 3.2 数据库概念构造设计 4.数据库逻辑构造设计 4.1 关系模型 关系名 属性及码 其她约束条件 司机 司机编号、身份证号、姓名、年龄、地址、电话、驾驶证书,司机与否被安排; 1、编号,身份证号,姓名,电话,驾驶证书不能为空 提车信息 提车人身份证号,提车车牌号,租车方式,筹划还车时间,提车时间,租金,押金 1、 提车人身份证号不能为空 预约信息 预约编号、客户姓名、手机号、开始时间、结束时间。 1、 预约编号不能为空 2、 客户姓名从客户调用 还车信息
15、 提车人身份证号,实际还车时间,实际缴纳金额 1、三个值都不能为空 4.2表与视图设计 表4.1提车信息表: 字段名 数据类型 含义阐明 空值状况 Tcard int 提车人身份证号 主键 carNumber varchar 车牌号 不能为空 Tfangshi varchar 租车方式 不能为空 Ttime varchar 提车时间 不能为空 Tback varchar 筹划还车时间 可觉得空 zujiin int 租金 不能为空 yajin int 押金 可觉得空 表4.2预约信息表: 字段名 数据类型
16、含义阐明 空值状况 orderId int 预约号 主核心字 ordername varchar 顾客姓名 不能为空 phone varchar 顾客电话 不能为空 ordercar varchar 车辆名称 不能为空 orderType varchar 车辆类型 不能为空 flag varchar 有无司机 不能为空 orderTime dateTime 预约时间 不能为空 orderNumber int 预约数量 不能为空 ordertiche varchar 预约提车时间 不能为空 orderback vach
17、ar 预约还车时间 不能为空 表4.3还车信息表: 字段名 数据类型 含义阐明 空值状况 Tcard int 提车人身份证号 不能为空 Bday varchar 实际还车日期 不能为空 Bmoney int 实际缴纳金额 不能为空 表4.4司机信息表: 字段名 数据类型 含义阐明 空值状况 DID int 司机编号 主键 DcardId varchar 司机身份证号 不能为空 DName varchar 司机姓名 不能为空 Dage int 司机年龄 不能为空 HomeAddress varchar 司机家庭
18、住址 不能为空 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) REFEREN
19、CES 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 varch
20、ar(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),--预约时间
21、 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)
22、提车时间 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'
23、'.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,ordertic
24、he,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(order
25、ID,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','张四','','
26、奔驰','大型车','李四','.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,orderdrive
27、r,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
28、 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','60
29、0','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
30、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','8
31、00','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,Tf
32、angshi,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 int
33、o 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')
34、 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,DNam
35、e,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,DcardI
36、d,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,Dcard
37、Id,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,Dcar
38、dId,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,Dca
39、rdId,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) 司机信息查询:
40、 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
41、 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) 还车信息修改
42、update back set Bday='.1.20' where Tcard='65498149' 7 总结 这次课程设计咱们组设计是一种汽车租赁管理系统,通过这次可视化编程课程设计,我理解了一种完整数据库系统设计环节,掌握了租车公司汽车租赁系统业务流程及管理,巩固了我在课堂上所学理论知识,更进一步理解了面向对象编程基本思想,并且对可视化编程工具Visual Studio 及SQL Server 软件应用有了更进一步掌握。 固然在咱们小组共同努力成果下,见证了一种系统诞生,虽然不复杂,但它可以实现某些基本功能,并且也学到诸多课本上没有涉及到知识,对编程经验也起到了
43、累积作用,也是第一次理解了一种系统诞生所要通过流程,前期、设计、完毕、后期一种也不能少,不像平时只用编一种程序,至于需求和维护没有涉及,这次课程设计就像一次工作体验,从头到尾不遗余力把它完毕。体会就是自己在这次设计当中遇到了诸多问题,一开始时候主线无从下手、什么都不会,但是通过和小构成员讨论,查阅资料、网上查询等有了基本理解,遇到问题也和其她同窗进行交流、探讨,问题得以一一解决。总之,在这次程序设计中,学会到了诸多此前没有理解到知识,回忆咱们在这这段时间课程设计,咱们分工合伙,人们一起讨论,查找资料,感到非常充实。这也充分呈现了团队合伙重要性,由于有了人们付出,才干完满完毕了这个课程设计。在后
44、来学习中咱们还会更努力学习,把自己学到知识运用到后来学习和工作中去。 参照文献 [1]萨师煊,王珊. 数据库系统概论[M].北京:高等教诲出版社,. [2]甘仞初. . 管理信息系统[M].北京:机械工业出版社,. [3]钱雪忠.数据库原理及应用[M]北京:邮电大学出版社,. [4]仝春灵,数据库原理与应用—SQL Server ,北京:电子工业出版社, [5]王珊.数据库技术与联机分析解决[M]北京:科学出版社, [6]辛赫(Singh.S.K)、何玉洁等.数据库系统概念、设计及应用[M]北京:机械工业出版社, [7]周成兴.SQL与关系数据库理论[M]北京:清华大学出版社,.






