车辆管理系统数据库设计文档格式.docx
《车辆管理系统数据库设计文档格式.docx》由会员分享,可在线阅读,更多相关《车辆管理系统数据库设计文档格式.docx(19页珍藏版)》请在冰点文库上搜索。
取值范围
数据项含义说明
单位职工
字符型
20
任意
车辆申请人
部门
车辆申请人所在部门
外出目的地
申请人外出目的地
外出时间
申请人外出时间
外出事由
申请人外出原因
车牌号
标识车辆车牌号
出车时间
整型
车辆借出时间
返回时间
车辆返还时间
驾驶员驾照号
司机的驾照编号
事故记录单
车辆外出违章、事故的记录
车辆费用单
车辆外出花费费用
事故记录
车辆外出违章记录
编号
对单位员工的标识
汽车编号
单位车辆的编号
驾驶员编号
对单位驾驶员的标识
2)数据处理:
表2数据处理
处理过程名
说明
输入
输出
处理
添加
添加借出归/还信息
车辆信息表
执行添加操作
查询
查询借出归/还信息
执行查询操作
修改
修改借出归/还信息
执行修改操作
删除
删除借出归/还信息
执行删除操作
统计
统计车辆借出归还信息
执行统计操作
3)数据流:
表3数据流
数据流名
数据流来源
数据流去向
组成
用车申请
员工对借车原由的描述
员工
车辆管理系统
申请人、所在部门、外出目的地,外出时间、外出事由
派车登记表
对借出车辆的登记
内部车队
车牌号、车辆型号、燃油种类、司机信息
违归处罚
对违归使用的处罚明细
员工(司机)
违章记录、事故记录、过期
还车
还车信息登记
车辆信息、司机信息
借车凭证
借车信息登记
提交记录
司机对外出使用车辆的记录信息
司机
事故、燃油、维修等状况的记录
检查异常(正常)
对归还车辆的检查看是否超期等(正常)
申请单据
检查归还汽车是否被损坏、超期等
结算
费用结算
对违规、超期罚款结算
更新
对表数据的增删修改等
各个信息表格
对各个数据的变动统计
4)数据存储:
表4数据存储
数据存储名
输入数据流
输出数据流
存取方式
频率
司机信息统计表
对司机的统计信息
01
司机信息
司机姓名、住址、所在部门、联系电话
随机
借还统计表
车辆借出归还统计信息
02
借出/归还信息
车辆车牌号、车辆借出时间、车辆归还时间
车辆信息统计表
对车辆目前情况的统计
03
汽车的借还信息
车辆忙闲维修以及外出使用记录与统计
三、概要分析
1、分析
实体:
职工、车辆、驾驶员、出车、事故、维修、油耗、变动
实体属性:
职工:
编号、姓名、性别、籍贯、生日、政治面貌、住址、身份证号、电话、部门、工龄
车辆:
汽车编号、车牌号、车型、忙闲、车名、车龄、变动
驾驶员:
驾驶员编号、忙闲、驾照号
事故:
时间、地点、类型、费用
维修:
油耗:
时间、地点、燃油类型、费用
变动:
变动单号、汽车编号、变动时间、原因
出车:
时间
2、E—R图:
四、逻辑结构设计
1、关系模式:
R1、车辆(汽车编号,车名,车型,车牌号,忙/闲,车龄)
R2、职工(编号,姓名,性别,部门,籍贯,生日,政治面貌,住址,身份证号,工龄,电话,部门)
R3、申请(编号,汽车编号,地点,事由,时间)
R4、驾驶员(驾驶员编号,驾照号,忙闲)
R5、事故(汽车编号,时间,地点,费用,类型)
R6、维修(汽车编号,时间,地点,费用,类型)
R7、油耗(汽车编号,时间,地点,费用,燃油类型)
R8、变动(变动单号,汽车编号、变动时间、原因)
2、关系模式规范化:
编号,汽车编号为外码
上述关系中的每个属性都是不可再分的,所以满足第一范式。
上述关系中的每个属性都完全依赖于关系主码,所以满足第二范式。
上述关系都不存在传递依赖关系,所以满足第三范式。
3、最后确定的关系定义:
1)职工信息表:
staffs
表5职工信息表
含义
属性名
数据类型
长度
完整性约束
备注
staff_ID
Int
pk
员工统一号
姓名
staff_name
varchar
Notnull
性别
Sex
籍贯
Nationality
Notnull
生日
birth
政治面貌
Political_Party
家庭住址
Family_Place
身份证号
Id_Card
NotNull
证件号
BadgeID
电话
Home_phone
邮编
Postcode
工龄
InDate
2)维修信息表:
reparis
表6维修信息表
carId
执行单
exeID
int
haptime
Varchar
地点
location
费用
fee
haptype
3)事故信息表:
accidents
表7事故信息表
Pk
atime
4)油耗信息表:
fuels
表8油耗信息表
燃油种类
汽车燃油的类型
5)车辆信息表:
carinfo
表9车辆信息表
车名
carname
车型
ctype
number
车龄
age
汽车使用的时长
忙/闲
bof
当前车辆状态
6)驾驶员信息表:
driverinfo
表10驾驶员信息表
driId
驾照号
licence
notnull
busy_free
当前驾驶员状态
7)申请信息表:
applicants
表11申请信息表
员工编号号
事由
aplwhy
申请汽车的原因及用途
apltime
申请时间及时长
五、物理设计
索引说明
用主键索引,即利用数据库默认索引。
六、系统实现
采用的工具有:
visualbasic6.0
SQLServer2005
完成的功能:
用户登录账户管理等相关方面的功能
部分功能代码如下:
1、用户登录功能代码如下:
1.1数据有效性检查
IftxtUser="
"
Then
MsgBox"
请输入用户名"
txtUser.SetFocus
ExitSub
EndIf
IftxtPwd="
请输入密码"
txtPwd.SetFocus
1.2将用户输入赋值到变量中
NameKey=MakeStr(txtUser)
PasswordKey=MakeStr(txtPwd)
1.3判断用户是否存在
IfMyUser.In_DB(NameKey)=FalseThen
用户名不存在"
Try_times=Try_times+1
IfTry_times>
=3Then
您已经三次尝试进入本系统,均不成功,系统将关闭"
DBapi_Disconnect
End
Else
1.4判断密码是否正确
MyUser.GetInfo(NameKey)
IfMyUser.Pwd<
>
PasswordKeyThen
密码错误"
2、账户管理功能代码如下
2.1'
启动窗体FrmUserEdit
.Show1
EndWith
2.2'
刷新用户名列表框
AdoUserList.Refresh
DataList1_Click
EndSub
2.3'
读取当前用户数据
MyUser.GetInfo(DataList1.Text)
2.4'
设置用户名
lblUserName=MyUser.username
2.5'
设置用户类型
IfFormat(MyUser.username,"
<
)="
admin"
lblUserType="
系统管理员"
2.6'
确认删除
IfMsgBox("
是否删除当前用户"
vbYesNo,"
请确认"
)=vbYesThen
'
删除当前用户
MyUser.Delete(DataList1.Text)
刷新用户名列表框内容
2.7把当前用户的数据赋值到FrmUserEdit窗体的相关位置
WithFrmUserEdit
.OriUser=MyUser.username
.txtUserName=MyUser.username
.txtPass=MyUser.Pwd
.txtPass2=MyUser.Pwd
.modify=True
如果当前用户为Admin,则不能修改用户名
.txtUserName.Enabled=False
将变量Modify设置为True,表示当前状态为修改已有数据
2.8'
2.9'
2.10'
2.11'
2.12设置用户类型
3用户登录密码加密功能代码如下:
PrivateFunctionEncryption(ByValstrEncAsString)AsString
DimiAsInteger'
for循环用
DimstrTmpAsString'
临时字符存储
Encryption="
If(Len(strEnc)<
1)Then
Fori=1ToLen(strEnc)
IfAsc(Mid(strEnc,i,1))<
-6000AndMid(strEnc,i,1)<
"
?
strTmp=Chr(Asc(Mid(strEnc,i,1))-5)'
对gbk的汉字进行加密
ElseIfAsc(Mid(strEnc,i,1))<
=126AndAsc(Mid(strEnc,i,1))>
=80Then
strTmp=Chr(Asc(Mid(strEnc,i,1))-47)'
对大于79的asc进行加密
=79AndAsc(Mid(strEnc,i,1))>
=33Then
strTmp=Chr(Asc(Mid(strEnc,i,1))+47)'
对小于80的asc进行加密
strTmp=Mid(strEnc,i,1)'
其它的字符不去转化,但是要显示的
Encryption=Encryption&
strTmp'
加密后的字符
Next
EndFunction
七、总结
在将近一学期的课程设计中,我们用vb语言以及SQLServer2005做了一个车辆管理系统,分别实现了对车辆管理系统的添加车辆信息、删除车辆信息、修改车辆信息退出等几大功能。
在这次项目中,我们都很用心去做,但是,在项目中也出现了很多的问题,最大的问题就是对VistaBasic6.0软件的不了解,在实现与数据库的连接时经常会出现各种不同的错误,在实现一些功能时系统常常会报错。
在将近一学期的课程设计中,我们学到了很多东西,也发现了很多的问题,以前都没遇见过的,收获很大,在对不同的功能代码是不一定可以完整的执行的,不过大概都是一样的,只有一些小的细节。
在整个设计过程中,通过怎样对把各个管理信息连接起来的分析,锻炼了我们对事情的分析能力,通过怎样解决过程中出现的问题,提高了我们查找文献的能力、对网络资源的利用能力和和其他同学的交流沟通能力。
而且,经历这次的课程设计,我们也学会了自学和分工协作。
我们觉得每一次的课程设计,都是让我们对原有的知识从了解表面到深入本质,从个体学习到整体把握的跳跃,对新知识的汲取,更是让我们把课本的知识应用到实际中,让我们了解了我们的学习有什么用,能够解决什么样的问题,增加我们的自信和学习的动力。
总之,通过这次的课程设计,我们收获匪浅。