1、(4)正文:1 需求分析:随着社会经济的快速发展,人们的生活水平在逐步提高,因此对物质的需求也随之增长。汽车则成为人们出行、旅游的主要代步工具,与此同时给各行政机关单位(交警队)带来了不少新的问题,例如:意外交通事故的发生、车辆的违章、车辆的盗窃犯罪等等。为了方便各行政机关单位的管理,特开发出交警队车辆管理系统,它可以帮交警队所有执法人员能够轻松的去工作,高质量的完成任务,其该系统所具有功能如下:(1)录入信息 当用户购买车辆后,可以实现车辆,驾驶员等所有的相关信息,按照某个特定的顺序备录在案。(2)修改信息 当用户因某种原因将其车辆转让、出售给他人时,可以更改其驾驶员的所有信息。(3)删除信
2、息 由于意外事故而造成车辆报废或是驾驶员死亡,可以将关于车辆驾信息或驶员信息删除掉。(4)查询信息 车辆的被盗或是利用该车辆犯罪的,可以查询出该车的驾驶员所有信息,能够帮助公安机关破案。(5)统计信息 能够实现在某一时间或某一区域内的车辆违章、事故的数量等信息,作为文件上报给上级部门。2 概要设计: 交警队车辆管理系统数据流图详细设计:数据模型:驾驶员 (档案号、姓名、性别、出生日期、身份证号、准驾车型、住址、联系电话、累计积分)汽车 (车主姓名、车牌号码、发动机号、车辆名称、车辆外观、购车日期、购车时间、上户地点、上户时间、车辆用途、耗油量、出厂日期、报废日期)保险 (车牌号码、车主姓名、投
3、保日期、保险类型、保险金额、终止日期、保险公司、经手人)违章/事故(车牌号码、发生时间、发生地点、事故代码、处理部门)处罚条例(事故代码、事故原因、刑事责任、罚款金额)积分 (积分代码、积分、扣分原因)统计 (汽车总量、事故总量、罚款总金额、死亡总人数)注:单下划线为主键;双下划线为外键系统实现:1、 创建driver表 create table driver( ddaID int primary key, /*档案编号*/ dname char(10), /*车主姓名*/ dsex char(2), /*车主性别*/ dbirth datetime, /*出生日期*/ dID char(50
4、) foreign key, /*身份证号*/ dchx char(3), /*准驾车型*/ daddr char(50), /*车主住址*/ dtel int, /*联系电话*/ zjifen int / *累计积分*/ );2、 创建car表: create table car( carno char(20) foreign key, /*车牌号码*/ cmaID char(20) primary key, /*发动机号*/ cname char(20), /*车辆名称*/ ccolor char(10), /*车辆外观*/ cbuyt datetime, /*购车日期*/ ccost c
5、har(20), /*购车价格*/ caddr char(20), /*上户地点*/ cshahut datetime, /*上户日期*/ cyongtu char(10), /*车辆用途*/ chaoyou float, /*耗油量*/ cshecha datetime, /*出厂日期*/ cbaofei datetime /*报废日期*/);3、 创建baoxian表: create table baoxian( carno char(20) primary key, /*车牌号码*/ dname char(10), /*车主姓名*/ toubt datetime, /*投保日期*/ ty
6、pe char(10), /*投保类型*/ baomon char(20), /*投保金额*/ deadl datetime, /*保险终止日期*/ bname char(50), /*保险公司*/ jsname char(10) /*经手人姓名*/4、 创建accident表: create table accident acctime datetime, /*违章/事故时间*/ accaddr char(50), /*违章/事故地点*/ accID char(30) foreign key, /*违章/事故代码*/ accdept char(20) /*处理部门*/5、 创建daima表:
7、create table daima(accID char(20) primary key, /*事故代码*/ acccase char(300), /*事故原因*/ acccrim char(100), /*刑事责任*/ accmone char(20) /*罚款金额*/6、 创建jifen表:create table jifen(jfedaima char(20) primary key, /*积分代码*/jifen int, /*积分*/kccase char(300) /*扣分原因*/7、 创建total表: create table total( carcount char(60),
8、 /*汽车总量*/ acccount char(20), /*事故总量*/ kuacount char(20), /*罚款总金额*/ diecount char(60), /*死亡总人数*/系统测试:1、车牌号为“陕C84261”的汽车发生重大交通事故,查询该车的所属者姓名,并通过电话联系其家属。select driver.name,daddr,dtelfrom driver,carwhere carno=陕C84261 and driver.dname=car.name;2、李东先生买了最近一辆汽车,要求将其他本人的基本信息存入档案、由于搬家的原因需更改相应的地址、最后因一场车祸而不幸身亡则
9、删除其信息。(1) insert into driver(ddaID,dname,dsex,dbirth,dID,dchx,daddr,dtel)values(1000011,李东男1985-03-25610532198503250465A长安区官堰村856304851 (2) update driver set daddr=西安交通大学 where ddaID=1000011; (3) deletefrom driverwhere ddaID=;3、查询关于车牌号为陕AT7694的所有违章/事故信息。(accident与daima表的链接)select acctime,accaddr,acc
10、case,acccrim,accmone,accdeptfrom accident,daimawhere carno=陕AT7694 and accident.accID=daima.accID;4、档案号为100004的司机因在高速公路上倒车、逆行、穿越中央分隔带掉头的原因而被扣除相应的积分,更新driver表的累计积分。 update driverset zjifen=zjifen-jifenfrom jifen1000004 jfdaima=11111165、建立出生于1987年的驾驶员的视图create view IS_driverasselect dname,dsexwhere db
11、irth =1987-1-1 and dbirth 1987-12-306、建立驾驶黑色汽车的驾驶员姓名及身份证号的视图create view GG_carselect driver.name,dID,ccolorwhere driver.dname=car.dname and ccolor=黑色7、创建一个触发器,可以实现当某用户购买一辆新车时,录入该信息后,统计表中的汽车总量数量会自动加一。create trigger Intotal on carfor insertdeclare qiche char(6) select qiche=carno from inserted update
12、total set carcount=carcount+18、创建一触发器,可以实现当某一司机因重大交通事故而死亡的,删除driver表中的相关信息,其total表中死亡人数自动加一。create trigger AAAon driverfor deletedeclare ren intselect ren=ddaID from deletedupdate totalset diecount=diecount+1删除档案号为1000008的驾驶员信息:total的结果:9、创建一个BBC,用于获取指定车辆的车辆信息 If exists (select name from sysobjects where name=BBC and type=p ) drop procedure BBCgocreate procedure BBCchepai char(10)as select * from driver where carno=chepaiexec BBC 空25123410、创建一个存储过程CCD,用于获取给定驾驶员积分是否达到合格的标准。CCD drop procedure CCDcreate procedure CCD xingming char(20)declare jifen intselect jifen=zjifenfr
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1