收藏 分销(赏)

车辆管理系统数据库设计.docx

上传人:可**** 文档编号:843719 上传时间:2024-03-28 格式:DOCX 页数:15 大小:218.94KB 下载积分:11 金币
下载 相关 举报
车辆管理系统数据库设计.docx_第1页
第1页 / 共15页
车辆管理系统数据库设计.docx_第2页
第2页 / 共15页


点击查看更多>>
资源描述
学年论文 (课程论文、课程设计) 题  目:  车辆管理系统 作  者:    所在学院: 信息科学与工程学院 专业年级: 信息安全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、 关系模式: 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 = 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软件的不了解,在实现与数据库的连接时经常会出现各种不同的错误,在实现一些功能时系统常常会报错。 在将近一学期的课程设计中,我们学到了很多东西,也发现了很多的问题,以前都没遇见过的,收获很大,在对不同的功能代码是不一定可以完整的执行的,不过大概都是一样的,只有一些小的细节。 在整个设计过程中,通过怎样对把各个管理信息连接起来的分析,锻炼了我们对事情的分析能力,通过怎样解决过程中出现的问题,提高了我们查找文献的能力、对网络资源的利用能力和和其他同学的交流沟通能力。而且,经历这次的课程设计,我们也学会了自学和分工协作。 我们觉得每一次的课程设计,都是让我们对原有的知识从了解表面到深入本质,从个体学习到整体把握的跳跃,对新知识的汲取,更是让我们把课本的知识应用到实际中,让我们了解了我们的学习有什么用,能够解决什么样的问题,增加我们的自信和学习的动力。 总之,通过这次的课程设计,我们收获匪浅。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 数据库/数据算法

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服