数据库课程设计报告-通用工资管理系统课程设计.doc

上传人:小小飞 文档编号:3277274 上传时间:2019-08-07 格式:DOC 页数:43 大小:741.51KB
返回 下载 相关 举报
数据库课程设计报告-通用工资管理系统课程设计.doc_第1页
第1页 / 共43页
数据库课程设计报告-通用工资管理系统课程设计.doc_第2页
第2页 / 共43页
数据库课程设计报告-通用工资管理系统课程设计.doc_第3页
第3页 / 共43页
数据库课程设计报告-通用工资管理系统课程设计.doc_第4页
第4页 / 共43页
数据库课程设计报告-通用工资管理系统课程设计.doc_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《数据库课程设计报告-通用工资管理系统课程设计.doc》由会员分享,可在线阅读,更多相关《数据库课程设计报告-通用工资管理系统课程设计.doc(43页珍藏版)》请在三一文库上搜索。

1、华东交通大学理工学院通用工资管理系统课程设计报告存档资料 成绩: 华东交通大学理工学院数据库课程设计报告所属课程: 通用工资管理系统课程设计 分 院: 电子与信息工程分院 专速度业: 计算机科学与技术 学号: 学生姓名: 指导教师: 2010年12月31日 华东交通大学理工学院课 程 设 计( 论 文 )任 务 书专 业 计算机科学与技术 班 级 计科(2)班 姓名 江洋 一、课程设计(论文)题目 通用工资管理系统的设计与实现 二、课程设计(论文)工作:自 2010 年 12月 20 日起至 2012年 1 月 6 日止。三、课程设计(论文)的内容要求:(1) 鉴于嵌入式 SQL语言在软件开发

2、应用(特别是在数据库应用系统开发中)的重要作用,掌握使用SQL语言嵌入式操作与设计的基本方法和步骤。(2) 掌握与一种高级语言结合的具体程序代码的编写方法,上机运行,调试并能得出正确的结果。本课程设计的题目是一Virtual Basic为开发环境,利用嵌入式SQL语言与SQL Server结合起来,开发一个单数据库表的应用系统,为今后真正多表数据库应用系统开发打下良好的基础。(3)要求设计一套企业工资管理系统,其中应具有一定的人事档案管理功能。通过对职工建立人事档案,根据其考勤情况以及相应的工资级别,算出其相应的工资。为了便于企业领导掌握本企业的工资信息,在系统中应加入各种查询功能,包括个人信

3、息、职工工资、本企业内某一个月或某一部门的工资情况查询,系统应能输出各类统计报表。 学生签名(手签):_2010 年12月31日摘要 由于计算机技术的飞速发展,数据库技术作为数据管理的一个有效的手段,在各行各业中得到越来越广泛的应用。因此,本文围绕一个“通用工资管理系统”程序的设计和应用系统的开发课题为背景,详细介绍了以VB和SQL SERVER为语言编写管理信息系统的过程。该程序通过VB的ADO数据对象来实现VB前台与后台SQL SERVER数据库的连接,并具有典型的数据库应用系统的特征,完成了系统结构与现实生活的紧密结合。管理系统的开发不仅是一个应用程序编写的过程,更重要的是在系统分析和设

4、计阶段所做的工作。该程序在设计过程中严格遵循软件工程学的方法,用分阶段的生命周期计划严格管理,并主要讲述了程序的总体设计、详细设计阶段,对程序进行需求迭代,不断修正和改进,利用SQL SERVER的强大数据库功能,直到形成一个完善的可行性系统.较好的界面,方便实用的查询与维护功能共同构成了“人事工资管理系统”。关键词:VB,SQL SERVER,数据库,通用工资管理系统目 录第1章 引言.51.1 设计目的.51.2 设计要求.51.3 设计环境.51.4 设计分工.5第2章 需求分析.62.1 系统性需求分析.62.2 数据流图.62.3数据字典.7 2.3.1 数据结构描述.7 3.2.2

5、 数据流的描述.82.3.3 主要数据存储的定义.8第3章 概要设计.103.1 E-R图.10第4章 逻辑设计.124.1 数据库关系模式.124.2 关系模型的优化.124.3 建立表格.12第5章 物理设计和实施.14第6章 数据库的实现.146.1 用户登入模块.146.2 子模块的设计.176.2.1 用户管理模块.176.2.2 员工信息管理模块.216.2.3 部门信息管理.266.2.4 考勤信息管理.306.2.5 工资信息管理.326.2.6 津贴信息管理.36第7章 系统运行.42第8章 总结.43第1章 引言1.1 设计目的(1) 鉴于嵌入式 SQL语言在软件开发应用(

6、特别是在数据库应用系统开发中)的重要作用,掌握使用SQL语言嵌入式操作与设计的基本方法和步骤。(2) 掌握与一种高级语言结合的具体程序代码的编写方法,上机运行,调试并能得出正确的结果。本课程设计的题目是一Virtual Basic为开发环境,利用嵌入式SQL语言与SQL Server结合起来,开发一个单数据库表的应用系统,为今后真正多表数据库应用系统开发打下良好的基础。1.2 设计要求要求设计一套企业工资管理系统,其中应具有一定的人事档案管理功能。通过对职工建立人事档案,根据其考勤情况以及相应的工资级别,算出其相应的工资。为了便于企业领导掌握本企业的工资信息,在系统中应加入各种查询功能,包括个

7、人信息、职工工资、本企业内某一个月或某一部门的工资情况查询,系统应能输出各类统计报表。1.3 设计环境(1) 中文Windows操作系统。(2) SQL Server 2005.(3) Virtual Basic 6.0中文版。1.4 设计分工同组人:1班37号 邹海荣分工:课程设计中各任务的设计和调试独立思考,独立完成。第2章 需求分析2.1 系统性需求分析需求分析的第一步描述工资管理系统的功能,即定义用例,以此确定系统的功能需求。经过调研及分析,工资管理信息系统主要完成以下功能:(1) 管理员身份的确认:只有用户名和用户密码都相符的管理员方可进入本系统,为了防止不合法用户对数据的察看和修改

8、,管理员可以设定用户名、密码和其权限,还可以对纪录进行增加、删除、修改等操作。(3) 工资信息模块:员工每个月度的基本工资、岗位工资、水电费、津贴工资、扣除薪酬、实发金额。(4) 部门信息模块:公司各部门编号、名称、负责人、人数。(5) 考勤模块:记录员工迟到、缺席次数。(6) 津贴模块:记录员工加班情况派发津贴。(7) 员工信息模块:管理员对所需要的资料的查询即对员工基本信息的增加、删除、修改、查询操作。图2.1 系统功能模块2.2 数据流图经过需求分析和得到的系统功能模块图,可得到相应的数据流图,其中0层通用工资管理体统如图2.2所示。图2.2 通用工资关系系统0层数据流图2.3数据字典2

9、.3.1 数据结构描述名称:员工(Employee)含义说明:员工信息组成结构:员工编号+姓名+性别+年龄+所属部门+文化程度+职称名称:工资(Salary)含义说明:工资信息组成结构:员工编号+基本工资+实际工资+津贴工资+扣除工资名称:部门(branch)含义说明:部门信息组成结构:部门编号+部门名称+部门负责人+部门人数3.2.2 数据流的描述数据流名称:员工信息添加 简述:新员工信息录入数据流来源:公司管理人员数据流去向:员工信息数据流组成:员工编号+姓名+性别+年龄+所属部门+文化程度+职称数据流名称:员工信息修改 简述:员工信息错误或者员工调动数据流来源:员工信息数据流去向:员工信

10、息数据流组成:员工编号+姓名+性别+年龄+所属部门+文化程度+职称数据流名称:员工信息删除 简述:员工离职数据流来源:员工信息数据流去向:员工信息数据流组成:员工编号+姓名+性别+年龄+所属部门+文化程度+职称数据流名称:工资添加 简述:新员工工资添加数据流来源:公司管理者数据流去向:工资信息数据流组成:员工号+基本工资+实际工资+津贴工资+扣除薪酬数据流名称:工资修改 简述:公司对工资修改数据流来源:公司管理人员数据流去向:工资信息数据流组成:员工号+基本工资+岗位工资+津贴工资+扣除薪酬2.3.3 主要数据存储的定义存储名称:员工记录说明:存储员工信息输入:员工基本信息输出:员工所有信息数

11、据结构:员工编号+姓名+性别+年龄+所属部门+文化程度+职称存储名称:部门记录说明:存储部门信息输入:部门基本信息输出:部门所有信息数据结构:部门编号+部门名称+部门负责人+部门人数存储名称:工资记录说明:存储工资信息输入:员工工资信息输出:员工所有工资信息数据结构:员工编号+基本工资+实际工资+津贴工资+扣除工资存储名称:考勤记录说明:存储各员工的考勤信息输入:员工考勤信息输出:员工所有考勤信息数据结构:员工编号+迟到次数+缺席次数存储名称:津贴记录输入:员工津贴信息输出:员工所有津贴信息数据结构:员工编号+加班天数+津贴工资第3章 概念结构设计3.1 E-R图 根据需求分析阶段得到的数据流

12、图和数据字典,可以得出该工资管理系统的E-R图,如下图所示。图3.1 用户信息E-R图图3.2 员工信息E-R图图3.3 部门信息E-R图图3.4 津贴信息E-R图图3.5 考勤信息E-R图图3.6 工资信息E-R图将以上E-R图合并可得该系统的总E-R图,如图3.7所示。图3.7 通用工资管理系统总E-R图第4章 逻辑结构设计4.1 数据库关系模式逻辑结构设计的任务就是把概念结构设计阶段得到的E-R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。以下模式就是将E-R图转换为关系模式。其中标下划线的为主码。员工信息(员工编号、姓名、性别、年龄、所属部门、文化程度、职称)部门信息(

13、部门编号、部门名称、部门负责人、部门人数)基本工资(工资级别、基本工资)工资信息(员工编号、基本工资、津贴工资、扣除工资、实际工资)考勤信息(员工编号、迟到次数、缺勤次数)津贴信息(员工编号、加班天数、津贴工资) 用户信息(用户号、密码)4.2 关系模型的优化经分析得出,以上关系模式由于存在传递依赖,如津贴工资函数依赖于加班天数,故须对其进行优化处理。使其至少满足3NF,优化处理结果如下所示:员工信息(员工编号、姓名、性别、年龄、所属部门、文化程度、职称)部门信息(部门编号、部门名称、部门负责人、部门人数)基本工资(工资级别、基本工资)工资信息(员工编号、基本工资、津贴工资、扣除工资、实际工资

14、)考勤信息(员工编号、迟到次数、缺勤次数)津贴信息(员工编号、加班天数)津贴情况(加班天数,津贴工资) 用户信息(用户号、密码)4.3 建立表格工资信息管理系统数据库中各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。表4-1 员工信息表字段名称存储代码主键数据类型允许空值员工编号Eno是Char(8)Not null姓名Ename否Char(8)null性别Esex否Char(2)null年龄Eage否intnull所属部门Edep否Char(4)null文化程度Ecul否Char(4)null职称Ejob否Char(12)null表4-2 部门信息表字段名称存储代码主

15、键数据类型允许空值部门编号Dno是Char(4)Not null部门名称Dname否Char(20)null部门负责人Eno否Char(8)null部门人数Dnum否intnull表4-3 基本工资表字段名称存储代码主键数据类型允许空值工资级别Sno是Char(2)Not null基本工资Sbas否intnull表4-4 工资信息表字段名称存储代码主键数据类型允许空值员工编号Eno是Char(8)Not null基本工资Sbas否intnull津贴工资Ssub否intnull扣除工资Sred否intnull实际工资Srel否intnull表4-5 考勤信息表字段名称存储代码主键数据类型允许空值

16、员工编号Eno是Char(8)Not null迟到次数Elat否intnull缺勤次数Eabs否intnull表4-6 津贴信息表字段名称存储代码主键数据类型允许空值员工编号Eno是Char(8)Not null加班天数Eadd否intnull表4-7 津贴情况表字段名称存储代码主键数据类型允许空值加班天数Eadd是intNot null津贴工资Ssub否intnull表4-8 用户信息表字段名称存储代码主键数据类型允许空值用户号Eno否Char(8)Not null密码pasw否Char(6)null第5章 物理设计和实施数据库的建立如上表所示,存储路径等均采用系统默认设置。第6章 数据库的

17、实现6.1 用户登入模块经过以上步骤,建立了数据库和表之后,下面将在Vistual Basic 平台上与嵌入式SQL一起实现通用工资管理系统的功能。 6.1.1 “登陆模块”详细设计“登录模块”的设计主要是针对用户登录界面的设计,判断用户是否有权限访问系统,从而进入“主界面”。登陆界面主要由用户名和密码的信息,还有确定和取消按钮的设置。用户只有选择用户名后填入相应的密码后点击“确定”才能进入主界面,点击“取消”会退出系统。登陆界面设计,如图6.2所示。v图6.1 登入界面当用户操作有误时,会有如图6.2所示的错误信息。图6.2 登入失败界面登入界面对话框的代码如下。“确定”按钮的源代码:Pri

18、vate Sub Command1_Click()Dim r As IntegerDim rr As Integer If Me.txtUserName.Text = Then r = MsgBox(请输入用户名!, , 应付帐管理) txtUserName.SetFocus Exit Sub End If If Me.txtPassword.Text = Then rr = MsgBox(请输入密码!, , 应付帐管理) txtPassword.SetFocus Exit Sub End If Dim cn As New ADODB.Connection Dim rs As New ADOD

19、B.Recordset cn.Open Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Wage;Data Source=PC2006110122EOA Set rs = New ADODB.Recordset Dim s1_Sql As String s1_Sql = SELECT * FROM 用户表 WHERE 用户号= & Trim(txtUserName.Text) & and 密码= & Trim(Me.txtPassword.Text) & rs.Op

20、en s1_Sql, cn, adOpenStatic, adLockOptimistic On Error Resume Next rs.MoveFirst If Err = 3021 Then r = MsgBox(用户名或密码错误,请重新检查!, , 应付帐管理) Exit Sub End If 系统.Show Unload MeEnd Sub“取消”按钮的源代码:Private Sub Command2_Click()Unload MeEnd Sub由于“取消”按钮的源代码基本上是一样的,以下的模块江不再多述。6.1.2 “主界面”的详细设计主界面的设计是由菜单编辑器生成,主要由系统设

21、置、设置、信息维护、工资查询五个模块组成。其作用是使程序更加有条有理,有利于管理。其中普通用户只可部分操作,管理员可以对所有模块进行操作。6.2 子模块的设计6.2.1用户管理模块 选择“用户管理”“添加用户”菜单,在添加用户的窗体里输入用户名、密码系统自动新增用户名及其用户信息。如图6.4所示。为了提高系统的安全性,我在系统中设置了修改密码功能,只要输入修改后的密码即可,它会有修改后的提示信息,如图6.5所示。图6.3 工资管理系统总界面实现工资管理系统对话框的源代码如下:Private Sub A1_Click(Index As Integer)添加用户.ShowEnd SubPrivat

22、e Sub A2_Click(Index As Integer)修改密码.ShowEnd SubPrivate Sub B1_Click(Index As Integer)员工信息设置.ShowEnd SubPrivate Sub C1_Click(Index As Integer)部门信息设置.ShowEnd SubPrivate Sub D1_Click(Index As Integer)考勤信息设置.ShowEnd SubPrivate Sub E1_Click(Index As Integer)基本工资管理.ShowEnd SubPrivate Sub E2_Click(Index A

23、s Integer)工资信息表设置.ShowEnd SubPrivate Sub F1_Click(Index As Integer)津贴信息表设置.ShowEnd SubPrivate Sub F2_Click(Index As Integer)津贴情况表设置.ShowEnd SubPrivate Sub G_Click(Index As Integer)Unload MeEnd SubPrivate Sub wrtdep_Click(Index As Integer)修改部门信息.ShowEnd Sub图6.4 添加用户“添加用户”的源代码:Private Sub cmbfield_Cli

24、ck()cmbname.ClearAdodc1.RecordSource = select * from 用户表Adodc1.RefreshDo While Not Adodc1.Recordset.EOFcmbname.AddItem Adodc1.Recordset.Fields(cmbfield.Text)Adodc1.Recordset.MoveNextLoopcmbname.Text = cmbname.List(0)End SubPrivate Sub cmbname_Click()Dim conditioncondition = Trim(cmbfield.Text)If Var

25、Type(condition) = 8 ThenAdodc1.RecordSource = select * from 用户表 where & condition & = & cmbname.Text & 这里紧接上行,一下其他类是地方也同样ElseAdodc1.RecordSource = select * from 用户表 where & condition & = & cmbname.TextEnd IfAdodc1.RefreshAdodc1.Recordset.MoveFirstText1.Text = Adodc1.Recordset.Fields(Eno)Text2.Text =

26、 Adodc1.Recordset.Fields(密码)End SubPrivate Sub cmdadd_Click()On Error GoTo errorhandlerIf Text1.Text ThenAdodc1.Recordset.AddNewAdodc1.Recordset.Fields(Eno) = Text1.TextAdodc1.Recordset.Fields(密码) = Text2.TextAdodc1.Recordset.Updatecmbname.ClearAdodc1.RecordSource = select * from 用户表Adodc1.RefreshDo

27、 While Not Adodc1.Recordset.EOFcmbname.AddItem Adodc1.Recordset.Fields(1)Adodc1.Recordset.MoveNextLoopcmbfield_ClickElseMsgBox 员工号是主索引,不能为空, 错误提示End IfExit Suberrorhandler:MsgBox 员工号是主索引,不能重复, 错误提示End SubPrivate Sub Command2_Click()系统.ShowEnd SubPrivate Sub Form_Load()Dim i As IntegerAdodc1.RecordSo

28、urce = select * from 用户表Set DataGrid1.DataSource = Adodc1cmbfield.ClearFor i = 0 To Adodc1.Recordset.Fields.Count - 1cmbfield.AddItem Adodc1.Recordset.Fields(i).NameNext icmbfield.Text = cmbfield.List(0)End Sub图6.5 修改密码6.2.2 员工信息管理模块 选择“员工信息管理”“员工信息设置”,然后再在字段名上选Esex,字段值上选“男”,即可查询所有为男性的员工,如图6.6所示。同理,

29、也可以进行其他一些操作如删除,修改等。图6.6 员工信息设置员工信息管理模块的源代码:Private Sub cmbfield_Click()cmbname.ClearAdodc1.RecordSource = select * from 员工信息Adodc1.RefreshDo While Not Adodc1.Recordset.EOFcmbname.AddItem Adodc1.Recordset.Fields(cmbfield.Text)Adodc1.Recordset.MoveNextLoopcmbname.Text = cmbname.List(0)End SubPrivate S

30、ub cmbname_Click()Dim conditioncondition = Trim(cmbfield.Text)If VarType(condition) = 8 ThenAdodc1.RecordSource = select * from 员工信息 where & condition & = & cmbname.Text & ElseAdodc1.RecordSource = select * from 员工信息 where & condition & = & cmbname.TextEnd IfAdodc1.RefreshAdodc1.Recordset.MoveFirstt

31、xtid.Text = Adodc1.Recordset.Fields(Eno)txtname.Text = Adodc1.Recordset.Fields(Ename)txtage.Text = Adodc1.Recordset.Fields(Eage)txtdep.Text = Adodc1.Recordset.Fields(Dno)txtsex.Text = Adodc1.Recordset.Fields(Esex)txtcul.Text = Adodc1.Recordset.Fields(Ecul)txtjob.Text = Adodc1.Recordset.Fields(Ejob)E

32、nd SubPrivate Sub cmdadd_Click()On Error GoTo errorhandlerIf txtid.Text ThenAdodc1.Recordset.AddNewAdodc1.Recordset.Fields(Eno) = txtid.TextAdodc1.Recordset.Fields(Ename) = txtname.TextAdodc1.Recordset.Fields(Eage) = txtage.TextAdodc1.Recordset.Fields(Dno) = txtdep.TextAdodc1.Recordset.Fields(Esex)

33、= txtsex.TextAdodc1.Recordset.Fields(Ecul) = txtcul.TextAdodc1.Recordset.Fields(Ejob) = txtjob.TextAdodc1.Recordset.Updatecmbname.ClearAdodc1.RecordSource = select * from 员工信息Adodc1.RefreshDo While Not Adodc1.Recordset.EOFcmbname.AddItem Adodc1.Recordset.Fields(1)Adodc1.Recordset.MoveNextLoopcmbfiel

34、d_Clickcmdclear_ClickElseMsgBox 员工号是主索引,不能为空, 错误提示End IfExit Suberrorhandler:MsgBox 员工号是主索引,不能重复, 错误提示End SubPrivate Sub cmdclear_Click()txtid.Text = txtname.Text = txtsex.Text = txtdep.Text = txtcul.Text = txtjob.Text = txtage.Text = End SubPrivate Sub cmddel_Click()If txtid.Text ThenAdodc1.RecordS

35、ource = select * from 员工信息 where Eno= & txtid.Text & Adodc1.RefreshAdodc1.Recordset.DeleteAdodc1.Recordset.MoveNextcmbname.Clearcmbfield_Clickcmdclear_ClickEnd IfEnd SubPrivate Sub cmdedit_Click()Dim conn As ADODB.ConnectionDim rs As ADODB.RecordsetDim r As IntegerAdodc1.RecordSource = SELECT * FROM

36、 员工信息 WHERE Eno= & Trim(txtid.Text) & Adodc1.RefreshAdodc1.Recordset.Fields(Eno) = txtid.TextAdodc1.Recordset.Fields(Ename) = txtname.TextAdodc1.Recordset.Fields(Esex) = txtsex.TextAdodc1.Recordset.Fields(Eage) = txtage.TextAdodc1.Recordset.Fields(Dno) = txtdep.TextAdodc1.Recordset.Fields(Ecul) = tx

37、tcul.TextAdodc1.Recordset.Fields(Ejob) = txtjob.TextAdodc1.Recordset.Update r = MsgBox(修改成功!, , 提示)End SubPrivate Sub cmdexit_Click()Unload MeEnd SubPrivate Sub Form_Load()Dim i As IntegerAdodc1.RecordSource = select * from 员工信息Set DataGrid1.DataSource = Adodc1cmbfield.ClearFor i = 0 To Adodc1.Recor

38、dset.Fields.Count - 1cmbfield.AddItem Adodc1.Recordset.Fields(i).NameNext icmbfield.Text = cmbfield.List(0)End Sub6.2.3 部门信息管理 选择“部门信息管理”“部门信息设置”菜单,在4个文本框中分别输入“0999”,“会计室”,“0013”,“10”,点击“添加”后可以看到其已经添加进来了,如图6.7所示。图6.7 部门信息设置 同样也可以把它删了,在“字段值”选“0999”,再点击“删除”即可。还可也对数据进行修改,清空,退出等操作,这里就不一一演示了。部门信息管理模块源代码:Private Sub cmbfield_Click()cmbname.ClearAdodc1.RecordSource = select * from 部门信息Adodc1.RefreshDo While Not Adodc1.Recordset.EOFcmbname.AddItem Ado

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1