车辆管理系统数据库设计-数据库设计管理系统

车辆管理系统数据库设计-数据库设计管理系统
车辆管理系统数据库设计-数据库设计管理系统

学年论文

(课程论文、课程设计)

题目:车辆管理系统

作者:

所在学院:信息科学与工程学院

专业年级:信息安全09-1 指导教师:

职称:讲师

2012年 5月 25 日

一、概述

随着经济的日益增长,信息化时代已经到来,生活中各种信息趋向数字化、清晰化。车辆管理系统就是在这样的一个环境中诞生的,交通的日益发达,使得一个单位不再是简单的一辆商务车,而是有很多辆车组成,而且车型也不再单一,这使得单位车辆信息复杂化。因此我们将发挥计算机的庞大的存储空间,高性能的处理能力,高度可靠的数据安全,清晰的可视化数据等这些优势来辅助单位对车辆进行管理,加强对本单位使用车辆的管理,实现了计算机资源的合理利用,真正实现了减少劳动力提高劳动质量的目的

车辆管理系统要求有如下管理功能:

(1)用车申请

(2)派车登记

(3)车辆支出的登记

(4)查看功能:可随时查看车辆基本信息、驾驶员基本信息、车辆使用记录、违

章记录、车辆费用管理、事故记录;

(5)根据车号查看当前车的使用情况

(6)统计功能:统计各车辆的违章记录、事故记录等;在某一时间内各车辆的油

料使用情况

本人在系统开发中承担用户登录,账户管理,登陆密码加密等相关功能

二、需求分析

1、数据流图:

内部车队

车辆管理系

单位职工派车登记

车辆支出登记派车

用车申请

图1第一层数据流图

内部车队

借车还车

登记

单位职工派车

车辆拒借信息

车辆外出费用单

司机信息统

计表车辆信息统

计表

车辆返还

查询系统

输入信息

允许/拒绝

申请信息借车(拒借)

查询查询

更新

更新更新

图2第二层数据流图

单位职工还车审查费用统计归还入库

还车结算检查(异常)司机信息统

计表

车辆信息统

计表

检查(正常)

违规处罚

更新

司机

提交记录

违规处罚

借还表

图3第三层数据流图

2、数字字典:

1)数据项:表1数据项

数据项名类型字节长度取值范围数据项含义说明

单位职工字符型20 任意车辆申请人部门字符型20 任意车辆申请人所在部门外出目的地字符型20 任意申请人外出目的地

外出时间字符型20 任意申请人外出时间

外出事由字符型20 任意申请人外出原因

车牌号字符型20 任意标识车辆车牌号

出车时间整型20 任意车辆借出时间

返回时间整型20 任意车辆返还时间

驾驶员驾照号字符型20 任意司机的驾照编号

事故记录单字符型20 任意车辆外出违章、事故的记录车辆费用单字符型20 任意车辆外出花费费用

事故记录字符型20 任意车辆外出违章记录编号整型20 任意对单位员工的标识汽车编号整型20 任意单位车辆的编号

驾驶员编号整型20 任意对单位驾驶员的标识

2)数据处理:

表2数据处理

处理过程名说明输入输出处理

车辆信息表车辆信息表执行添加操作添加添加借出归/还信

车辆信息表车辆信息表执行查询操作查询查询借出归/还信

车辆信息表车辆信息表执行修改操作修改修改借出归/还信

车辆信息表车辆信息表执行删除操作删除删除借出归/还信

车辆信息表车辆信息表执行统计操作统计统计车辆借出归

还信息

3)数据流:

表3数据流

数据流名说明数据流来源数据流去向组成

用车申请员工对借车原由员工车辆管理系统申请人、所在

的描述部门、外出目

的地,外出时

间、外出事由

派车登记表对借出车辆的登

记内部车队车辆管理系统车牌号、车辆

型号、燃油种

类、司机信息

违归处罚对违归使用的处

罚明细车辆管理系统员工(司机)违章记录、事

故记录、过期

还车还车信息登记员工车辆管理系统车辆信息、司

机信息

借车凭证借车信息登记车辆管理系统员工车辆信息、司

机信息

提交记录司机对外出使用

车辆的记录信息司机车辆管理系统事故、燃油、

维修等状况的

记录

检查异常(正常)对归还车辆的检

查看是否超期等

(正常)

申请单据车辆管理系统检查归还汽车

是否被损坏、

超期等

结算费用结算车辆管理系统员工(司机) 对违规、超期

罚款结算

更新对表数据的增删

修改等车辆管理系统各个信息表格对各个数据的

变动统计

4)数据存储:

表4数据存储

数据存储名说明编号输入数据流输出数据

组成存取方式频率

司机信息统计表对司机

的统计

信息

01 司机信息车辆管理

系统

司机姓

名、住址、

所在部

门、联系

电话

随机更新

借还统计表车辆借

出归还

统计信

02 借出/归还

信息

车辆管理

系统

车辆车牌

号、车辆

借出时

间、车辆

归还时间

随机更新

车辆信息统计表对车辆

目前情

况的统

03 汽车的借还

信息

车辆管理

系统

车辆忙闲

维修以及

外出使用

记录与统

随机更新

三、概要分析

1、分析

实体:

职工、车辆、驾驶员、出车、事故、维修、油耗、变动

实体属性:

职工:编号、姓名、性别、籍贯、生日、政治面貌、住址、身份证号、电话、部门、工龄

车辆:汽车编号、车牌号、车型、忙闲、车名、车龄、变动

驾驶员:驾驶员编号、忙闲、驾照号

事故:时间、地点、类型、费用

维修:时间、地点、类型、费用

油耗:时间、地点、燃油类型、费用

变动:变动单号、汽车编号、变动时间、原因

出车:时间

2、 E—R图:

指派

性别生日

部门

住址

姓名编号

电话

身份证号

忙/闲

驾照号工龄

地点

事由出车

承担

申请

职工

时间

车辆车型车牌号车龄

忙/闲发生时间

时间

类型费用地点地点费用时间地点评价

驾驶员编号车名汽车编号费用

燃油类型

类型

籍贯政治面貌

变动单号汽车编号变动时间原因驾驶员

属于

时间

1

1

变动

存在

事故

维修

油耗

1

1

1

11

1

1

N 1

N

N

N

11

四、 逻辑结构设计 1、 关系模式:

R1、车辆(汽车编号,车名,车型,车牌号,忙/闲,车龄)

R2、职工(编号,姓名,性别,部门,籍贯,生日,政治面貌,住址,身份证号,

工龄,电话,部门)

R3、申请(编号,汽车编号,地点,事由,时间) R4、驾驶员(驾驶员编号,驾照号,忙闲)

R5、事故(汽车编号,时间,地点,费用,类型)

R6、维修(汽车编号,时间,地点,费用,类型)

R7、油耗(汽车编号,时间,地点,费用,燃油类型)

R8、变动(变动单号,汽车编号、变动时间、原因)

2、关系模式规范化:

R1、车辆(汽车编号,车名,车型,车牌号,忙/闲,车龄)

R2、职工(编号,姓名,性别,部门,籍贯,生日,政治面貌,住址,身份证号,工龄,电话,部门)

R3、申请(编号,汽车编号,地点,事由,时间)

编号,汽车编号为外码

R4、驾驶员(驾驶员编号,驾照号,忙闲)

R5、事故(汽车编号,时间,地点,费用,类型)

R6、维修(汽车编号,时间,地点,费用,类型)

R7、油耗(汽车编号,时间,地点,费用,燃油类型)

上述关系中的每个属性都是不可再分的,所以满足第一范式。

上述关系中的每个属性都完全依赖于关系主码,所以满足第二范式。

上述关系都不存在传递依赖关系,所以满足第三范式。

3、最后确定的关系定义:

1)职工信息表:staffs

表5职工信息表

含义属性名数据类型长度完整性约束备注

编号staff_ID Int pk 员工统一号

姓名staff_name varchar 20 Not null

性别Sex varchar 20 Not null

籍贯Nationality varchar 20 Not null

生日birth varchar 20 Not null

政治面貌Political_Party varchar 20 Not null

家庭住址Family_Place varchar 20 Not null

身份证号Id_Card varchar 20 Not Null

证件号BadgeID varchar 20 Not null

电话Home_phone varchar 20 Not null

邮编Postcode varchar 20 Not null

工龄InDate varchar 20 Not null

2)维修信息表:reparis

表6维修信息表

含义属性名数据类型长度完整性约束备注

汽车编号carId Int pk

执行单exeID int

时间haptime Varchar 20

地点location Varchar 20

费用fee Int

类型haptype Varchar 20

3)事故信息表:accidents

表7事故信息表

含义属性名数据类型长度完整性约束备注

汽车编号carId Int Pk

执行单exeID int

时间atime Varchar 20

地点location Varchar 20

费用fee Int

类型haptype Varchar 20

4)油耗信息表:fuels

表8油耗信息表

含义属性名数据类型长度完整性约束备注

汽车编号carId Int pk

执行单exeID int

时间atime Varchar 20

地点location Varchar 20

费用fee Int

燃油种类haptype Varchar 20 汽车燃油的类型5)车辆信息表:carinfo

表9车辆信息表

含义属性名数据类型长度完整性约束备注

汽车编号carId Int Pk

车名carname varchar 20

车型ctype varchar 20

车牌号number varchar 20

车龄age varchar 20 汽车使用的时长忙/闲bof varchar 20 当前车辆状态

6)驾驶员信息表:driverinfo

表10驾驶员信息表

含义属性名数据类型长度完整性约束备注

驾驶员编号driId Int pk

驾照号licence varchar 20 not null

忙/闲busy_free varchar 20 not null 当前驾驶员状态7)申请信息表: applicants

表11申请信息表

含义属性名数据类型长度完整性约束备注

编号staff_ID Int pk 员工编号号

汽车编号carId Int not null

地点location Varchar 20 not null

事由aplwhy varchar 20 not null 申请汽车的原因及

用途

时间apltime Int not null 申请时间及时长五、物理设计

索引说明

用主键索引,即利用数据库默认索引。

六、系统实现

采用的工具有: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 = https://www.360docs.net/doc/7a1706016.html,ername

2.5 '设置用户类型

If Format(https://www.360docs.net/doc/7a1706016.html,ername, "<") = "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 = https://www.360docs.net/doc/7a1706016.html,ername

.txtUserName = https://www.360docs.net/doc/7a1706016.html,ername

.txtPass = MyUser.Pwd

.txtPass2 = MyUser.Pwd

.modify = True

'如果当前用户为Admin,则不能修改用户名

If Format(https://www.360docs.net/doc/7a1706016.html,ername, "<") = "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 = https://www.360docs.net/doc/7a1706016.html,ername

2.12设置用户类型

If Format(https://www.360docs.net/doc/7a1706016.html,ername, "<") = "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软件的不了解,在实现与数据库的连接时经常会出现各种不同的错误,在实现一些功能时系统常常会报错。

在将近一学期的课程设计中,我们学到了很多东西,也发现了很多的问题,以前都没遇见过的,收获很大,在对不同的功能代码是不一定可以完整的执行的,不过大概都是一样的,只有一些小的细节。

在整个设计过程中,通过怎样对把各个管理信息连接起来的分析,锻炼了我们对事情的分析能力,通过怎样解决过程中出现的问题,提高了我们查找文献的能力、对网络资源的利用能力和和其他同学的交流沟通能力。而且,经历这次的课程设计,我们也学会了自学和分工协作。

我们觉得每一次的课程设计,都是让我们对原有的知识从了解表面到深入本质,从个体学习到整体把握的跳跃,对新知识的汲取,更是让我们把课本的知识应用到实际中,让我们了解了我们的学习有什么用,能够解决什么样的问题,增加我们的自信和学习的动力。

总之,通过这次的课程设计,我们收获匪浅。

相关文档
最新文档