1、车辆租赁管理系统摘要近年来,计算机技术日趋成熟,数据库技术不断发展,管理信息系统的应用已延伸到社会的各个领域。结合管理信息系统的开发方法及步骤,以此为理论基础,开发出一个小型的信息管理系统车辆租赁管理系统。 车辆租赁管理是汽车租赁公司开展日常运营活动的必须的环节.传统的手工管理方式 不但浪费人力、时间,而且管理复杂,易出差错.基于计算机技术的完备的车辆租赁管理系统把一些繁琐的数据计算、信息处理化为简单的指令操作。完全实现数据信息的电算化管理,彻底把人从手工管理中解放出来。经过艰苦的努力,我们小组终于实现了预期的设计目标,开发出这套具有一定实用价值的车辆租赁管理系统,使用这套系统有利于提高汽车辆
2、租赁公司的劳动生产率,节约生产成本,增加经济效益. 信息管理系统的服务性系统,能满足保险业务的需求、客户群的拓展和管理模式的变 化.系统开发具有超前意识,强调系统的标准化、系列化,模块化设计,有明确的功能模块结构和技术支持模块结构,便于系统维护、修改和升级,跟随先进技术的发展。信息管理的自动化、规范化是当今社会的发展趋势。信息录入项目齐全、完整、系统,这些无疑是现代工程信息管理系统的要求。因此车辆租赁管理系统可以方便地查询、阅读、修改、交流和重复使用!关键字:车辆租赁 车辆租赁管理系统 模块结构 ER图 visual studio 2010 SQL Server 2008 SQL语句等目录1
3、概论12 需求分析12.1设计任务12.2 设计要求13概念结构设计23.1 概念结构设计23。2车辆信息系统23。3客户信息系统33。4司机信息系统33.5租金查询系统43。6 全局ER图44 逻辑结构设计54.1 关系数据模式54.2 视图的设计与优化65 数据库物理设计与实施85。1 数据库应用的硬件、软件环境介绍85。2 物理结构设计85.3 索引的设计85。4 数据库逻辑设计85.5 建立数据库105。6建立数据表105。7加载测试数据135。8数据库文件夹结构146 数据操作实现156.1 连接和读取数据库156。2 数据查询操作176.3 数据更新操作196。4 数据库维护207
4、 用户界面设计207.1 登陆界面设计207。2 主窗体界面设计217.3 管理员信息界面设计217.4 车辆信息界面设计227。5 客户信息界面设计257.6 司机信息界面设计287。7 租金查询界面设计307.8 项目结构318 收获、体会和建议31参考文献33附录分工安排表3315车辆租赁管理系统1 概论今天,随着人民生活水平的提高,汽车工业的发展和汽车的普及,汽车如今已经与我们的生活密不可分,而汽车租赁也已成为一个极具市场潜力的行业,面对飞速发展的汽车租赁市场,其经营管理的汽车种类繁多,样式各异,客户需求量大,客户要求高,每天的工作量大,一套完整的管理系统对于汽车租赁公司来说已经十分重
5、要, 在信息飞速发展的今天,计算机在事务管理方面的应用已经相当广泛,但目前很多汽车租赁公司还停留在人工管理的水平上,显然不适应时代的发展,管理人员目前需要一套方便、计算机化的管理信息系统来代替他们繁琐、低效的传统手工管理方式,并最终实现汽车租赁管理的全面自动化,使用汽车租赁管理系统可以规范企业的管理和经营行为,减少企业的经营成本,提高工作效率.汽车租赁管理系统是为汽车租赁公司提供的一个简单易用的系统,随着科技的发展,设备和管理的现代化,在实际工作中如何提高工作效率成为一个很重要的问题。而建立管理系统是一个很好的解决办法!2 需求分析2。1设计任务该系统任务的管理对象:管理员信息:管理员的相关信
6、息。车辆信息:包括车辆类型、车辆名称、购买时间、车辆状况、租金标准等。客户信息:身份证号、姓名、年龄、地址、电话等。司机信息:身份证号、姓名、年龄、地址、电话、驾驶证书等.租金查询:车辆的租金和出租时间情况。2。2 设计要求系统的基本功能和规定如下:随时查询车辆信息、客户信息、车辆租赁信息。进行客户租赁车辆的处理,每个客户可以租赁多辆车,每辆车可以安排有一位司机,租车时说明租期,预付押金。每辆车不同时间可以租给不同客户。租赁模式:有日租、包月等类型。系统应该可以随时进行当天租金统计和一定时间段的租金统计以及车辆租赁情况统计分析。3概念结构设计3。1 概念结构设计车辆租赁管理系统主要功能包括对司
7、机信息、车辆信息、客户信息、租金等进行管理,主要功能结构如下图31所示.图313。2车辆信息系统3。2。1描述:可以查询车辆类型、车辆名称、购买时间、车辆状况、租金标准等,并且可以根据需要增加车辆、删除车辆、修改车辆的基本信息,还可以根据车辆类型和车辆情况进行条件查询.3。2.2ER图3.3客户信息系统3。3。1 描述可以查询租车客户的身份证号、姓名、年龄、地址、电话等,并且可以根据租车情况来添加客户信息、修改客户信息和删除客户信息,还可以根据客户身份证、姓名或租车日期、租赁模式进行条件查询。3。3.2 ER图3。4司机信息系统3。4。1描述可以查询司机的身份证号、姓名、年龄、地址、电话、驾驶
8、证书等,并且可以增添、修改和司机的相关信息,还可以根据司机身份证号和姓名进行条件查询。3.4.2 E-R图 3.5租金查询系统3.5。1 描述查询车辆的日租和月租情况、租金总和以及统计分析。3。5。2ER图3。6 全局ER图全局E-R图是由各个子系统的ER图集成在一起,来详细描述系统的功能与任务的4 逻辑结构设计4.1 关系数据模式客户、车辆和司机之间的关系数据模型:4.2 视图的设计与优化根据系统的总体概念设计模型、E-R图向关系模式的转化和数据库的范式理论,得到系统视图设计和优化后的逻辑模型,如图表1表5所示。表1 车辆信息表表2 客户信息表 表3 司机信息表表4 租金信息表5 数据库物理
9、设计与实施5。1 数据库应用的硬件、软件环境介绍操作系统:Windows XP或与之兼容的系统数据库管理系统:SQL Server 2008数据库应用系统开发软件:Microsoft Visual Studio 20105。2 物理结构设计物理设计主要是要确定数据库的存储路径、存储结构以及如何建立索引等.数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统,为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,就是数据库的物理设计.5。3 索引的设计索引设计(E-R图)5。4 数据库逻辑设计(1)adminMessage(管理员信息表)字段名称数据
10、类型字段大小说明Idint存管理员编号NameVarchar50存管理员姓名sexVarchar50存管理员性别CardIdVarchar50存管理员身份证号吗AddressSiteVarchar50存管理员家庭地址mobilePhoneNumberVarchar50存管理员的电话号码(2)carMessage(车辆信息表)字段名称数据类型字段大小说明carIdint存车辆编号carTypeVarchar50存车辆类型carNameVarchar50存车辆名称timeBuyingVarchar50存车辆购买时间carConditionVarchar50存车辆情况RentStandardInt存
11、车辆租金标准CarNumberVarchar50存车辆命名编号(3)customerMessage(客户信息表)字段名称数据类型字段大小说明IDint存客户编号CardIdVarchar50存客户身份证号码NameVarchar50存客户姓名AgeInt存客户年龄HomeAddressVarchar50存客户家庭地址TelephoneVarchar50存客户电话号码carLeaseInt存客户租期carAdvancedDepositsInt存客户预付押金carRendModeVarchar50存客户租赁模式carRendTimeDatatime存客户租车时间finallyPayint存客户最终
12、应付carNumberVarchar50存所借的车的命名号DriverNuberVarchar50存所安排司机命名号(4)driverMessage(司机信息表)字段名称数据类型字段大小说明IDInt存司机编号CardIdvarchar50存司机身份证号码Namevarchar50存司机姓名AgeInt存司机年龄HomeAddressvarchar50存司机家庭地址Telephonevarchar50存司机电话号码DrivingLicensevarchar50存司机驾驶证书DriverArrangevarchar50存司机是被安排DriverNumbervarchar50存司机命名编号5.5
13、建立数据库在SQL Server 2008中用SQL语句创建数据库:create database carSystem on primary(name=name_data,filename=F:carRentaManagementSystemcarDataBasecarSystem.mdf)log on(name=name_log,filename=F:carRentaManagementSystemcarDataBasecarSystem。ldf)5.6建立数据表一.建立管理员数据表/*table:adminMessage,创建管理员信息数据/create table adminMessag
14、e(Id int not null,Name varchar(50),sex varchar(50), CardId Varchar(50),AddressSite varchar(50),mobilePhoneNumber varchar(50))二.建立车辆信息表/table:carMessage,创建车辆信息表数据*/create table carMessage(carId int not null, 车辆idcarType varchar(50),车辆类型carName varchar(50),车辆名称timeBuying varchar(50),-购买时间carCondition
15、varchar(50), -车辆情况RentStandard int, -租金标准CarNumber varchar(50)-车辆编号)三.建立客户信息表/*table:customerMessage,创建客户信息表数据/create table customerMessage(ID int not null,客户idCardId varchar(50),-客户身份证号码Name varchar(50),客户姓名Age int ,客户年龄HomeAddress varchar(50),客户家庭地址Telephone varchar(20),客户电话号码carLease int ,-客户租期ca
16、rAdvancedDeposits int,-预付押金 carRendMode varchar(50),租车模式carRendTime date,-租车时间finallyPay int,-客户最终应付carNumber varchar(50),客户所借车辆编号DriverNuber varchar(50),-司机编号)四。建立司机信息表/*table:driverMessage,创建司机信息表数据*/create table driverMessage(ID int not null,-司机idCardId varchar(50),-司机身份证号码Name varchar(50),司机姓名Ag
17、e int ,-客户年龄HomeAddress varchar(50),-司机家庭地址Telephone varchar(20),-司机电话号码DrivingLicense varchar(20), -司机驾驶证书DriverArrange varchar(50),-存储司机是否被安排DriverNumber varchar(50)司机编号)5。7加载测试数据一、向管理员信息表加载数据insert into adminMessage(Name,sex,CardId,AddressSite,mobilePhoneNumber) values (张军,男,450802199104061521,广西
18、南宁,18290192375)二、向车辆信息表加载数据insert into carMessage(carType,carName,timeBuying,carCondition,RentStandard,CarNumber) values (中型车,奥迪,2010。10.10,可供出租,10,2B005)insert into carMessage(carType,carName,timeBuying,carCondition,RentStandard,CarNumber) values (小型车,大众,2009。10.10,可供出租,10,2B529)insert into carMess
19、age(carType,carName,timeBuying,carCondition,RentStandard,CarNumber) values (紧凑型车,五菱宏光,2011。10.10,可供出租,10,2B546)insert into carMessage(carType,carName,timeBuying,carCondition,RentStandard,CarNumber) values (小型车,帝豪,2009。10.10,可供出租,10,2B456)insert into carMessage(carType,carName,timeBuying,carCondition
20、,RentStandard,CarNumber) values (紧凑型车,丰田,2011。10。10,可供出租,10,2B756)三、向客户信息表加载数据Insertinto customerMessage(CardId,Name,Age,HomeAddress,Telephone,carLease,carAdvancedDeposits,carRendMode,carRendTime,finallyPay,carNumber,DriverNuber) values(450951198810102000,覃玉,25,广西钦州,18274771234,10,500,日租,GETDATE()-1
21、,100,2B005,H3602)insert into customerMessage(CardId,Name,Age,HomeAddress,Telephone,carLease,carAdvancedDeposits,carRendMode,carRendTime,finallyPay,carNumber,DriverNuber) values(450951198810102001,张丹,25,广西玉林,18274771235,15,500,日租,GETDATE()3,150,2B529,H3603)insertinto customerMessage(CardId,Name,Age,H
22、omeAddress,Telephone,carLease,carAdvancedDeposits,carRendMode,carRendTime,finallyPay,carNumber,DriverNuber) values(450951198610102002,林黛玉,27,广西贺州,18274771236,14,500,日租,GETDATE()4,140,2B546,H3604)insert into customerMessageinsertinto customerMessage(CardId,Name,Age,HomeAddress,Telephone,carLease,carA
23、dvancedDeposits,carRendMode,carRendTime,finallyPay,carNumber,DriverNuber) values(450951198610102010,陈浩明,27,合肥,18274771244,11,500,月租,GETDATE()16,1100,2B523,未安排)insertinto customerMessage(CardId,Name,Age,HomeAddress,Telephone,carLease,carAdvancedDeposits,carRendMode,carRendTime,finallyPay,carNumber,Dr
24、iverNuber) values(450951198610102011,黄浩,27,合肥,18274771245,11,500,月租,GETDATE()16,1100,2B589,未安排)insert into customerMessage四、向司机信息表加载数据Insertinto driverMessage(CardId,Name,Age,HomeAddress,Telephone,DrivingLicense,DriverArrange,DriverNumber) values(450981198311114444,甘大帅,30,广西梧州,13078013458,B1,已安排,H36
25、04)Insertinto driverMessage(CardId,Name,Age,HomeAddress,Telephone,DrivingLicense,DriverArrange,DriverNumber) values(450981198311115555,韦小宝,30,广西百色,13078013459,C1,已安排,H3605)insertinto driverMessage(CardId,Name,Age,HomeAddress,Telephone,DrivingLicense,DriverArrange,DriverNumber) values(450981197311116
26、666,陈晓晓,40,广东惠州,13078013460,B1,未安排,H3601)insertinto driverMessage(CardId,Name,Age,HomeAddress,Telephone,DrivingLicense,DriverArrange,DriverNumber) values(450981198311117777,许多,30,广西全州,13078013461,C1,未安排,H3606)insertinto driverMessage(CardId,Name,Age,HomeAddress,Telephone,DrivingLicense,DriverArrange
27、,DriverNumber) values(450981197311118888,黄英,40,北京,13078013462,C1,未安排,H3607)insert into driverMessage5。8数据库文件夹结构本次开发的车辆租赁系统所建的数据库结构如下图6 数据操作实现6.1 连接和读取数据库using System;using System。Collections.Generic;using System。Linq;using System.Text;using System。Configuration;using System。Data.SqlClient;using Syst
28、em。Data;namespace carRentaManagementSystem class lsSqlHelper PrivatestaticstringconnStr=ConfigurationManager。ConnectionStringsconnStr”.ConnectionString;public static int ExecuteNonQuery(string sql,params SqlParameter parameters) using (SqlConnection conn = new SqlConnection(connStr) conn。Open(); usi
29、ng (SqlCommand cmd = conn.CreateCommand() cmd.CommandText = sql; /foreach (SqlParameter param in parameters) / / cmd。Parameters.Add(param); / cmd.Parameters。AddRange(parameters); return cmd。ExecuteNonQuery(); public static object ExecuteScalar(string sql, params SqlParameter parameters) using (SqlCo
30、nnection conn = new SqlConnection(connStr) conn。Open(); using (SqlCommand cmd = conn。CreateCommand()) cmd。CommandText = sql; cmd。Parameters。AddRange(parameters); return cmd.ExecuteScalar(); public static DataTable ExecuteDataTable(string sql, params SqlParameter parameters) using (SqlConnection conn
31、 = new SqlConnection(connStr) conn。Open(); using (SqlCommand cmd = conn。CreateCommand() cmd。CommandText = sql; cmd。Parameters。AddRange(parameters); SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataSet dataset = new DataSet(); adapter.Fill(dataset); return dataset。Tables0; 6。2 数据查询操作1查询车辆信息Selec
32、t from carMessage2。查询客户信息Select from customerMessage3。查询司机信息Select from driverMessage6。3 数据更新操作1。车辆更新操作update carMessage set RentStandard=20 where carId=73更新前:更新后:2。客户更新操作update customerMessage set Name=莫明 where ID=96更新前:更新后:3.司机更新操作update driverMessage set Name=李明 where ID=30更新前:更新后:6。4 数据库维护运行数据库合
33、格后,数据库开发设计的工作就基本完成了,接下来的工作就是在正式运行中调试,本次我们开发的车辆租赁管理系统,数据库中几乎不会发生什么大的变化,但是还是需要做好数据的备份,在server2008中,我们可以利用备份数据库的功能对已经设计好的数据做备份,同时我们保存好我们建数据库、数据表时所用的sql语句.如果数据库受到破坏或系统故障,我们便可轻松的利用备份文件恢复数据库的数据。7 用户界面设计7.1 登陆界面设计登录界面在登陆时设置的登录用户名是“admin”,密码为“123456。7。2 主窗体界面设计主窗体界面中显示了管理员信息、车辆信息、客户信息、司机信息和租金查询!7.3管理员信息界面设计
34、在管理员信息界面中,按“修改按钮,可以修改管理员的相关信息。7.4 车辆信息界面设计车辆信息界面设计我们详细描述了车辆的基本信息(包括:车辆类型、车辆名、车辆情况、购买时间、租金标准等),并且可以按租车情况来添加、删除、修改车辆的相关信息。添加车辆信息删除车辆信息修改车辆信息7.5 客户信息界面设计在此界面中,我们设置了客户的一些信息和租车的情况!并且可以通过图片左上角的控件图标来管理客户的相关信息。添加客户信息删除客户信息修改客户信息7。6 司机信息界面设计通过此界面,管理员可以查询司机的相关信息,并且可以通过界面左上角的控件图标来添加、删除、修改司机的信息!添加司机信息删除司机信息修改司机
35、信息7。7 租金查询界面设计在该界面,管理员可以查询车辆的日租和月租情况。7。8 项目结构在vs2010所建的项目结构如下图所示8 收获、体会和建议这次课程设计我们组设计的是一个汽车租赁管理系统,通过这次可视化编程课程设计,我了解了一个完整的数据库系统设计的步骤,掌握了租车公司汽车租赁系统的业务流程及管理,巩固了我在课堂上所学的理论知识,更进一步的了解了面向对象编程的基本思想,并且对可视化编程工具Visual Studio 2010及SQL Server 2008软件的应用有了更进一步的掌握,掌握了界面设计、C#语言编写代码设计各功能模块的步骤,并学会了VS2010及用SQL Server 2
36、008建立的数据库连接的代码设计,开拓了自己的知识面,同时也让我看到了自己的不足,很多东西单独用可以做出来,可是连贯起来就出现了很多错,还有很多不足,需要努力. 当然在我们小组共同努力的结果下,见证了一个系统的诞生,虽然不复杂,但它可以实现一些基本的功能,很有成就感,是理论与实践的一次完美的结合,而且也学到很多课本上没有涉及到的知识,对编程经验也起到了累积作用,也是第一次了解了一个系统诞生所要经过的流程,前期、设计、完成、后期一个也不能少,不像平时只用编一个程序,至于需求和维护没有涉及,这次课程设计就像一次工作的体验,从头到尾不遗余力的把它完成。体会就是自己在这次设计当中遇到了很多问题,一开始
37、的时候根本无从下手、什么都不会,但是通过和小组成员的讨论,查阅资料、网上查询等有了基本了解,遇到的问题也和其他同学进行交流、探讨,问题得以一一解决。总之,在这次程序设计中,学会到了很多以前没有了解到的知识,当然系统还有很多不足,比如主界面的缩放功能没有很好的实现等,这还需要在以后的学习中慢慢改进.回想我们在这这段时间的课程设计,我们分工合作,大家一起讨论,查找资料,感到非常的充实。这也充分展现了团队合作的重要性,因为有了大家的付出,才能完满完成了这个课程设计.在以后的学习中我们还会更努力的学习,把自己学到的知识运用到的以后的学习和工作中去。参考文献1 文东 申锐 乔明秋编著, ASP。NET程序设计-基于Visual Studio 2010 科学出版社 2010 2 明日科技编著, SQL Server 从入门到精通 清华大学出版社 2012