工资管理系统_数据库课程设计报告 2

时间:2024.4.13

 

目录

一、开发背景...................................................... 2

二、功能描述...................................................... 3

三、数据流分析.................................................... 4

3.1数据流图..................................................... 4

3.2数据字典..................................................... 5

四、概念模型设计.................................................. 7

五、逻辑结构设计和优化........................................... 10

六、应用程序设计................................................. 11

七、心得体会..................................................... 13

参考文献.......................................................... 14

附录.............................................................. 14


一、开发背景

随着经济的发展,企业正向着大型化、规模化发展,而对于大中型企业,员工、职称等跟工资管理有关的信息随之急剧增加。在这种情况下单靠人工来处理员工的工资不但显得力不从心,而且极容易出错。如何设计一个小型企业工资的数据库管理系统,由计算机代替人工执行一系列诸如增加新员工,删除旧员工,工资查询,统计等操作。这样就使办公人员可以轻松快捷地完成工资管理的任务。

对于企、事业单位的工资发放来说,不需要太大型的数据库系统。只需要一个操作方便,功能实用,能同时满足财务部门、单位其他相关部门及代发单位三方对数据的管理及需求的系统。企业的目标就是在于利用编程软件开发一个功能实用,用户操作方便,简单明了的工资管理程序。

实现工资的集中管理。可供财务人员对本单位的人员以及工资进行增加、删除、修改、查询,对工资发放中的应发工资合计等项目由系统自动进行计算;同时系统还可对员工及工资管理情况进行多角度查询。

基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。企业工资管理系统是典型的信息管理系统(MIS),前台程序开发工具采用微软的VB6,后台数据库采用SQL Server2000数据库。VB6是一种面向对象的开发工具,具有组件丰富、语言简单、功能强大的优点。SQL Server2000数据库具有与VB6无缝连接、操作简单、易于使用的优点

二、功能描述

工资管理系统系是为了更好的实现工资各种信息的管理以及各种信息的安全性管理。本系统主要对查看员工的各种工资信息需求所设计的,可以很好的管理数据。 本系统的主要功能由以下几个部分组成:

经过调研及分析,工资管理信息系统主要完成以下功能:

(1)  管理员身份的确认:只有用户名和用户密码都相符的管理员方可进入本系统,为了防止不合法用户对数据的察看和修改,管理员可以设定用户名、密码和其权限,还可以对纪录进行增加、删除、修改等操作。当管理员要进入系统时必须先输入用户名和密码,按“确认”按钮后,系统辨别管理员身份,对合法管理员赋予权限。

(2)  员工基本信息模块:员工的基本信息。

(3) 工资信息模块:员工每个月度的基本工资、岗位工资、水电费、津贴工资、扣除薪酬、实发金额。

(4) 部门信息模块:公司各部门编号、名称、负责人、人数。

(5) 考勤模块:记录员工迟到、缺席次数。

(6) 津贴模块:记录员工加班情况派发津贴。

(7) 员工信息管理模块:管理员对所需要的资料的查询即对员工基本信息的增加、删除、修改、查询操作。

(8) 员工工资管理模块:管理员对所需要的资料的查询即对员工工资信息的增加、删除、修改、查询操作。

三、数据流分析

3.1数据流图

图3.1 工资管理系统简易数据流图

3.2数据字典

3.2.1  数据结构描述

名称:员工(Employee)

含义说明:员工信息

组成结构:员工编号+姓名+性别+出生年月+所属部门+文化程度+职称

名称:工资(Salary)

含义说明:工资信息

组成结构:员工编号+基本工资+岗位工资+水电费+津贴工资+扣除工资+实发工资

名称:部门(branch)

含义说明:部门信息

组成结构:部门编号+部门名称+部门负责人+部门人数

3.2.2  数据流的描述

数据流名称:员工信息添加        简述:新员工信息录入

数据流来源:公司管理者

数据流去向:员工信息

数据流组成:员工编号+姓名+性别+出生年月+所属部门+文化程度+职称

数据流名称:员工信息修改    简述:员工信息错误或者员工调动

数据流来源:员工信息

数据流去向:员工信息

数据流组成:员工编号+姓名+性别+出生年月+所属部门+文化程度+职称

数据流名称:员工信息删除   简述:员工离职

数据流来源:员工信息

数据流去向:员工信息

数据流组成:员工编号+姓名+性别+出生年月+所属部门+文化程度+职称

数据流名称:工资添加        简述:新员工工资添加

数据流来源:公司管理者

数据流去向:工资信息

数据流组成:工号+基本工资+岗位工资+水电费+津贴工资+扣除薪酬+实发金额

数据流名称:工资修改        简述:公司对工资修改

数据流来源:公司管理者

数据流去向:工资信息

数据流组成:工号+基本工资+岗位工资+水电费+津贴工资+扣除薪酬+实发金额

3.2.3  主要数据存储的定义

存储名称:员工记录

       输入:员工基本信息

       输出:员工所有信息

       数据结构:员工编号+姓名+性别+出生年月+所属部门+文化程度+职称

存储名称:部门记录

       输入:部门基本信息

       输出:部门所有信息

       数据结构:部门编号+部门名称+部门负责人+部门人数

存储名称:工资记录

       输入:员工工资信息

       输出:员工所有工资信息

       数据结构:员工编号+基本工资+岗位工资+水电费+津贴工资+扣除工资+实发工资

存储名称:考勤记录

       输入:员工考勤信息

       输出:员工所有考勤信息

       数据结构:员工编号+姓名+性别+迟到次数+缺席次数

存储名称:津贴记录

       输入:员工津贴信息

       输出:员工所有津贴信息

       数据结构:员工编号+姓名+性别+加班时间+加班天数+津贴情况

四、概念模型设计

根据系统数据流图和数据字典,得出系统的概念模型(E-R)如图所示。

图4.1用户信息E-R图

图4.2员工信息E-R图

图4.2部门信息E-R图

图4.3工资信息E-R图

图4.4考勤信息E-R图

图4.5津贴信息E-R图

图4.6工资管理系统总E-R图

五、逻辑结构设计和优化

5.1基本表

关系模式:员工信息(员工编号、姓名、性别、出生年月、所属部门、文化程度、职称)

               部门信息(部门编号、部门名称、部门负责人、部门人数)

               基本工资(工资级别、工资金额)

               岗位工资(工资级别、工资金额)

               工资信息(员工编号、基本工资、岗位工资、水电费、津贴工资、扣除工资、实发金额)

               考勤信息(员工编号、姓名、性别、迟到次数、缺勤次数)

               津贴信息(员工编号、姓名、性别、加班时间、加班天数、加班类型、津贴情况)

               用户信息(用户名、密码、权限)

表5.1员工信息表

表5.2部门信息表

表5.3基本工资表

表5.4岗位工资表

表5.5工资信息表

表5.6考勤信息表

表5.7津贴信息表

表5.8用户信息表

六、应用程序设计

6.1用户了登陆模块

登录模块的详细设计主要是用户登录的一个界面,判断登录的用户是管理员还是普通用户,进入后将面对的是主界面,从而进行相关的操作。

登录的界面主要由用户名和密码的信息,还有一些标题设置,确定和取消的按钮组成。通过标题可以知道此系统的大概内容,由此,登录界面的设计完成。

窗体如下:

图6.1用户登录界面

6.2 主窗体模块

在这个项目中,选择使用多文档界面。使用这个窗体的好处是可以使程序更加有条理。对于一个多任务的应用程序,使用多文档窗体还可以减少占用的系统资源。

主窗体设计的界面是用菜单编辑器做的,主要由系统、工资信息设置、工资信息管理和关于这四个大模块组成。主窗体是进行相关操作的主界面。在这几个里,管理员有所有的权利进行各种操作。窗体如下:

图6.2主窗体界面

七、心得体会

通过这两周的数据库设计,使我们从中受到很大的影响,不仅将大学所学的知识进行了实际应用,还学到了很多书本上学不到的知识。开阔了视野,增长了知识,积累了一些经验和教训。充分锻炼了自己的动手和应用能力,真正做到了理论联系实际。

开发本系统的过程中,首先要对企业工资管理进行系统调研,熟悉企业财务、人事、工资发放管理的流程、步骤;选用开发工具要选用自己最熟悉、应用较多的开发工具,本系统开发选用MS Visual Basic 6.0,其具有语言简单、功能强大、组件众多的优点。程序模块的编制中,重点把握系统内部完整性、功能性、实用性、便捷性,使其能够协调统一、运行无误。运行结果证明,工资管理系统提高了工作效率,节省了人力和物力。

本次程序我主要负责数据库的开发背景和用户登录、主窗体的设计。由于是第一次弄数据库程序设计,对于数据库的流程还不是很清楚,所以很大一部分时间是在网上找资料,来完善我们这次数据库的需求分析。一开始对于我们这个数据库系统的功能模块、数据流图和数据字典都不是很清楚该怎么样来书写和绘图,不过经过进一步的学习终于懂得这些该怎么样写才是正确的,也增强了我自学的积极性。具体我们这个程序应该完成些什么功能还是通过小组共同商讨才确定下来,因为一开始对这次数据库程序设计还很陌生,所以都是在摸索中前进,当然也会遇到很多问题。比如一个功能的实现遇到了困难就会很焦急的面对这个问题。

最后,我们要感谢老师的关心、指导和教诲。再次向所有关心、帮助、理解、支持我们做好数据库课程设计的老师和同学们致以深深的谢意,感谢你们的帮助和关爱!

参考文献

[1] 龚沛曾,陆慰民,杨志强﹒Visual Basic 6.0 程序设计简明教程(6.0版)[M]﹒高等教育出版社﹒2001

[2] 林永,张乐强﹒Visual Basic 用户编程手册(第二版)[M]﹒人民邮电出版社﹒2002

[3] 萨师煊,王珊﹒数据库系统概论(第三版)[M]﹒高等教育出版社﹒2000

[4] 王珊,陈红﹒数据库系统原理教程[M]﹒清华大学出版社﹒1998

[5] 钱雪忠,李京﹒数据库原理及应用(第三版)[M]﹒北京邮电大学出版社﹒2010

[6] 温贤发﹒VB数据库程序设计高手[M]﹒科学出版社﹒2001

附录

登录模块源代码如下:

Private Sub cmd_cancel_Click()

  txt_key.Text = ""

  cmo_user.Text = "请选择"

  Unload Me

End Sub

Private Sub cmd_ok_Click()

  Dim try_times As String

  Dim sql As String

  Dim rst As ADODB.Recordset

  try_times = 0

If (Trim(txt_key.Text) = "") Then

     MsgBox "请输入密码", vbOKOnly + vbExclamation, "提示"

Else

    sql = "select * from 用户表 where 用户名='" & Trim(cmo_user.Text) & "'"

    Set rst = ExecuteSQL(sql, "")

     If Trim(rst.Fields(1)) = Trim(txt_key.Text) Then

        If Trim(rst.Fields(2)) <> "管理员" Then

           frm_main.xitong.Enabled = False '在这里设计非管理员用户的权限,这里我假设让非管理员用户不能用菜单中的‘系统’

           frm_main.shezhi.Enabled = False

           frm_main.xinxiweihu.Enabled = False

        End If

       rst.Close

       UserName = Trim(cmo_user.Text)

       frm_main.Show

       Unload Me

    Else

       MsgBox "密码不正确,请重新输入", vbOKOnly + vbExclamation, "警告"

       txt_key.SetFocus

       txt_key.Text = ""

       try_times = try_times + 1

       Exit Sub '在这里若密码错了应该跳出该过程,否则下面的语句还会执行,这不是你想要的

    End If

 'try_times = try_times + 1 '个人认为密码输入错了才加一,你这样的话,用户名错了也会加一,当然你这里用户名不会错是吧,改得多余了

  If try_times = 3 Then

  Unload Me

  End If

End If

End Sub

Private Sub Form_Load()

      Dim i As Integer

      Dim sql As String

      Dim rst As ADODB.Recordset

      sql = "select 用户名 from 用户表 "

      Set rst = ExecuteSQL(sql, "")

      For i = 1 To rst.RecordCount

      cmo_user.AddItem (rst.Fields(0))

      rst.MoveNext

      Next i

End Sub

主窗体:Private Sub bumenxinxi_Click()

Dim sql As String

Dim rst As New ADODB.Recordset

sql = "select * from 用户表 "

Set rst = ExecuteSQL(sql, "")

power = rst.Fields(2)

If Trim(power) <> "管理员" Then

MsgBox "您无权进行该操作!", vbOKOnly + vbExclamation, "警告"

Else

If Trim(power) = "管理员" Then

frm_bumenxinxi.Show

Unload Me

End If

End If

End Sub

Private Sub gangweigongzi_Click()

Dim sql As String

Dim rst As New ADODB.Recordset

sql = "select * from 用户表 "

Set rst = ExecuteSQL(sql, "")

power = rst.Fields(2)

If Trim(power) <> "管理员" Then

MsgBox "您无权进行该操作!", vbOKOnly + vbExclamation, "警告"

Else

If Trim(power) = "管理员" Then

frm_gangweigongzi.Show

Unload Me

End If

End If

End Sub

Private Sub jiben_Click()

Dim sql As String

Dim rst As New ADODB.Recordset

sql = "select * from 用户表 "

Set rst = ExecuteSQL(sql, "")

power = rst.Fields(2)

If Trim(power) <> "管理员" Then

MsgBox "您无权进行该操作!", vbOKOnly + vbExclamation, "警告"

Else

If Trim(power) = "管理员" Then

frm_jiben.Show

Unload Me

End If

End If

End Sub

Private Sub yonghushanchu_Click()

Dim sql As String

Dim rst As New ADODB.Recordset

sql = "select * from 用户表 "

Set rst = ExecuteSQL(sql, "")

power = rst.Fields(2)

If Trim(power) <> "管理员" Then

MsgBox "您无权进行该操作!", vbOKOnly + vbExclamation, "警告"

Else

If Trim(power) = "管理员" Then

frm_tianjiayushanchu.Show

Unload Me

End If

End If

End Sub

Private Sub yonghutianjia_Click()

Dim sql As String

Dim rst As New ADODB.Recordset

sql = "select * from 用户表 "

Set rst = ExecuteSQL(sql, "")

power = rst.Fields(2)

If Trim(power) <> "管理员" Then

MsgBox "您无权进行该操作!", vbOKOnly + vbExclamation, "警告"

Else

If Trim(power) = "管理员" Then

frm_tianjiayushanchu.Show

Unload Me

End If

End If

End Sub

Private Sub Form_Load()

      Dim i As Integer

      Dim sql As String

      Dim rst As ADODB.Recordset

      sql = "select 权限 from 用户表 "

      Set rst = ExecuteSQL(sql, "")

      For i = 1 To rst.RecordCount

      rst.MoveNext

      Next i

主窗体模块源代码如下:

Private Sub bumenxinxi_Click()

Dim sql As String

Dim rst As New ADODB.Recordset

sql = "select * from 用户表 "

Set rst = ExecuteSQL(sql, "")

power = rst.Fields(2)

If Trim(power) <> "管理员" Then

MsgBox "您无权进行该操作!", vbOKOnly + vbExclamation, "警告"

Else

If Trim(power) = "管理员" Then

frm_bumenxinxi.Show

Unload Me

End If

End If

End Sub

Private Sub gangweigongzi_Click()

Dim sql As String

Dim rst As New ADODB.Recordset

sql = "select * from 用户表 "

Set rst = ExecuteSQL(sql, "")

power = rst.Fields(2)

If Trim(power) <> "管理员" Then

MsgBox "您无权进行该操作!", vbOKOnly + vbExclamation, "警告"

Else

If Trim(power) = "管理员" Then

frm_gangweigongzi.Show

Unload Me

End If

End If

End Sub

Private Sub jiben_Click()

Dim sql As String

Dim rst As New ADODB.Recordset

sql = "select * from 用户表 "

Set rst = ExecuteSQL(sql, "")

power = rst.Fields(2)

If Trim(power) <> "管理员" Then

MsgBox "您无权进行该操作!", vbOKOnly + vbExclamation, "警告"

Else

If Trim(power) = "管理员" Then

frm_jiben.Show

Unload Me

End If

End If

End Sub

Private Sub yonghushanchu_Click()

Dim sql As String

Dim rst As New ADODB.Recordset

sql = "select * from 用户表 "

Set rst = ExecuteSQL(sql, "")

power = rst.Fields(2)

If Trim(power) <> "管理员" Then

MsgBox "您无权进行该操作!", vbOKOnly + vbExclamation, "警告"

Else

If Trim(power) = "管理员" Then

frm_tianjiayushanchu.Show

Unload Me

End If

End If

End Sub

Private Sub yonghutianjia_Click()

Dim sql As String

Dim rst As New ADODB.Recordset

sql = "select * from 用户表 "

Set rst = ExecuteSQL(sql, "")

power = rst.Fields(2)

If Trim(power) <> "管理员" Then

MsgBox "您无权进行该操作!", vbOKOnly + vbExclamation, "警告"

Else

If Trim(power) = "管理员" Then

frm_tianjiayushanchu.Show

Unload Me

End If

End If

End Sub

Private Sub Form_Load()

      Dim i As Integer

      Dim sql As String

      Dim rst As ADODB.Recordset

      sql = "select 权限 from 用户表 "

      Set rst = ExecuteSQL(sql, "")

      For i = 1 To rst.RecordCount

      rst.MoveNext

      Next i

End Sub

更多相关推荐:
数据库课程设计报告之图书管理系统

数据库课程设计报告院系班级课题教师学生目录一需求分析3二系统结构设计3三数据库设计5四三层架构及设计10BookManageSystemModelBookManageSystemCommonBookManage...

数据库课程设计报告图书管理系统

数据库系统实验报告课程数据库系统院系计算机学院班级成绩学号姓名学号姓名指导教师李波日期年月日目录1数据库设计311需求分析312概念模式设计313关系模式设计42数据库编程621表的创建622数据的修改823查...

图书管理系统数据库课程设计报告书

电子商务数据库技术课程设计报告题目图书管理系统院系专业班级学号学生姓名指导教师说明1内容要求整个课程设计分为五部分分别为需求分析数据库系统设计数据库详细设计数据库实现和应用程序的设计与实现每部分按要求完成设计任...

数据库课程设计报告 图书管理系统

目录1相关技术介绍12需求分析121数据字典1211数据库内含下列表1212数据库表详细设计2213安全性和完整性要求33概念结构设计4ER图44逻辑结构设计4系统总体设计45数据库物理设计66数据库实施87参...

图书管理系统数据库课程设计报告书

宁县和盛公曹小学图书管理系统一背景资料1图书馆有各种图书若干册2每种图书都有书名图书编号作者译者出版社定价和内容简介3借书证记录有借阅者的姓名工作单位住址联系电话等4凭借书证借书每次最多能借5本书借书期限最长为...

图书管理系统-数据库课程设计实验报告

计算机科学与工程学院题目基于数据库课程设计报告书CS模式的图书管理系统的设计所学专业计算机软件与理论班级作者指导老师完成日期20xx年08月08日内容提要本文介绍了一个基于ClientServer模式的高校图书...

图书馆管理系统数据库课程设计报告

数据库原理与应用课程设计报告题目学生成绩管理系统专业班级电信08104班设计学生叶立辉喻娇学号04180402指导老师刘长青完成时间十八十九周湖南文理学院物理与电子科学学院目录一引言3二学生成绩管理系统概述3三...

数据库课程设计_图书管理系统

题目基于大学计算机科学与工程学院数据库课程设计报告书CS模式的图书管理系统的设计所学专业计算机软件与理论班级作者指导老师完成日期20xx年08月08日内容提要本文介绍了一个基于ClientServer模式的高校...

数据库课程设计:小型图书管理系统

Java应用课程设计项目名称:图书管理系统课程名称:Java应用项目作者:__________完成日期:20##年7月15日前言本系统是小型图书管理系统,专为个人设计。本系统启动后需要登陆,然后进入主界在这个界…

图书管理系统(含源代码)c语言_数据结构课程设计报告

数据结构大作业121279044伍杨数据结构大作业图书管理系统工程管理121279044伍杨目录一二三题目要求2总体设计2编码实现31定义图书结构体32登记操作43查看操作84删除操作115Main函数20四五...

数据结构课程设计-图书馆管理系统

数据结构课程设计报告课题图书管管理系统专业班级学号姓名指导教师目录摘要11课程设计的目的和意义错误未定义书签11设计目的312设计意义错误未定义书签2需求分析错误未定义书签21所需系统422所要达到的程度43总...

数据结构课程设计图书管理系统报告

河南科技大学课程设计说明书课程名称题目院系班级学生姓名指导教师日期数据结构课程设计个人书籍管理系统的设计与实现数据结构课程设计任务书指导教师时间个人书籍管理系统的设计与实现一简介1设计目的进一步理解查找和排序在...

数据库课程设计报告 图书管理系统(18篇)