车辆管理系统数据库设计
发布时间:2018-11-02 20:13:10
发布时间:2018-11-02 20:13:10
学年论文
(课程论文、课程设计)
题 目: 车辆管理系统
作 者:
所在学院: 信息科学与工程学院
专业年级: 信息安全09-1
指导教师:
职 称: 讲 师
2012年 5月 25 日
一、概述
随着经济的日益增长,信息化时代已经到来,生活中各种信息趋向数字化、清晰化。车辆管理系统就是在这样的一个环境中诞生的,交通的日益发达,使得一个单位不再是简单的一辆商务车,而是有很多辆车组成,而且车型也不再单一,这使得单位车辆信息复杂化。因此我们将发挥计算机的庞大的存储空间,高性能的处理能力,高度可靠的数据安全,清晰的可视化数据等这些优势来辅助单位对车辆进行管理,加强对本单位使用车辆的管理,实现了计算机资源的合理利用,真正实现了减少劳动力提高劳动质量的目的
车辆管理系统要求有如下管理功能:
(1) 用车申请
(2) 派车登记
(3) 车辆支出的登记
(4) 查看功能:可随时查看车辆基本信息、驾驶员基本信息、车辆使用记录、违章记录、车辆费用管理、事故记录;
(5) 根据车号查看当前车的使用情况
(6) 统计功能:统计各车辆的违章记录、事故记录等;在某一时间内各车辆的油料使用情况
本人在系统开发中承担用户登录,账户管理,登陆密码加密等相关功能
二、 需求分析
1、 数据流图:
图1第一层数据流图
图2第二层数据流图
图3第三层数据流图
2、 数字字典:
1)数据项: 表1数据项
2)数据处理:
表2数据处理
3)数据流:
表3数据流
4)数据存储:
表4数据存储
三、概要分析
1、分析
实体:
职工、车辆、驾驶员、出车、事故、维修、油耗、变动
实体属性:
职工:编号、姓名、性别、籍贯、生日、政治面貌、住址、身份证号、电话、部门、工龄
车辆:汽车编号、车牌号、车型、忙闲、车名、车龄、变动
驾驶员:驾驶员编号、忙闲、驾照号
事故:时间、地点、类型、费用
维修:时间、地点、类型、费用
油耗:时间、地点、燃油类型、费用
变动:变动单号、汽车编号、变动时间、原因
出车:时间
2、 E—R图:
四、 逻辑结构设计
1、 关系模式:
R1、车辆(汽车编号,车名,车型,车牌号,忙/闲,车龄)
R2、职工(编号,姓名,性别,部门,籍贯,生日,政治面貌,住址,身份证号,工龄,电话,部门)
R3、申请(编号,汽车编号,地点,事由,时间)
R4、驾驶员(驾驶员编号,驾照号,忙闲)
R5、事故(汽车编号,时间,地点,费用,类型)
R6、维修(汽车编号,时间,地点,费用,类型)
R7、油耗(汽车编号,时间,地点,费用,燃油类型)
R8、变动(变动单号,汽车编号、变动时间、原因)
2、 关系模式规范化:
R1、车辆(汽车编号,车名,车型,车牌号,忙/闲,车龄)
R2、职工(编号,姓名,性别,部门,籍贯,生日,政治面貌,住址,身份证号,工龄,电话,部门)
R3、申请(编号,汽车编号,地点,事由,时间)
编号,汽车编号为外码
R4、驾驶员(驾驶员编号,驾照号,忙闲)
R5、事故(汽车编号,时间,地点,费用,类型)
R6、维修(汽车编号,时间,地点,费用,类型)
R7、油耗(汽车编号,时间,地点,费用,燃油类型)
上述关系中的每个属性都是不可再分的,所以满足第一范式。
上述关系中的每个属性都完全依赖于关系主码,所以满足第二范式。
上述关系都不存在传递依赖关系,所以满足第三范式。
3、 最后确定的关系定义:
1)职工信息表:staffs
表5职工信息表
2)维修信息表:reparis
表6维修信息表
3)事故信息表:accidents
表7事故信息表
4)油耗信息表:fuels
表8油耗信息表
5)车辆信息表:carinfo
表9车辆信息表
6)驾驶员信息表:driverinfo
表10驾驶员信息表
7)申请信息表: applicants
表11申请信息表
索引说明
用主键索引,即利用数据库默认索引。
采用的工具有:visual basic 6.0
SQL Server 2005
完成的功能:用户登录 账户管理等相关方面的功能
部分功能代码如下:
1、用户登录功能代码如下:
1.1数据有效性检查
If txtUser = "" Then
MsgBox "请输入用户名"
txtUser.SetFocus
Exit Sub
End If
If txtPwd = "" Then
MsgBox "请输入密码"
txtPwd.SetFocus
Exit Sub
End If
1.2将用户输入赋值到变量中
NameKey = MakeStr(txtUser)
PasswordKey = MakeStr(txtPwd)
1.3 判断用户是否存在
If MyUser.In_DB(NameKey) = False Then
MsgBox "用户名不存在"
Try_times = Try_times + 1
If Try_times >= 3 Then
MsgBox "您已经三次尝试进入本系统,均不成功,系统将关闭"
DBapi_Disconnect
End
Else
Exit Sub
End If
End If
1.4 判断密码是否正确
MyUser.GetInfo (NameKey)
If MyUser.Pwd <> PasswordKey Then
MsgBox "密码错误"
Try_times = Try_times + 1
If Try_times >= 3 Then
MsgBox "您已经三次尝试进入本系统,均不成功,系统将关闭"
DBapi_Disconnect
End
Else
Exit Sub
End If
End If
2、账户管理功能代码如下
2.1 '启动窗体FrmUserEdit
.Show 1
End With
2.2 '刷新用户名列表框
AdoUserList.Refresh
DataList1_Click
End Sub
2.3'读取当前用户数据
MyUser.GetInfo (DataList1.Text)
2.4'设置用户名
lblUserName = MyUser.username
2.5 '设置用户类型
If Format(MyUser.username, "<") = "admin" Then
lblUserType = "系统管理员"
2.6 '确认删除
If MsgBox("是否删除当前用户", vbYesNo, "请确认") = vbYes Then
'删除当前用户
MyUser.Delete (DataList1.Text)
'刷新用户名列表框内容
AdoUserList.Refresh
DataList1_Click
End If
End Sub
2.7 把当前用户的数据赋值到FrmUserEdit窗体的相关位置
With FrmUserEdit
.OriUser = MyUser.username
.txtUserName = MyUser.username
.txtPass = MyUser.Pwd
.txtPass2 = MyUser.Pwd
.modify = True
'如果当前用户为Admin,则不能修改用户名
If Format(MyUser.username, "<") = "admin" Then
.txtUserName.Enabled = False
End If
'将变量Modify设置为True,表示当前状态为修改已有数据
2.8'启动窗体FrmUserEdit
.Show 1
End With
2.9 '刷新用户名列表框
AdoUserList.Refresh
DataList1_Click
End Sub
2.10'读取当前用户数据
MyUser.GetInfo (DataList1.Text)
2.11'设置用户名
lblUserName = MyUser.username
2.12设置用户类型
If Format(MyUser.username, "<") = "admin" Then
lblUserType = "系统管理员"
3 用户登录密码加密功能代码如下:
Private Function Encryption(ByVal strEnc As String) As String
Dim i As Integer 'for循环用
Dim strTmp As String '临时字符存储
Encryption = ""
If (Len(strEnc) < 1) Then
Encryption = ""
Else
For i = 1 To Len(strEnc)
If Asc(Mid(strEnc, i, 1)) < -6000 And Mid(strEnc, i, 1) <> "?" Then
strTmp = Chr(Asc(Mid(strEnc, i, 1)) - 5) '对gbk的汉字进行加密
ElseIf Asc(Mid(strEnc, i, 1)) <= 126 And Asc(Mid(strEnc, i, 1)) >= 80 Then
strTmp = Chr(Asc(Mid(strEnc, i, 1)) - 47) '对大于79的asc进行加密
ElseIf Asc(Mid(strEnc, i, 1)) <= 79 And Asc(Mid(strEnc, i, 1)) >= 33 Then
strTmp = Chr(Asc(Mid(strEnc, i, 1)) + 47) '对小于80的asc进行加密
Else
strTmp = Mid(strEnc, i, 1) '其它的字符不去转化,但是要显示的
End If
Encryption = Encryption & strTmp '加密后的字符
Next
End If
End Function
七、 总结
在将近一学期的课程设计中,我们用vb语言以及SQL Server2005做了一个车辆管理系统,分别实现了对车辆管理系统的添加车辆信息、删除车辆信息、修改车辆信息退出等几大功能。
在这次项目中,我们都很用心去做,但是,在项目中也出现了很多的问题,最大的问题就是对Vista Basic 6.0软件的不了解,在实现与数据库的连接时经常会出现各种不同的错误,在实现一些功能时系统常常会报错。
在将近一学期的课程设计中,我们学到了很多东西,也发现了很多的问题,以前都没遇见过的,收获很大,在对不同的功能代码是不一定可以完整的执行的,不过大概都是一样的,只有一些小的细节。
在整个设计过程中,通过怎样对把各个管理信息连接起来的分析,锻炼了我们对事情的分析能力,通过怎样解决过程中出现的问题,提高了我们查找文献的能力、对网络资源的利用能力和和其他同学的交流沟通能力。而且,经历这次的课程设计,我们也学会了自学和分工协作。
我们觉得每一次的课程设计,都是让我们对原有的知识从了解表面到深入本质,从个体学习到整体把握的跳跃,对新知识的汲取,更是让我们把课本的知识应用到实际中,让我们了解了我们的学习有什么用,能够解决什么样的问题,增加我们的自信和学习的动力。
总之,通过这次的课程设计,我们收获匪浅。