数据库课程设计员工信息管理系统_第1页
数据库课程设计员工信息管理系统_第2页
数据库课程设计员工信息管理系统_第3页
数据库课程设计员工信息管理系统_第4页
数据库课程设计员工信息管理系统_第5页
免费预览已结束,剩余28页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计任务书 姓 名学 号班 级 姓名性别班级在本项目中的分工 VB 界面设计 系统查询 功能 SQL 表的创建完善 及权限 触发器设计 系统健壮性维护 VB 界面设计 系统添加 功能 SQL 表的建立及索 引设计 数据字典 系 统测试 系统逻辑设计 系统修改功能 SQL 表的 创建 需求分析 课题组 成员 系统用户注册 考勤修 改功能 SQL 表的创建 功能设计分析 课程名称数据库系统原理课程性质专业必修课 设计时间2009 年 5 月 3 日 2009 年 6 月 15 日 设计名称员工信息管理系统 设计要求 1 对实际系统要有恰当的需求分析过程 内容至少应包含主要数 据流图 基本数据字典等信息的描述及相关系统功能的分析 2 设计过程应体现和侧重对数据库的分析和设计过程 内容至少 包含 E R 图设计 关系模式设计及优化 表间关系的分析等内 容 至少有 4 张以上基表的设计 3 要有数据库和表的创建脚本 输入必要的初始数据 每表至少 有 20 条以上记录 4 要有体现数据库安全性策略的设计过程 包括必要的权限设计 与管理 5 要有数据完整性设计 应包括必要的数据完整性校验 一致性 检查等 6 对典型功能鼓励使用存储过程 函数和触发器的设计与应用 7 系统前台的设计 可由学生自选开发工具完成 但要完成与数 据库连接配置与相关数据控件的绑定 8 成果提交形式 课程设计报告 完成系统功能的 有一定健壮 性的系统 设计思路 与 设计过程 1 需求分析 2 进行数据库的概念设计 3 进行数据库的逻辑设计 4 进行数据库的物理设计 5 进行应用程序设计 6 编程实现 7 调试完善 计划与进度 1 2009 05 3 2009 05 5 需求分析 2 2009 05 7 2009 05 10 概念设计 3 2009 05 10 2009 05 14 逻辑设计 4 2008 05 15 2009 06 2 系统设计 5 2009 06 5 2009 06 15 课程设计报告撰写 任课教师 意 见 说 明 设计名称 设计名称 员工信息管理系统 日期 日期 2009 年 5 月 3 日 设计内容 设计内容 1 员工信息添加 2 员工信息修改 3 员工信息删除 4 员工信息查询 多种方式 5 员工考勤信息添加 6 员工考勤信息修改 7 员工考勤信息删除 8 员工考勤信息查询 9 用户注册 10 SQL 基本表建立 11 SQL 权限 索引 触发器 函数的创建 12 ODBC 连接 设计目的与要求 设计目的与要求 1 加深对数据库系统原理 软件工程 程序设计语言的理论知识的理解和应用 水平 2 通过设计实际的数据库系统应用课题 进一步熟悉数据库管理系统的操作技 术 提高动手能力 提高分析问题和解决问题的能力 3 通过设计 掌握数据库应用系统综合开发的方法与技能 设计环境或器材 原理与说明 设计环境或器材 原理与说明 VB 6 0 SQL 设计过程 步骤 或程序代码 设计过程 步骤 或程序代码 1 1 需求分析需求分析 1 11 1 系统需求分析系统需求分析 在人才过剩的今天 企业对于有用人才的需求逐步加大 企业内部的人事 变动和部门规划也开始加速 传统的人事档案已经不能满足各个企业的人员流 动速度 迫使人们起用新的管理方法来管理员工的相关信息 科学技术日新月 异的进步 让人类生活发生了巨大的变化 计算机技术的飞速发展 使各行各 业在计算机技术应用方面得到了广泛的普及和使用 信息化时代的到来成为不 可抗拒的潮流 人类文明正在进入一个崭新的时代 因此 员工管理系统也以 方便 快捷 费用低 绿色环保的优点正慢慢地进入各个行业和领域 将传统 的员工管理方式彻底的解脱出来 提高效率 减轻工人人员以往繁忙的工作 加速信息的更新速度 使企业管理层第一时间了解到员工的信息 从而进一步 的进行对员工的调配 功能需求详细说明 增加 增加员工的基本信息 考勤信息 编辑 用户可以对员工信息 考勤信息进行删除 用户可以对员工的姓名 编号等员工基本信息进行修改 用户可以对员工的出勤天数 请假天数等考勤信息进行修改 查询 用户可以根据姓名 编号 准确的查到要找的员工 也可以选择部门 查 看选中的部门的所有员工 1 21 2 可行性分析可行性分析 本次课程设计题目 员工信息管理系统 主要目的是编制一个登陆系 统 连接数据库系统 用以实现员工个人信息与考勤信息的管理 同时对整个 系统的分析 设计过程给出一个完整的论证 由于本系统管理的对象简单 且每个数据内容之间都具有关联性 涉及过 程并不是很复杂 因此 比较适合于采用数据库管理 在技术难度方面 由于 有指导老师的指导和相关参考文献 特别是网上和图书馆资料 特别是参考其 它程序的功能 因此完全可以实现 2 2 数据库的概念设计数据库的概念设计 实体设计 员工 员工编号 姓名 性别 出生日期 籍贯 专业 学历编号 职称编号 职务编号 部门编号 参加工作时间 进入公司时间 员工备注 政治面貌 员工技术特长 毕业学校 用工性质 工资等级 合同期限 考勤 员工编号 考勤日期 姓名 应出勤天数 迟到次数 早退次数 请假 天数 旷工天数 加班天数 加班天数 补休天数 加班费 扣款 备注 根据以上需求分析 可画出 E R 模型图 图 1 1 图 1 1 E R 图 3 3 数据库的逻辑设计数据库的逻辑设计 根据系统功能设计的要求以及功能模块的划分 对员工信息管理系统可以 列出以 下数据项及数据结构 员工个人基本信息员工个人基本信息 包括员工编号 姓名 性别 出生日期 籍贯 专业 学历编号 职称编号 职务编号 部门编号 参加工作时间 进入公司时间 员工备注 政治面貌 员工技术特长 毕业学校 用工性质 合同期限 员工考勤基本信息员工考勤基本信息 包括员工编号 姓名 应出勤天数 迟到次数 早退 次数 请假天数 旷工天数 加班天数 加班天数 补休天数 加班费 扣款 备注 部门信息 部门信息 包括部门编号 部门名称 部门简介 职称信息 职称信息 包括职称序号 职称名称 备注 学历信息 学历信息 包括学历序号 学历名称 备注 职务信息 职务信息 包括职务序号 职务名称 备注 用户信息用户信息 包括用户的帐号及密码 4 4 数据库的物理设计数据库的物理设计 4 14 1 数据字典与关系图数据字典与关系图 根据系统需求及逻辑结构设计 本网站基于 SQL Server 2000 数据库 建 立如下数据库表 表 1 1 表 1 1 库名 员工数据库 用户信息表 sysuser 字段类型说明大小是否为空 user iduser id nvarchar 用户账号 8NOT NULL user pwd nvarchar 密码 8NOT NULL 部门信息表 department 字段类型说明大小是否为空 dept iddept idint 部门编号 4NOT NULL dept namenvarchar 部门名称 20NOT NULL dept desnvarchar 部门简介 50 员工基本信息表 employee 字段类型说明大小是否为空 emp idemp idint 员工编号 4NOT NULL emp namenvarchar 姓名 20NOT NULL sexnvarchar 性别 2NOT NULL birthdaysmaldatetime 出生日期 4NOT NULL nativenvarchar 籍贯 20 professionnvarchar 专业 20 edu idint 学历编号 4NOT NULL title idint 职称编号 4NOT NULL dept idint 部门编号 4NOT NULL duty idint 职务编号 4NOT NULL emp date1smaldatetime 参加工作时间 4NOT NULL emp date2smaldatetime 进入公司时间 4NOT NULL emp desnvarchar 员工备注 255 zzmmnvarchar 政治面貌 50 ygjstcnvarchar 员工技术特长 50 bisxnvarchar 毕业学校 50 ygxznvarchar 用工性质 50 htqxnvarchar 合同期限 50 职称信息表 title 字段类型说明大小是否为空 title idtitle idint 职称序号 4NOT NULL title namenvarchar 职称名称 20NOT NULL title desnvarchar 备注 255 学历信息表 education 字段类型说明大小是否为空 edu idedu idint 学历序号 4NOT NULL edu namenvarchar 学历名称 20NOT NULL edu desnvarchar 备注 255 职务信息表 duty 字段类型说明大小是否为空 duty idduty idint 职务序号 4NOT NULL duty namenvarchar 职务名称 20NOT NULL duty desnvarchar 备注 255 考勤信息表 checkin 字段类型说明大小是否为空 emp idemp idint 员工编号 4NOT NULL check ymcheck ymnvarchar 员工姓名 6NOT NULL w dayreal 应出勤天数 4NOT NULL l numsint 迟到次数 4NOT NULL e numsint 早退次数 4NOT NULL h daysreal 请假天数 4NOT NULL n daysreal 旷工天数 4NOT NULL o daysreal 加班天数 4NOT NULL r daysreal 补休天数 4NOT NULL overtime sreal 加班费 4NOT NULL d checkreal 扣款 4NOT NULL check desnvarchar 备注 255 注 波浪线为主键 图 1 2 关系图 4 24 2 数据库建立与初始化数据库建立与初始化 4 2 14 2 1 建立数据库建立数据库 Create table employee emp id int 4 not null emp name nvarchar 20 not null sex nvarchar 2 not null birthday smaldatetime 4 not null native nvarchar 20 profession nvarchar 20 edu id int 4 not null title id int 4 not null dept id int 4 not null duty id int 4 not null emp date1 smaldatetime 4 not null emp date2 smaldatetime 4 not null emp des nvarchar 255 zzmm nvarchar 50 ygjstc nvarchar 50 bisx nvarchar 50 ygxz nvarchar 50 htqx nvarchar 50 constraint EmPK primary key emp id constraint EduFK foreign key edu id references education edu id constraint TitleFK foreign key title id references education title id constraint DuFK foreign key duty id references education duty id constraint DeFK foreign key dept id references education dept id Create table title title id int 4 not null title name nvarchar 20 not null title des nvarchar 255 constraint TiPK primary key title id Create table education edu id int 4 not null edu name nvarchar 20 not null edu des nvarchar 255 constraint EdPK primary key edu id Create table duty duty id int 4 not null duty name nvarchar 20 not null duty des nvarchar 255 constraint DuPK primary key duty id Create table department dept id int 4 not null dept name nvarchar 20 not null dept des nvarchar 255 constraint DePK primary key dept id 4 2 24 2 2安全性 权限 安全性 权限 grant all privileges on employee to sasa grant all privileges on checkin to sasa grant all privileges on sysuser to sasa grant all privileges on duty to sasa grant all privileges on title to sasa grant all privileges on department to sasa grant all pr ivileges on education to sasa 4 2 34 2 3触发器触发器 功能 使姓名中不能出现数字 CREATE TRIGGER T IN ON dbo employee FOR INSERT Update AS IF EXISTS SELECT FROM employee WHERE emp name like 0 9 BEGIN RAISERROR 错误 姓名中不可出现数字 16 1 ROLLBACK RETURN END 4 2 44 2 4建立索引建立索引 create cluster index pk duty on duty id create cluster index pk department on dept id create cluster index pk title on title id create cluster index pk education on edu id create cluster index pk sysuser on user id create cluster index pk employee on emp id create cluster index pk checkin on emp id check ym 4 2 54 2 5VBVB 数据库连接语句数据库连接语句 Option Explicit Public dbConn As New ADODB Connection Public loginUser As String Public loginOK As Boolean Public cmdType As String Public tUser id As String Public tDept id As Integer Public tEmp id As Integer Public tCheck ym As String Public tQx As String Sub Main If ConnectToDatabase False Then MsgBox 连接数据库出错 End End If loginOK False cmdType frmLogin Show vbModal Unload frmLogin If loginOK Then MDIForm1 Show End If End Sub 连接到数据库 Function ConnectToDatabase As Boolean On Error GoTo ERR CONN 设置服务器名称 数据库名称 登录名 此时假设密码为空 dbConn ConnectionString dsn rsgl Database man uid ZFS pwd dbConn ConnectionString Provider msdasql Database man server computer uid sa pwd dbConn Open ConnectToDatabase True Exit Function ERR CONN ConnectToDatabase False End Function 4 2 64 2 6ODBCODBC 连接连接 连接数据库方法如下 1 打开我的电脑 控制面板 管理工具 2 双击 数据源 ODBC 打开 ODBC 数据源管理器 对话框 如图 图 1 3 所示 3 在 系统 DSN 选项卡下 单击 添加 按钮 弹出 如图 图 1 4 所示对话框 在该对话框中选择 SQL Server 选项 4 单击 完成 按钮 5 在该对话框中输入数据源 名 emp 服务器名 按 要求填空完成后 即可完 成数据源的连接设置 图 1 6 图图 1 31 3 图图 1 41 4 图图 1 51 5 图 1 6 5 5 应用程序设计应用程序设计 5 15 1 系统功能分析系统功能分析 员工信息管理系统基于用户验证登录的方式实现员工个人信息管理和员工考勤信息管 理 其功能结构如图 图 1 7 图 1 7 系统功能结构图 5 25 2 系统功能模块设计系统功能模块设计 员工信息管理系统主要包含用户登录 新增 编辑 查询功能模块 1 用户登陆 员工信息管理系统采用用户名及密码验证方式 进入员工信息管理系统前 用户必须在登录窗口输入用户名及密码 只有验证通过的用户方可进入员工信 息管理系统操作主页面 2 新增功能模块 包含 2 个功能模块 员工个人信息的添加 员工考勤信息的添加 3 编辑功能模块 包含 2 个功能模块 员工个人信息的删除 按月份进行员工考勤信息编辑 与删除 4 查询功能模块 包含 2 个功能模块 员工个人信息查询 按月份进行员工考勤信息查询 系统操作流程图 图 1 8 图 1 8 Y 登录密码框 判断密码 员工信息管理系统 其他管理 结束 开始 N 保存操作结果 设计结果与分析设计结果与分析 可以加页可以加页 1 1 员工信息查询 员工信息查询 frmEmpInfo2 frm frmEmpInfo2 frm 图 1 9 员工信息查询界面 主要代码如下 Private Sub Command1 Click Dim strId As String Dim strName As String Dim strDept As String Dim strTitle As String Dim strDuty As String Dim strEdu As String Dim strSex As String 设置错误陷阱 On Error GoTo ERR CONN If Trim MskId Then strId Else strId and a emp id MskId End If If Trim Text2 Then strName Else strName and a emp name Trim Text2 End If If cboDept ListIndex 0 Then strDept Else strDept and c dept name cboDept Text End If If cboTitle ListIndex 0 Then strTitle Else strTitle and e title name cboTitle Text End If If cboDuty ListIndex 0 Then strDuty Else strDuty and d duty name cboDuty Text End If If cboEdu ListIndex 0 Then strEdu Else strEdu and b edu name cboEdu Text End If If cboSex ListIndex 0 Then strSex Else strSex and a sex cboSex Text End If 打开一个数据集 strSql select a emp id a emp name a sex b edu name c dept name d duty name e title name from employee a education b department c duty d title e where a edu id b edu id and a dept id c dept id and a duty id d duty id and a title id e title id strId strName strDept strTitle strTitle strDuty strEdu strSex order by a emp id rs Open strSql dbConn adOpenForwardOnly adLockReadOnly If rs EOF Then Label9 找到 0 条记录 flxShow Rows 1 Else 填写数据 flxShow Rows 1 Do While Not rs EOF flxShow Rows flxShow Rows 1 flxShow TextMatrix flxShow Rows 1 0 rs Fields 0 Value For i 2 To rs Fields Count flxShow TextMatrix flxShow Rows 1 i rs Fields i 1 Value Next i rs MoveNext Loop Label9 找到 flxShow Rows 1 条记录 End If rs Close Exit Sub ERR CONN MsgBox 请检查输入的数据是否有效 End Sub Private Sub Command3 Click Unload Me End Sub Private Sub Form Load 性别 cboSex AddItem cboSex AddItem 男 cboSex AddItem 女 cboSex ListIndex 0 学历 strSql Select edu id edu name from education Order By edu id rs Open strSql dbConn adOpenForwardOnly adLockReadOnly cboEdu AddItem Do While Not rs EOF cboEdu AddItem rs Fields edu name Value cboEdu ItemData cboEdu NewIndex rs Fields edu id Value rs MoveNext Loop rs Close cboEdu ListIndex 0 部门 strSql Select dept id dept name from department Order By dept id rs Open strSql dbConn adOpenForwardOnly adLockReadOnly cboDept AddItem Do While Not rs EOF cboDept AddItem rs Fields dept name Value cboDept ItemData cboDept NewIndex rs Fields dept id Value rs MoveNext Loop rs Close cboDept ListIndex 0 职务 strSql Select duty id duty name from duty Order By duty id rs Open strSql dbConn adOpenForwardOnly adLockReadOnly cboDuty AddItem Do While Not rs EOF cboDuty AddItem rs Fields duty name Value cboDuty ItemData cboDuty NewIndex rs Fields duty id Value rs MoveNext Loop rs Close cboDuty ListIndex 0 职称 strSql Select title id title name from title Order By title id rs Open strSql dbConn adOpenForwardOnly adLockReadOnly cboTitle AddItem Do While Not rs EOF cboTitle AddItem rs Fields title name Value cboTitle ItemData cboTitle NewIndex rs Fields title id Value rs MoveNext Loop rs Close cboTitle ListIndex 0 设置列数 flxShow Cols 8 列标题 flxShow TextMatrix 0 0 工号 flxShow TextMatrix 0 1 flxShow TextMatrix 0 2 姓名 flxShow TextMatrix 0 3 性别 flxShow TextMatrix 0 4 学历 flxShow TextMatrix 0 5 部门 flxShow TextMatrix 0 6 职务 flxShow TextMatrix 0 7 职称 设置列宽 flxShow ColWidth 0 1000 flxShow ColWidth 1 0 flxShow ColWidth 2 1400 flxShow ColWidth 3 800 flxShow ColWidth 4 1400 flxShow ColWidth 5 1400 flxShow ColWidth 6 1400 flxShow ColWidth 7 1410 设置各列的对齐方式 For i 0 To 7 flxShow ColAlignment i 0 Next i 表头项居中 flxShow FillStyle flexFillRepeat flxShow Col 0 flxShow Row 0 flxShow RowSel 1 flxShow ColSel flxShow Cols 1 flxShow CellAlignment 4 flxShow Rows 1 强制跨越整个行选择 flxShow SelectionMode flexSelectionByRow End Sub 2 2 员工考勤查询 员工考勤查询 frmCheckInfo2 frm frmCheckInfo2 frm 员工考勤查询界面 主要代码如下 Private Sub Command3 Click Dim strId As String Dim strName As String Dim strDept As String Dim strCheck As String 按工号查询 If Len Trim MskId 0 Then strId Else strId and a emp id MskId End If 按姓名查询 If Len Trim Text1 0 Then strName Else strName and b emp name Trim Text1 End If 按部门查询 If cboDept Then strDept Else strDept and c dept name cboDept End If 按时间查询 If cboCheckYear Then If cboCheckMonth Then 年月都为空时 strCheck Else 任意年份的指定月 strCheck and a check ym in Year Date cboCheckMonth Year Date 1 cboCheckMonth End If Else If cboCheckMonth Then 指定年份的任意月 strCheck and a check ym in cboCheckYear 01 cboCheckYear 02 cboCheckYear 03 cboCheckYear 04 cboCheckYear 05 cboCheckYear 06 cboCheckYear 03 cboCheckYear 07 cboCheckYear 08 cboCheckYear 09 cboCheckYear 10 cboCheckYear 11 cboCheckYear 12 Else 指定的年月 strCheck and a check ym in cboCheckYear cboCheckMonth End If End If 打开一个数据集 strSql select a emp id b emp name c dept name a check ym a w days a l nums a e nums a h days a n days from checkin a employee b department c where a emp id b emp id and c dept id b dept id strCheck strDept strName strId order by b emp id rs Open strSql dbConn adOpenForwardOnly adLockReadOnly flxShow Rows 1 If rs EOF Then Else 填写数据 Do While Not rs EOF flxShow Rows flxShow Rows 1 flxShow TextMatrix flxShow Rows 1 0 rs Fields 0 Value For i 2 To rs Fields Count flxShow TextMatrix flxShow Rows 1 i rs Fields i 1 Value Next i rs MoveNext Loop End If Label8 找到 flxShow Rows 1 条记录 rs Close End Sub Private Sub Form Load Me Icon LoadPicture App Path Graph07 ico 设置列数 flxShow Cols 10 列标题 flxShow TextMatrix 0 0 工号 flxShow TextMatrix 0 1 flxShow TextMatrix 0 2 姓名 flxShow TextMatrix 0 3 部门 flxShow TextMatrix 0 4 考勤时间 flxShow TextMatrix 0 5 应出勤 flxShow TextMatrix 0 6 迟到 flxShow TextMatrix 0 7 早退 flxShow TextMatrix 0 8 请假 flxShow TextMatrix 0 9 旷工 设置列宽 flxShow ColWidth 0 1000 flxShow ColWidth 1 0 flxShow ColWidth 2 1200 flxShow ColWidth 3 1200 flxShow ColWidth 4 1200 flxShow ColWidth 5 820 flxShow ColWidth 6 820 flxShow ColWidth 7 820 flxShow ColWidth 8 820 flxShow ColWidth 9 900 设置各列的对齐方式 For i 0 To 9 flxShow ColAlignment i 0 Next i 表头项居中 flxShow FillStyle flexFillRepeat flxShow Col 0 flxShow Row 0 flxShow RowSel 1 flxShow ColSel flxShow Cols 1 flxShow CellAlignment 4 强制跨越整个行选择 flxShow SelectionMode flexSelectionByRow flxShow Rows 1 cboCheckYear AddItem cboCheckYear AddItem Year Date cboCheckYear AddItem Year Date 1 cboCheckYear ListIndex 1 cboCheckMonth AddItem For i 1 To 12 If i 0 And Mid Trim txtEmp name Text i 1 9 Then flag1 True End If Next For i 1 To Len Trim txtEmp id Text If Mid Trim txtEmp id Text i 1 9 Then flag2 True End If Next If Trim txtEmp name Text Then MsgBox 姓名不能为空 请重新输入 姓名不能为空 请重新输入 vbOKOnly vbExclamation 警告警告 txtEmp name Text txtEmp name SetFocus Exit Sub End If If flag1 True Then MsgBox 姓名不能含有数字 姓名不能含有数字 vbOKOnly vbExclamation 警告警告 txtEmp name Text txtEmp name SetFocus Exit Sub End If If flag2 True T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论