数据库优秀课程设计车辆租赁综合管理系统.doc
车辆租赁管理系统摘要多年来,计算机技术日趋成熟,数据库技术不停发展,管理信息系统应用已延伸到社会各个领域。结合管理信息系统开发方法及步骤,以此为理论基础,开发出一个小型信息管理系统车辆租赁管理系统。 车辆租赁管理是汽车租赁企业开展日常运行活动必需步骤。传统手工管理方法 不仅浪费人力、时间,而且管理复杂,易出差错。基于计算机技术完备车辆租赁管理系统把部分繁琐数据计算、信息处理化为简单指令操作。完全实现数据信息电算化管理,根本把人从手工管理中解放出来。经过艰苦努力,我们小组最终实现了预期设计目标,开发出这套含有一定实用价值车辆租赁管理系统,使用这套系统有利于提升汽车辆租赁企业劳动生产率,节省生产成本,增加经济效益。 信息管理系统服务性系统,能满足保险业务需求、用户群拓展和管理模式变 化。系统开发含有超前意识,强调系统标准化、系列化,模块化设计,有明确功效模块结构和技术支持模块结构,便于系统维护、修改和升级,跟随优异技术发展。信息管理自动化、规范化是当今社会发展趋势。信息录入项目齐全、完整、系统,这些无疑是现代工程信息管理系统要求。所以车辆租赁管理系统能够方便地查询、阅读、修改、交流和反复使用!关键字:车辆租赁 车辆租赁管理系统 模块结构 E-R图 visual studio SQL Server SQL语句等目录1 概论12 需求分析12.1设计任务12.2 设计要求13概念结构设计23.1 概念结构设计23.2车辆信息系统23.3用户信息系统33.4司机信息系统33.5租金查询系统43.6 全局E-R图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 用户界面设计207.1 登陆界面设计207.2 主窗体界面设计217.3 管理员信息界面设计217.4 车辆信息界面设计227.5 用户信息界面设计257.6 司机信息界面设计287.7 租金查询界面设计307.8 项目结构318 收获、体会和提议31参考文件33附录 分工安排表33车辆租赁管理系统1 概论今天,伴随人民生活水平提升,汽车工业发展和汽车普及,汽车现在已经和我们生活密不可分,而汽车租赁也已成为一个极具市场潜力行业,面对飞速发展汽车租赁市场,其经营管理汽车种类繁多,样式各异,用户需求量大,用户要求高,天天工作量大,一套完整管理系统对于汽车租赁企业来说已经十分关键, 在信息飞速发展今天,计算机在事务管理方面应用已经相当广泛,但现在很多汽车租赁企业还停留在人工管理水平上,显然不适应时代发展,管理人员现在需要一套方便、计算机化管理信息系统来替换她们繁琐、低效传统手工管理方法,并最终实现汽车租赁管理全方面自动化,使用汽车租赁管理系统能够规范企业管理和经营行为,降低企业经营成本,提升工作效率。汽车租赁管理系统是为汽车租赁企业提供一个简单易用系统,伴随科技发展,设备和管理现代化,在实际工作中怎样提升工作效率成为一个很关键问题。而建立管理系统是一个很好处理措施!2 需求分析2.1设计任务该系统任务管理对象: ·管理员信息:管理员相关信息。·车辆信息:包含车辆类型、车辆名称、购置时间、车辆情况、租金标准等。·用户信息:身份证号、姓名、年纪、地址、电话等。·司机信息:身份证号、姓名、年纪、地址、电话、驾驶证书等。·租金查询:车辆租金和出租时间情况。2.2 设计要求系统基础功效和要求以下:·随时查询车辆信息、用户信息、车辆租赁信息。·进行用户租赁车辆处理,每个用户能够租赁多辆车,每辆车能够安排有一位司机,租车时说明租期,预付押金。每辆车不一样时间能够租给不一样用户。·租赁模式:有日租、包月等类型。·系统应该能够随时进行当日租金统计和一定时间段租金统计和车辆租赁情况统计分析。3概念结构设计3.1 概念结构设计车辆租赁管理系统关键功效包含对司机信息、车辆信息、用户信息、租金等进行管理,关键功效结构以下图3-1所表示。图3-13.2车辆信息系统3.2.1 描述:能够查询车辆类型、车辆名称、购置时间、车辆情况、租金标准等,而且能够依据需要增加车辆、删除车辆、修改车辆基础信息,还能够依据车辆类型和车辆情况进行条件查询。3.2.2 E-R图 3.3用户信息系统3.3.1 描述能够查询租车用户身份证号、姓名、年纪、地址、电话等,而且能够依据租车情况来添加用户信息、修改用户信息和删除用户信息,还能够依据用户身份证、姓名或租车日期、租赁模式进行条件查询。3.3.2 E-R图 3.4司机信息系统3.4.1 描述能够查询司机身份证号、姓名、年纪、地址、电话、驾驶证书等,而且能够增添、修改和司机相关信息,还能够依据司机身份证号和姓名进行条件查询。3.4.2 E-R图 3.5租金查询系统3.5.1 描述 查询车辆日租和月租情况、租金总和和统计分析。3.5.2 E-R图3.6 全局E-R图全局E-R图是由各个子系统E-R图集成在一起,来具体描述系统功效和任务4 逻辑结构设计4.1 关系数据模式用户、车辆和司机之间关系数据模型:4.2 视图设计和优化依据系统总体概念设计模型、E-R图向关系模式转化和数据库范式理论,得到系统视图设计和优化后逻辑模型,图表1表5所表示。表1 车辆信息表表2 用户信息表 表3 司机信息表 表4 租金信息表5 数据库物理设计和实施5.1 数据库应用硬件、软件环境介绍操作系统:Windows XP或和之兼容系统数据库管理系统:SQL Server 数据库应用系统开发软件:Microsoft Visual Studio 5.2 物理结构设计物理设计关键是要确定数据库存放路径、存放结构和怎样建立索引等。数据库在物理设备上存放结构和存取方法称为数据库物理结构,它依靠于选定数据库管理系统,为一个给定逻辑数据模型选择一个最适合应用环境物理结构过程,就是数据库物理设计。5.3 索引设计索引设计(E-R图)5.4 数据库逻辑设计(1)adminMessage(管理员信息表)字段名称数据类型字段大小说明Idint存管理员编号NameVarchar50存管理员姓名sexVarchar50存管理员性别CardIdVarchar50存管理员身份证号吗AddressSiteVarchar50存管理员家庭地址mobilePhoneNumberVarchar50存管理员电话号码(2)carMessage(车辆信息表)字段名称数据类型字段大小说明carIdint存车辆编号carTypeVarchar50存车辆类型carNameVarchar50存车辆名称timeBuyingVarchar50存车辆购置时间carConditionVarchar50存车辆情况RentStandardInt存车辆租金标准CarNumberVarchar50存车辆命名编号(3)customerMessage(用户信息表)字段名称数据类型字段大小说明IDint存用户编号CardIdVarchar50存用户身份证号码NameVarchar50存用户姓名AgeInt存用户年纪HomeAddressVarchar50存用户家庭地址TelephoneVarchar50存用户电话号码carLeaseInt存用户租期carAdvancedDepositsInt存用户预付押金carRendModeVarchar50存用户租赁模式carRendTimeDatatime存用户租车时间finallyPayint存用户最终应付carNumberVarchar50存所借车命名号DriverNuberVarchar50存所安排司机命名号(4)driverMessage(司机信息表)字段名称数据类型字段大小说明IDInt存司机编号CardIdvarchar50存司机身份证号码Namevarchar50存司机姓名AgeInt存司机年纪HomeAddressvarchar50存司机家庭地址Telephonevarchar50存司机电话号码DrivingLicensevarchar50存司机驾驶证书DriverArrangevarchar50存司机是被安排DriverNumbervarchar50存司机命名编号5.5 建立数据库在SQL Server 中用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 adminMessage(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, -车辆id carType varchar(50),-车辆类型 carName varchar(50),-车辆名称timeBuying varchar(50),-购置时间carCondition 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 ,-用户租期carAdvancedDeposits int,-预付押金 carRendMode varchar(50),-租车模式carRendTime date,-租车时间finallyPay int,-用户最终应付carNumber varchar(50),-用户所借车辆编号DriverNuber varchar(50),-司机编号)四.建立司机信息表/*table:driverMessage,创建司机信息表数据*/create table driverMessage( ID int not null,-司机id CardId varchar(50),-司机身份证号码 Name varchar(50),-司机姓名 Age 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 ('张军','男','4508021','广西南宁','')二、向车辆信息表加载数据insert into carMessage(carType,carName,timeBuying,carCondition,RentStandard,CarNumber) values ('中型车','奥迪','.10.10','可供出租','10','2B005')insert into carMessage(carType,carName,timeBuying,carCondition,RentStandard,CarNumber) values ('小型车','大众','.10.10','可供出租','10','2B529')insert into carMessage(carType,carName,timeBuying,carCondition,RentStandard,CarNumber) values ('紧凑型车','五菱宏光','.10.10','可供出租','10','2B546')insert into carMessage(carType,carName,timeBuying,carCondition,RentStandard,CarNumber) values ('小型车','帝豪','.10.10','可供出租','10','2B456')insert into carMessage(carType,carName,timeBuying,carCondition,RentStandard,CarNumber) values ('紧凑型车','丰田','.10.10','可供出租','10','2B756')三、向用户信息表加载数据Insertinto customerMessage(CardId,Name,Age,HomeAddress,Telephone,carLease,carAdvancedDeposits,carRendMode,carRendTime,finallyPay,carNumber,DriverNuber) values('10','覃玉','25','广西钦州','','10','500','日租',GETDATE()-1,'100','2B005','H3602')insert into customerMessage(CardId,Name,Age,HomeAddress,Telephone,carLease,carAdvancedDeposits,carRendMode,carRendTime,finallyPay,carNumber,DriverNuber) values('10','张丹','25','广西玉林','','15','500','日租',GETDATE()-3,'150','2B529','H3603')insertinto customerMessage(CardId,Name,Age,HomeAddress,Telephone,carLease,carAdvancedDeposits,carRendMode,carRendTime,finallyPay,carNumber,DriverNuber) values('10','林黛玉','27','广西贺州','','14','500','日租',GETDATE()-4,'140','2B546','H3604')insert into customerMessageinsertinto customerMessage(CardId,Name,Age,HomeAddress,Telephone,carLease,carAdvancedDeposits,carRendMode,carRendTime,finallyPay,carNumber,DriverNuber) values('10','陈浩明','27','合肥','','11','500','月租',GETDATE()-16,'1100','2B523','未安排')insertinto customerMessage(CardId,Name,Age,HomeAddress,Telephone,carLease,carAdvancedDeposits,carRendMode,carRendTime,finallyPay,carNumber,DriverNuber) values('10','黄浩','27','合肥','','11','500','月租',GETDATE()-16,'1100','2B589','未安排')insert into customerMessage四、向司机信息表加载数据Insertinto driverMessage(CardId,Name,Age,HomeAddress,Telephone,DrivingLicense,DriverArrange,DriverNumber) values('4509814','甘大帅','30','广西梧州','','B1','已安排','H3604')Insertinto driverMessage(CardId,Name,Age,HomeAddress,Telephone,DrivingLicense,DriverArrange,DriverNumber) values('4509815','韦小宝','30','广西百色','','C1','已安排','H3605')insertinto driverMessage(CardId,Name,Age,HomeAddress,Telephone,DrivingLicense,DriverArrange,DriverNumber) values('4509816','陈晓晓','40','广东惠州','','B1','未安排','H3601')insertinto driverMessage(CardId,Name,Age,HomeAddress,Telephone,DrivingLicense,DriverArrange,DriverNumber) values('4509817','很多','30','广西全州','','C1','未安排','H3606')insertinto driverMessage(CardId,Name,Age,HomeAddress,Telephone,DrivingLicense,DriverArrange,DriverNumber) values('4509818','黄英','40','北京','','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 System.Data;namespace carRentaManagementSystem class lsSqlHelper Privatestaticstring connStr=ConfigurationManager.ConnectionStrings"connStr".ConnectionString; public static int ExecuteNonQuery(string sql,params SqlParameter parameters) using (SqlConnection conn = new SqlConnection(connStr) conn.Open(); using (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 (SqlConnection 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 = 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查询车辆信息Select * 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 数据库维护运行数据库合格后,数据库开发设计工作就基础完成了,接下来工作就是在正式运行中调试,此次我们开发车辆租赁管理系统,数据库中几乎不会发生什么大改变,不过还是需要做好数据备份,在server中,我们能够利用备份数据库功效对已经设计好数据做备份,同时我们保留好我们建数据库、数据表时所用sql语句。假如数据库受到破坏或系统故障,我们便可轻松利用备份文件恢复数据库数据。 7 用户界面设计7.1 登陆界面设计登录界面在登陆时设置登录用户名是“admin”,密码为“123456”。7.2 主窗体界面设计主窗体界面中显示了管理员信息、车辆信息、用户信息、司机信息和租金查询!7.3 管理员信息界面设计在管理员信息界面中,按“修改”按钮,能够修改管理员相关信息。7.4 车辆信息界面设计车辆信息界面设计我们具体描述了车辆基础信息(包含:车辆类型、车辆名、车辆情况、购置时间、租金标准等),而且能够按租车情况来添加、删除、修改车辆相关信息。添加车辆信息删除车辆信息修改车辆信息7.5 用户信息界面设计在此界面中,我们设置了用户部分信息和租车情况!而且能够经过图片左上角控件图标来管理用户相关信息。添加用户信息删除用户信息修改用户信息7.6 司机信息界面设计经过此界面,管理员能够查询司机相关信息,而且能够经过界面左上角控件图标来添加、删除、修改司机信息!添加司机信息删除司机信息修改司机信息7.7 租金查询界面设计在该界面,管理员能够查询车辆日租和月租情况。7.8 项目结构在vs所建项目结构以下图所表示8 收获、体会和提议这次课程设计我们组设计是一个汽车租赁管理系统,经过这次可视化编程课程设计,我了解了一个完整数据库系统设计步骤,掌握了租车企业汽车租赁系统业务步骤及管理,巩固了我在课堂上所学理论知识,更深入了解了面向对象编程基础思想,而且对可视化编程工具Visual Studio 及SQL Server 软件应用有了更深入掌握,掌握了界面设计、C#语言编写代码设计各功效模块步骤,并学会了VS及用SQL Server 建立数据库连接代码设计,开拓了自己知识面,同时也让我看到了自己不足,很多东西单独用能够做出来,可是连贯起来就出现了很多错,还有很多不足,需要努力。 当然在我们小组共同努力结果下,见证了一个系统诞生,即使不复杂,但它能够实现部分基础功效,很有成就感,是理论和实践一次完美结合,而且也学到很多书本上没有包含到知识,对编程经验也起到了累积作用,也是第一次了解了一个系统诞生所要经过步骤,前期、设计、完成、后期一个也不能少,不像平时只用编一个程序,至于需求和维护没有包含,这次课程设计就像一次工作体验,从头到尾不遗余力把它完成。体会就是自己在这次设计当中碰到了很多问题,一开始时候根本无从下手、什么全部不会,不过经过和小组组员讨论,查阅资料、网上查询等有了基础了解,碰到问题也和其它同学进行交流、探讨,问题得以一一处理。总而言之,在这次程序设计中,学会到了很多以前没有了解到知识,当然系统还有很多不足,比如主界面缩放功效没有很好实现等,这还需要在以后学习中慢慢改善。回想我们在这这段时间课程设计,我们分工合作,大家一起讨论,查找资料,感到很充实。这也充足展现了团体合作关键性,因为有了大家付出,才能完满完成了这个课程设计。在以后学习中我们还会更努力学习,把自己学到知识利用到以后学习和工作中去。参考文件1 文东 申锐 乔明秋编著, ASP.NET程序设计基于Visual Studio 科学出版社 2 明日科技编著, SQL Server 从入门到精通 清华大学出版社