目录1、绪论... .................................................................................... (2)2、需求分析 (3)3、数据库概念设计 (5)1、各实体er图 (5)2、驾校管理系统ER图 (6)4、数据库的逻辑设计 (7)1、关系模式 (7)2、截图 (7)5、数据库的物理设计 (11)1、创建数据库设计语句创建表格 (11)2、设计查询语句 (11)3、存储 (13)4、游标 (13)5、触发器器 (15)6、函数 (15)6、数据库的实现 (18)7、小结 (14)1、绪论随着我国经济不断的发展,人们的物质生活水平不断的提高,开始对生活物质条件提出高的要求,我国汽车工业迅猛的发展,汽车成为一种便捷、高效、通常的交通工具进入了人们的日常生活中,人们大量开始学习汽车驾驶技术。
为了满足人们对汽车驾驶的要求,汽车驾驶培训行业蓬勃发展,大大小小的汽车驾驶培训学校应运而生,使得汽车驾驶培训市场异常火爆。
自从交通部最新出台的《机动车驾驶员培训资格条件》正式实施后,驾校的日常工作变得繁杂。
学员从报名到最后取得驾照需要一系列学习过程,其间学员的数量庞大、车辆多、档案的存放与管理、学员的考试安排、教练与学员教学间的调度使得驾校人工管理日益复杂。
在早期的管理方式中,很多驾校为了节约成本,采用EXCEL文档进行管理,导致查询、统计、分析繁琐复杂。
这中管理方式,工作效率低下,相关资料数据容易丢失。
随着时代的发展,计算机技术已经深入到各行各业,为广大用户提供了更为周到便捷的服务,人工已经无法满足爆炸似的信息量繁杂劳动;硬件的高速发展,使计算机的性价比越来越高,为了提高驾校工作效率,保证准确完整的数据,采用计算机来管理驾校的信息和调度日常的教学安排,操作简单,功能简单实用,便于日常操作管理,可以快速处理所需信息,大大节约时间、人力和物力资源。
2、需求分析驾校信息管理系统是在符合国家相关规定的前提下,实现各种信息的规范化、易于管理化和高效化。
本论文系统主要是方便、简易驾校管理人员的工作,提高整个驾校的运作效率,对当前学员的报名、科目学习、学员的交费情况、学员的科目考试进程、车辆的调度合理状况及教练安排、约车人员的车辆分配情况等方面信息进行及时、有效的管理和修改。
现对系统功能的阐述如下:1.学员报名:学员报名时,每一位学员都由系统管理员分配一个唯一的编号,并进行学员基本信息的录入,待学员交费完毕后,同知学员具体的体检时间。
最后进行相关科目的学习和考试。
2.教练聘用:评价一个驾校的优劣,很大程度上是要看这个驾校的教学设施和教练的技术教学水平,对于教练的聘用要看教练是否取得教练资格证和教练教授的方法。
教练信息管理有添加、修改、删除,包括教练编号、姓名联系电话、教练证号等。
3.车辆资产:每个驾校都有属于自己的教学设施,而车辆最重要的资产。
每购入一辆车,都要对车辆的车牌号、车型、品牌等信息进行录入;每报废一辆车,要对其信息删除或修改存档。
4.培训内容:学员要进行学车训练,要先提前预约,包括预约的时间、培训类型、车辆类型、开始时间、结束时间的录入,由教练进行安排和分配。
5.考试科目:学员每学完一个科目,由驾校安排进行相关科目的考试。
学员考试,先向相关考试中心提交预约申请,考试中心下发具体的考试时间、地点、科目类型。
考试完毕后并符合要求,才能进行下一科目的学习考试。
6.交费项目:学员报考汽车驾驶培训,要缴纳一定的费用,每一个科目考试不合格,都要交相应考试科目的补考费用,管理员对学员交的基本费用和补考费用统计和录入。
3、数据库概念设计1、各实体的ER图图3.1—1实体驾校及其属性图3.1—2实体管理人员及其属性图3.1—3实体教练及其属性图3.1—4 实体学员及其属性图3.1—5实体科目及其属性费用收据号补考费报名费图3.1—6实体费用及其属性图3.1—7实体车辆及其属性2、驾校管理系统总ER 图**驾校制约教练车辆管理人员学员考试科目缴费费用教、练驾校编号面积等级教练编号性别姓名车牌号车型品牌管理人员编号性别姓名学员号性别姓名科目号学时人数收据号补考费报名费1XY ZNM 1111地点时间地点受理人H图3.2—1驾校管理系统总er 图4、数据库的逻辑设计1、关系模式合肥驾校(驾校编号,等级,面积)教练(教练编号,姓名,性别)管理人员(管理人员编号,姓名,性别)学员(学员号,姓名,性别)车辆(车牌号,车型,品牌)科目(科目号,学时,人数)费用(收据号,报名费,补考费)制约(驾校编号,教练编号,管理人员编号,车牌号,地点)教、练(教练编号,学员号,车牌号,场所)考试(学员号,科目号,时间)缴费(收据号,学员号,受理人)2、截图1、设计表格的建立图4.2.1—1 hfjx表格设计图4.2.1—2 cl表格设计图4.2.1—3 glry表格设计图4.2.1—4 xy表格设计图4.2.1—5 cl表格设计图4.2.1—6 km表格设计图4.2.1—7 fy表格设计图4.2.1—8 jandl表格设计图4.2.1—9 ks表格设计图4.2.1—10 zy表格设计图4.2.1—11 jf表格设计2、根据数据库设计要求给出了表间关联设计图如下:<1>,教、练得关系图:图4.2.2—1<2>,资源的关系图:图4.2.2—2<3>,考试的关系图:图4.2.2—3 <4>,缴费的关系图:图4.2.2—45、数据库的物理设计1、创建数据库及设计语句创建表格1、创建数据库create database xszhcpgl2、表格创建<1>、合肥驾校(hfjx)表格建立语句create table hfjx(驾校编号 char(10) not null unique, 等级 char(2),面积 char(10),primary key(驾校编号))<2>、教练(jl)表格建立语句create table jl(教练编号 char(10) not null,姓名 char(10),性别 char(10),primary key(教练编号))<3>、管理人员(glry)表格建立语句create table glry(管理人员编号 char(10) not null,姓名 char(10),性别 char(10),primary key(管理人员编号))<4>、学员(xy)表格建立语句create table xy(学员号 char(10) not null,姓名 char(10),性别 char(10),primary key(学员号))<5>、车辆(cl)表格建立语句create table cl(车牌号 char(10) not null,车型 char(10),品牌 char(10),primary key(车牌号))<6>、科目(km)表格建立语句create table km(科目号 char(10) not null,学时 char(10),人数 char(10),primary key(科目号))<7>、费用(fy)表格建立语句create table fy(收据号 char(10) not null,报名费 char(10),补考 char(10),primary key(收据号))2、查询语句<1>、查询车牌号为s000001的教练名select jl.姓名from jl,jandlwhere jandl.车牌号='s00001'and jandl.教练编号=jl.教练编号图5.2—1<2>、查询管理人员姓名是lihui的所负责车辆上学习学员的姓名select xy.姓名from glry,zy,jandl,xywhere glry.姓名='lihui' and glry.管理人员编号=zy.管理人员编号 and zy.车牌号=jandl.车牌号 and jandl.学员号=xy.学员号图5.2—2<3>、查询学员号姓名denghu为的学员学习科目二所用学时select km.学时from xy,ks,kmwhere xy.姓名='denghu' and xy.学员号=ks.学员号 and ks.科目号=km. 科目号图5.2—33、存储在学员里新加入一个学员create procedure xy_insert(@学员号 char(10),@姓名 char(10),@性别 char(10))asinsert into xyvalues(@学员号,@姓名,@性别)(存储前的表格)图5.3—1exec xy_insert '10005','xinran','f';(存储后的表格)图5.3—24、游标——查询学员数少于80的科目各加入10名学员declare @科目号 char(10),@人数 intdeclare km_cursor cursor forselect 科目号,人数from kmopen km_cursorfetch nextfrom km_cursorinto @科目号,@人数while @@fetch_status=0beginif @人数<80update kmset 人数=@人数+10where 科目号=@科目号fetch next from km_cursor into @科目号,@人数endclose km_cursordeallocate km_cursor(运行前的结果)图5.4—1(运行后的结果)图5.4—25、触发器在fy表中建立触发器t1,当插入或更新表中数据时,保证记录报名费不小于2000create trigger t1 on fyfor insert,updateasif(select 报名费 from inserted)<2000beginprint '报名费费不能少于2000! 操作失败'rollback transactionend输入新的报名费后:insert into fyvalues('hf100005','1000','0')(结果显示)图5.5—16、函数1、查询管理人员zhangjing在工作区域内服务学员的姓名create function chaxun (@姓名 char(20))returns tableasreturn (select xy.姓名from glry,zy,xy,jandlwhere glry.姓名=@姓名 and glry.管理人员编号=zy.管理人员编号and zy.车牌号=jandl.车牌号 and jandl.学员号=xy.学员号)图5.6—12、查询男性教练的教练编号和车型create function chax(@性别 char(10))returns tableasreturn (select jl.教练编号,cl.车型from jl,jandl,clwhere jl.性别=@性别 and jl.教练编号=jandl.教练编号 and jandl.车牌号=cl.车牌号)图5.6—23、统计所有科目中最多人数和最少人数之和(标量)create function sum(@a int,@b int)returns intasbegindeclare @sum intset @sum=@a+@breturn @sumend执行语句:select dbo.sum(max(km.人数),min(km.人数)) from km图5.6—36、数据库的实现 1、数据库中各表格的信息图6.1—1合肥驾校的基本信息表图6.1—2合肥驾校车辆信息表图6.1—3合肥驾校教练信息表图6.1—4合肥驾校管理人员信息表图6.1—5合肥驾校所授科目信息表图6.1—6合肥驾校学员信息表图6.1—7合肥驾校账目信息表图6.1—8合肥驾校收费信息表图6.1—9合肥驾校学员教练车场地分配信息图6.1—10合肥驾校学员考试信息图6.1—11合肥驾校资源分配基本信息2、企业管理器首页显示的该课程设计情况图6.2—1 数据库总体情况7、设计总结通过本次课程设计,我对本学期所学的“数据库”及“C#”两门课程都有了更深一层的理解和学习。