1、数据库 课程设计报告 题目:工资管理系统设计与实现 班级: 教师: 学号: 姓名: 安徽新华学院 年 月 课程设计任务书 姓 名 学 号 班 级 课程名称 软件工程导论 课程性质 专业基础课 设计时间 2017年 5月 20 日-— 2017年 06 月 12 日 设计名称 工资管理系统设计与实现 项 目 组 成 员 姓名 学号 在本项目中的分工 代码实现 文档编写 设计要求 使用传统软件工程方法对工资管理系统进行分析和设计,本程序是建立在Windows操作系统上,以
2、VB为开发软件的应用程序,主要功能包括:人事信息的录入,修改,删除和查询操作:工资的核算查询;用户信息的管理等. 计划与进度 9日20日至9月30日——学习项目开发的背景目标 10日1日至10月7日—-可行性研究 10日8日至10月13日——系统分析(包括需求分析,数 据流图,数据字典等) 10日14日至10月24日--系统设计(包括功能设计, 数据库设计及数据库的实现) 10月25日至11月2日——系统实现 11月3日至11月12日——软件测试及资料整理 指导教师意见 目录 内容概要 第一章 引 言 1.1 项目开发背景 1.2 项目开发的目标及意义
3、1.3 系统的开发方法 第二章 可行性研究 2。1 系统流程图 2.2 完成新系统的可行性 第三章 系统分析 3.1 系统的设计思想 3.2 需求分析 3。3 系统的运行环境和开发平台 3.4 数据流图 3。5 数据字典 第四章 系统设计 4。1 功能模块设计 4。2 系统总体功能模块 4。3 数据库设计 4.4 数据库结构的实现 第五章 工资管理系统功能实现 5.1 开发环境简介 5。2 系统界面的设计 5。3 员工基本信息管理功能设计 5
4、4 工资管理功能设计 第六章 软件测试 第七章 用户操作手册 第八章 总结 8。1 参考文献 8。2 设计体会与建议 内容摘要 工资管理系统是使用Visual Basic 6。0开发的一个数据库管理系统.在此主要讲述了使用SQL Server 2000和Visual Basic 6.0完成工资管理系统基本功能的过程。开发这个系统的步骤主要有系统分析、系统设计、系统实现和系统维护。在系统的设计中,详细的展现了系统的各个模块、所需的数据库表及表字段菜单的设计等。在系统的实现中,给出了实现表单中相应的功能控件的事件、代码及菜单实现的方法。本系统具
5、有数据输入,数据存储,信息计算修改删除等功能,本系统也提供了友好的人际对话界面。 第一章 引 言 1.1 项目开发背景 众所周知当今时代的世界经济正从工业经济向知识经济转变,而知识经济的两个重要特征就是信息化合全球化。要实现信息化和全球化就必须依靠完善的网络和数据库机制。处于现在这样一个飞速发展的信息时代,在各行各业中都离不开信息处理,这正是计算机被广泛应用于管理信息系统的环境,使用计算机进行信息控制不仅提高了工作效率,而且大大的提高了其安全性。尤其是对于复杂的信息管理,计算机能够充分发挥其优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发时系统管理的前提。 因此
6、对于企业或是事业单位来说开发一套工资管理系统是很必要的。虽然企业事业单位的管理已经进入信息化管理,但对于不同的单位所需要的功能是不一样的,这样通用的软件使用效率不高,还会造成人力,财力的浪费,这样就不能满足所有单位和部门的需求。所以必须做好客户的需求分析工作,设计符合用户要求的系统. 1.2 系统开发的目标及意义 企业和事业单位工资管理系统唯有采用自动化,高效率,人性化的管理,才能满足服务员工的需求。工资管理系统的主要目标在于加强服务而不在于精简人力。所以系统要能提供更自动化的服务,期望以最快的速度将人事工资信息做最适当的运用。主要目标有:以自动化、系统化、高效管理代替分散重复操作;提
7、高单位效益和现代化信息管理水平;提高员工的自律性,促进员工人才的成长和流动;减轻人事工资管理员的负担,节省人力物力的开支等. 引进以计算机信息管理技术和网络通讯技术,是加快人事工资管理信息服务进程的重要手段.新的管理系统的使用会给人事管理体系发生变化。这促进了工资数据管理方式和理念的转变,提高了企业单位的现代化和信息化水平,为企业带来更多的效益。 1.3 系统的开发方法 本系统采用Visual Basic 6。0可视化开发工具开发,采用ADO对象数据技术来提高系统的安全性和稳定性.工资管理系统可为企业和事业单位使用,属于C/S结构的数据库系统,固定后台数据库采用SQL Server 2
8、000. 第二章 可行性研究 2.1 系统流程图 员工录入 人事信息管理 部门录入 员工出勤 工资核算 工资管理 基本工资 出勤 信息 基本 信息 工资报表 图2。1 系统流程图 2.2 完成新系统的可行性 工资管理系统吸取通用系统的优点的基础上,根据具体企业单位所要求的功能进行设计。添加业务管理模块,在业务管理模块中添加管理员工的业务档案,当用户的业务工种等发生变化时只需修改业务档案表记录即可。通用型工资管理的技术比较成熟,所以可以学习技术并添加一些企业需要的功能,这样就能完成此系统以满足客户的需求. 第三章 系统分析
9、3.1 系统的设计思想 工资管理系统是企业和事业单位常见的计算机信息管理系统。它的主要任务是对各种工资信息进行日常的管理,如工资信息的输入、查询、修改、增加、删除,迅速准确地完成各种工资信息的统计计算和汇总,快速打印出报表。在建立与实现工资管理系统时,应进行功能划分,能够由数据库管理系统完成的功能应尽可能由数据库管理系统完成,这样才能够充分发挥数据库管理系统高效、完全、可靠、便捷的性能,减少编程人员的工作量。 3。2 需求分析 工资管理系统是针对企事业单位的大量业务处理工作用计算机进行全面现代化管理主要包括信息输入功能,信息修改删除功能,信息的查询以及工资的计算管理等。 1。信息输入功
10、能 1)输入职工的基本信息。包括:Eno(员工编号)、Ename(员工姓名)、Epart(所属部门)、Eduty(职务)、Esex(性别)、Eedu(学历)、Eaddr(住址)、Ebir(出生年月)、Etel(电话号码)等。 2)输入工资的信息。包括:(基本工资)、(岗位工资)、(住房补贴)、(津贴)、(工会会费)、(水电费)、(住房公积金)、(养老保险)、(奖惩)。 3)输入员工的部门信息。包括:Bno(部门编号)、Bname(部门名称)、Bzg(部门总管)、Bmount(部门人数)等。 2.数据修改和删除功能 1)修改和删除员工的基本信息。当单位人员的信息发生变化,如职称的改变,
11、工作部门变动,或调离本单位等,系统应能修改员工的信息或将其从员工信息表中删除。 2)修改和删除员工的工资信息.员工升职加薪、工资普调是企业中常见的事情,这就需要系统能方便对员工工资进行个别及批量的修改;如员工调离本单位,就应当从员工信息表中删除这个员工信息,将其工资信息表中相应的数据删除. 3)修改和删除部门信息.当撤消一个部门时,文学艺术在能从部门信息表中将其删除。而当一个部门的名称发生改变时,系统中所有该项部门的名称应一致的改变。 3.查询和统计功能 1)能够查询指定员工的基本信息。 2)能够查询指定某个部门或全部部门的基本信息. 3)查询某个员工的工资信息。 4)统计、汇总
12、指定年份企业各部门或某个部门每个月或全年工资总额,汇总各部门的人数或本单位的总人数。 5)工资表月工资记录的生成功能。生成当月所有员工或某个部门的工资记录,同时能进行员工工资的计算,即计算应发金额、应扣金额及实发金额. 3.3 系统的运行环境和开发平台 本系统使用Visual Basic进行软件开发,SQL Server 2000进行数据库开发。VB是微软公司开发的最为流行的软件之一,也是社会上使用较多的开发工具之一.VB是一个完全可视化,面向对象的开发工具,因此此系统具有兼容性较好,安全性强,通用性好等优点. 3。4 数据流图 在对企业和事业单位工资管理过程进行分析后,根据系统功能
13、的描述,得到工资管理系统的数据流图如下: 1. 顶层数据流图与0层数据流图 图3.1 顶层数据流图 图3.2 0层数据流图 2。人事管理模块、工资管理模块查询模块分层数据流图 部门表 1.1查询部门及员工信息 1.2工资录入 员工编号 员工与考勤数据 工资数据 考勤表 工资表 图3。3 员工信息查询与录入 考勤表 2.2计算工资 2.1查询考勤内容 员工名称考勤数据工资信息 工资表 图3.4 工资核算 备份员
14、工名 3.2数 据备份 3.1查询工资数据 备份工资表备份数据 工资表工资备份表 图3。5 工资备份 工资表考勤表 4.2查 询处理 4.1要求加工 员工信息查询要求查询规则查询结果 员工表 图3。6 员工信息查询 3.5 数据字典 数据字典是系统中各类数据描述的集合 简要说明工资管理系统的数据字典. 1).名字:职工编号,部门编号 别名:职工号,部门号 描述:职工号唯一地标识数据库中职工信息相关表中的一个特定员工的关键域;部门号唯一地标识部门信息表中的一个特定部门的关键域 位置:员工信息表 考
15、勤表 工资表 2)。名字:职工信息报表 别名:职工信息 描述:用户指定条件下的员工基本信息情况查询结果的信息表 定义:职工信息表=职工号+职工姓名+性别+出生年月+职务+学历+电话号码+住址+所属部门+身份证号 位置:输出到打印机 3).名字:考勤信息报表 别名:考勤信息 描述:用户指定条件下的员工考勤信息查询结果的信息表 定义:员工考勤信息查询报表=考勤编号+员工号+员工姓名+加班天数+出差天数+旷工天数+迟到次数+考勤日期 位置:输出到打印机 4).名字:工资报表 别名:工资信息
16、描述:记录工资的组成部分以及员工的工资情况的信息 定义:工资信息报表=职务+基本工资+每日工资+加班系数+出差天数+旷工标准+迟到标准+奖金 位置:输出到打印机 第四章 系统设计 4。1 系统功能设计 软件所实现的功能强弱是衡量一个软件最根本的标准.经过系统的可行性研究,需求分析后,得出中小型企业的工资信息管理系统的功能分层图如下: 工资管理系统 2.1添加人事信息 2.2修改人事信息 2.4查询人事信息 3.1设置工资 3.3查询职务基本工资 3.2计算工资 2.0人事管理功能 3.0工资管理功能 1.0系统登录 4.0系统管理功能 4
17、1管理用户 2.3删除人事信息 4.1.1添加用户 4.1.2修改用户密码 图4.1 工资管理系统层次图 4.2 系统总体功能模块 此工资管理系统分为五个模块,具体如下: 1。人事基本信息管理模块:员工信息录入修改删除及查询。 2。部门管理模块。 3.考勤管理模块. 4。工资计算及管理模块. 4。3 数据库设计 4.3。1概念结构设计 1. 根据如上的信息可得到实体之间的关系E—R图如下: 图4。2 E-R图 2.概念结构模型 图4。3 概念模型CDM 4。3。2 逻辑结构设计 将E—R图转换成如下关系模式: 员工表
18、员工号,员工名,职务,部门号,性别,出生年月,学历,电话,住址,身份证号) 部门表(部门号,部门名,部门总管,部门人数,) 考勤表(考勤编号,员工号,迟到次数,旷工次数,出差天数,加班次数,考勤日期) 工资表(职务,员工号,基本工资,奖金,出差标准,加班标准,迟到系数,旷工次数) 依据上面的关系模式,设计数据表如下: 1. 用户表 :用于进入系统的权限设置等。 表1 用户信息表Users 列名 数据类型 长度 属性 描述 userID char 5 主键 用户编号 username varchar 10
19、不允许空 用户名 password varchar 15 不允许空 密码 mark varchar 20 备注 2.职工表:职工的基本信息. 表2 职工信息表Employee 列名 数据类型 长度 属性 描述 Eno char 6 主键 职工编号 Ename varchar 15 不允许为空 职工姓名 Esex varchar 10 性别 Ebirth Datetime 出生年月 Eduty varchar 20 外键 职务 Eedu varchar 20 学历 Etel varcha
20、r 15 电话号码 Eaddr varchar 20 住址 Bno varchar 20 外键 部门编号 IDidentify varchar 20 身份证号 3。部门表:部门基本信息。 表3 部门信息表Department 列名 数据类型 长度 属性 描述 Bno char 5 主键 部门号 Bname varchar 10 不允许空 部门名 Bzg varchar 10 部门总管 Bmount int 4 部门人数 4。工资表:工资的基本组成信息
21、 表4 工资设置表WageConfig 列名 数据类型 长度 属性 描述 Duty Varchar 20 主键 职务 BaseWage Money 8 基本工资 DayWage Money 8 每日工资 QvertinmeJob Float 8 加班系数 EvectionStandard Money 出差标准 AbsenStandard Money 8 旷工标准 LateStandard Money 8 迟到标准 Bonus money 8 奖金 5。考勤表:记录员工的到职情况。
22、 表5 考勤统计表CheckStat 列名 数据类型 长度 属性 描述 CheckID Int 主键 考勤编号 Eno Char 6 外键 员工号 Ename char 15 不允许空 员工姓名 OvertimeDay Varchar 加班天数 EvectionDay Smallint 出差天数 AbsentDay Smallint 旷工天数 LateDay Smallint 迟到次数 CheckDate smalldatetime 考勤日期
23、 6。工资表:记录保存计算出来的工资. 表6 工资表Wage 列名 数据类型 长度 属性 描述 WageID int 主键 编号 EmployeeID char 6 不允许空 员工编号 EmployeeName varchar 15 不允许空 员工姓名 WageName datetime 不允许空 工作日期 BaseWage money 不允许空 基本工资 OvertimeWage money 不允许空 加班工资 EvectionWage money 不允许空
24、 出差补助 AbsentWage money 不允许空 旷工减薪 LateWage money 不允许空 迟到减薪 EtcWage money 不允许空 其他补助 BonusWage money 不允许空 奖金 TotalWage money 不允许空 总工资 4。3.3 物理结构模型 图4.4 物理结构模型PDM 4.4 数据库结构的实现 1、数据库的创建 T—SQL语句: Create database 工资管理 on ( name=’Wages_data’, filename=’E:\MSSQL\Data
25、\Wages_data.mdf’, size=10mb, maxsize=100mb, filegrowth=5% ) log on ( name='Wages_log’, filename='E:\MSSQL\Data\Wages_log。ldf', size=5mb, maxsize=30mb, filegrowth=2mb ) 2、数据表的创建(可同时在创建时定义相关的约束) T—SQL语句: 1) Users表: C
26、reate table Users( UID int not null default'’Primary Key, Uname char(8) not null default’’, UPassword char( 16) default'’, URight char(20) default'', ) 2)Employee表: create table Employee( EmployeeID char(8) not null default’’Primary Key, EmployeeName char(8) not null default’’, Se
27、x char(2) default'’, Birthday smalldatetime default’', Education char(8) default’’, Duty char(20) not null References WageConfig(Duty) ON UPDATE CASCADE ON DELETE CASCADE, DepartmentID char(20) not null, IdentityID char(20) not null, Telephone char(15) not n
28、ull, Address char(40) not null, Remark varchar(100) default’’ ) 3)WageConfig表: Create table WageConfig( Duty char(20) not null default’’Primary Key, BaseWage money not null, DayWage money not null, OvertimeJob float(8) not null,
29、 EvectionStandard money not null, AbsentStandard money not null, LateStandard money not null, EtcStandard money not null, Bonus money not null ) 4)CheckStat表: create table CheckStat( CheckID int IDENTITY(1,1) Primary Key, EmployeeID char(8) not null Reference
30、s Employee(EmployeeID) ON UPDATE CASCADE ON DELETE CASCADE, EmployeeName varchar(15) default’', Overtimeday smallint default’’, Evectionday smallint default'’, Absentday smallint default’', Lateday smallint default'’, CheckDate smalldatetime default’' ) 5)Wage表: c
31、reate table Wage( WageID int IDENTITY(1,1) Primary Key, EmployeeID char(8) not null References Employee(EmployeeID) ON UPDATE CASCADE ON DELETE CASCADE, EmployeeName varchar(15) default’’, WageDate smalldatetime default’’, BaseWage money default 0, OvertimeWa
32、ge money default 0, EvectionWage money default 0, AbsentWage money default 0, LateWage money default 0, EtcWage money default 0, BonusWage money default 0, TotalWage money default 0, ) 6)DepartmentID表: Create table DepartmentID( DepartmentID int not null
33、default’’Primary Key, Departmentname char(16) not null default’’, Departmentmanage char( 8) default’’, Departmentnumber int default’’, ) 3. 向表中插入基本信息 1)插入用户基本信息 insert into Users select'01',’1',’1’,’系统管理员’ union select ’02’,'yy',’1234',’人事管理’ union select '03’,’ll',’1234’,’工资管理’ union se
34、lect '04','lxj',’1234',’人事管理' union select '05’,’ws’,’1234’,'工资管理' union select ’06',’mq’,'1234','系统管理员' 2)插入职工基本信息 insert into Employee(EmployeeID,EmployeeName,Sex,Birthday,Education,Duty,DepartmentID,IdentityID,Telephone,Address,Remark) select’0101’,’时妍妍’,'女’,’1988—08-15’,’’,'总管’,’策划部',’',’
35、15862110365’,’淮安','' union select '0401’,’梁丽',’女’,'1989-01—08’,'',’总管’,'财务部’,'’,’15862110353’,'淮安',’' union select ’0301’,'潘娟’,’女','1988—01—25',’’,'工人’,’生产部’,’’,'15862110371’,'徐州','' union select ’0402',’许洁',’女’,’1990—01-27’,’','工人',’财务部','','15862110365’,’河南',’' union select '0501',’王涛','’,’198
36、7-10—13’,'’,’工人’,'销售部’,’’,'15862110001',’福建’,’’ union select '0201','徐杰’,'’,’1984—07—09’,’研究生’,'技术人员’,’研发部',’',’15862110002’,'无锡’,'' union select ’0701’,’张凯','’,’1985-04-12’,'',’总管','后勤部',’’,'15862110003','浙江’,'’ union select ’0601’,’李璐',’女’,’1986-05—16','大专’,'总管’,'宣传部’,'',’15862110004','苏州',’’
37、union select '0302’,'石磊’,’’,'1985—02—07’,'’,'工人’,'生产部','’,’15862110005',’扬州’,’' union select ’0303’,'吴华’,’',’1986—06—24’,'',’工人’,’生产部’,'’,’15862110006’,’山东',’’ union select ’0304’,'唐建青’,’’,’1989-11-10’,'',’总管’,’生产部’,'',’15862110007',’扬州’,'’ union select '0502’,'李云’,’女’,’1988—03—17',’',’工人’,’销售部’,
38、’’,’158621100008’,'镇江’,’’ union select ’0202’,’王兆坤’,’’,'1986-04—30’,’’,'总管’,'研发部',’',’15862110009’,'无锡’,’’ union select '0305’,’梁玉冲’,'’,’1990-09—04','','工人’,’生产部’,’’,’15862110010’,’无锡’,'' union select ’0503’,’金坛’,'’,'1989-12-15’,’’,’总管’,’销售部’,’',’15862110011’,’上海','' union select '0403',’夏平’,’’,
39、’1986—01-13',’大专’,'工人’,'财务部','',’15862110012’,'四川',’' union select ’0602’,’邵建波’,'’,’1984-03-17’,’’,'工人’,'宣传部’,’’,'15862110013',’徐州','' union select ’0603','李书生’,'’,’1987—11-22’,’',’工人’,’宣传部’,'','15862110014','南通’,’’ union select '0102’,’陆林’,’’,’1980—08—21','博士','工人’,’策划部’,'’,’15862110015’,’河北’,’’
40、 union select '0702’,’黄婷',’女’,’1981—05-16’,'',’工人',’后勤部’,'',’15862110016','安徽',’' union select '0203’,’周宇’,’’,’1982—07-19',’研究生','技术人员’,'研发部',’’,’15862110017’,'浙江','’ union select ’0703’,’李晓梅’,’女’,'1982—04-03’,'','工人’,’后勤部’,'',’15862110018',’宿迁','’ 第五章 工资管理系统功能实现 5。1 开发环境简介 Visual
41、Basic是一个可视化、面向对象的、采用事件驱动的结构化高级程序设计语言,它具有强大的数据库操作功能,提供了数据管理器(Data Manager)、数据控件(data Control)以及ADO(Activex数据对象)等工具,利用它能够建立多种类型的数据库并可以管理维护和使用这些数据。 5.2 系统界面的设计 图5.1 系统界面 系统主界面主要有系统菜单和运行界面.给界面提供了系统设置,人事管理,工资管理和帮助等功能,下面又分多个子功能。 5。3 员工基本信息管理功能设计(代码) 添加操作: Dim EmployeeID, Employeename, Sex, birthda
42、y, Education, Duty, DepartmentName, IdentityID, Telephone, Address As String EmployeeID = Text1.Text Employeename = Text2。Text Education = Text3。Text Duty = Text8。Text DepartmentName = Text4。Text Sex = Combo1。Text IdentityID = Text5。Text Telephone = Text6。Text Address = Text7。Text If Trim(
43、EmployeeID) = "” Or Trim(Employeename) = "” Or Trim(DepartmentName) = "” Then MsgBox "员工基本信息不能为空,请填写!” Exit Sub End If myCon。Open ”Provider=SQLOLEDB。1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=工资管理;Data Source=HP—PC;” myRs.Open "select * from Employee where Em
44、ployeeID='” & Trim(Text1。Text) & ”' and Employeename=’" & Trim(Text2。Text) & ”'", myCon If myRs.EOF = False Then MsgBox ”该员工已经存在,请重新输入!” myRs.Close myCon。Close Text1。SetFocus Exit Sub End If myRs。Close myRs。Open "employee", myCon, 3, 2 myRs。AddNew myRs。Fields(”EmployeeID
45、 = Text1。Text myRs.Fields("Employeename") = Text2。Text myRs。Fields("Education”) = Text3。Text myRs.Fields(”Duty") = Text8.Text myRs。Fields("DepartmentName") = Text4。Text myRs。Fields("Sex”) = Combo1。Text myRs。Fields(”IdentityID") = Text5。Text myRs.Fields(”birthday”) = DTPicker1.
46、Value myRs.Fields(”Telephone”) = Text6。Text myRs.Fields("Address”) = Text7。Text myRs。Update myRs。Close myCon。Close MsgBox ”添加成功!” Adodc1。RecordSource = "select * from employee " jbxx.Adodc1。Refresh jbxx。DataGrid1。Refresh Text1。Text = "” Text2。Text = ”” Text3.Text = ”" Text4。Text = "
47、" Combo1.Text = "” Text5。Text = "” Text6。Text = ”” Text7。Text = ”” Text8。Text = ”" 修改操作: Dim EmployeeID, Employeename, Sex, birthday, Education, Duty, Department, IdentityID, Telephone, Address As String Dim n As Integer EmployeeID = Text1。Text Employeename = Text2。Text Education = Text3.
48、Text Duty = Text8。Text DepartmentName = Text4.Text Sex = Combo1。Text IdentityID = Text5.Text Telephone = Text6。Text Address = Text7。Text If Trim(EmployeeID) = ”" Or Trim(Employeename) = ”” Then MsgBox "请填写要删除员工的基本信息!” Exit Sub End If If myCon。State = 1 Then myCon.Close End If m
49、yCon.Open ”Provider=SQLOLEDB。1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=工资管理;Data Source=HP-PC;” myRs.Open ”select * from employee where EmployeeID=’" & Text1.Text & "’”, myCon, 3, 2 n = MsgBox(”您确定要删除吗?", vbYesNo, "提示") If n = 6 Then myRs。Delete myRs.Close myCon.Cl
50、ose End If Adodc1。RecordSource = "select * from employee " jbxx。Adodc1.Refresh jbxx。DataGrid1.Refresh Text1。Text = "” Text2.Text = ”" Text3。Text = "" Text4。Text = "” Combo1。Text = "" Text5。Text = ”” Text6。Text = "” Text7。Text = ”" Text8.Text = ”” 删除操作: Dim EmployeeID, Employeename, Se






