资源描述
一、设计目的和要求
通过两周的课程设计,加深对数据库技术相关理论的理解,增强动手能力,掌握使用现行较为流行的数据库理论和数据库开发工具进行数据库管理操作(如建库、建立完整性约束,对数据库中数据进行查询,更改等操作)的方法;具体应用方面,设计一个工资管理系统,实现对员工工资的管理及查询功能。最终结果为设计和完成具有较完善功能和一定规模的数据库应用系统(后台),为此后的软件工程课程设计和毕业设计作准备.
二、设计内容
2.1概述
项目背景:
当今的科技迅速发展,管理系统已经完全通过计算机实现,因此需要根据外界的不断变化来完善管理系统,设计适应其发展的数据库管理系统,提高其性能,完善其功能。
编写目的:
用SQL Server 2000建立一个工资管理系统数据库,在该数据库中建立员工基本信息表、员工工种信息表、员工考勤情况表、员工津贴信息表、员工月工资表、年终奖金表、工资等级表、奖金等级表.按照要求设置好属性和各表的主键,并实现一下功能:
(1) 员工每个工种基本工资的设定
(2) 加班津贴管理,根据加班时间和类型给予不同的加班津贴;
(3) 按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资;
(4) 员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/12;
(5) 企业工资报表。能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计,并能够打印
2。2需求分析
1.问题陈述:
随着现代化技术的发展,员工管理已经完全通过计算机来实现了,为了高效率的完成员工工资的管理,满足对员工工资的查询及其他相关操作的实现,决定开发设计工资管理系统,并通过使用工资管理系统,使工资管理工作系统化、规范化、自动化,从而达到提高管理效率的目的.使办公人员可以轻松快捷地完成工资管理的任务.
系统后台采用SQL Server 2000建立数据库及其相关表和关系,运用SQL语句实现查询,计算等共能;后台采用Visual Basic所为界面输出,可提供添加删除等更新操作。
系统功能模块:
2.功能分析:
员工管理系统需要对员工的工资、奖金进行管理,还应包括员工的一些基本信息和考勤情况、加班津贴.因此系统要满足员工工资、奖金的计算工能,通过设定的每月基本工资和奖金,结合考勤情况的所扣工资和加班情况的所的津贴,计算出员工每个月实际的工资,最后更具每个月的工资和奖金计算出每个员工所得的年终奖金以及查询部门或单个员工信息的功能.
3.数据流图:
员工
记录生 成
企业
输入数据 输出数据
图2。1 数据流图
2.3概念结构设计:
1.概述:进行概念结构设计,它是整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS和概念模型.
形成E—R图后,根据该图转换成逻辑结构的关系模式,体现数据库中各实体之间的关系,及实体与属性之间的关系.
2.实体间的整体E—R图:
分配
月工资
等级
业绩
分配
1
1
mn
工种
n
分类
1
考察
获得
年终奖金
员工
n
1 1 m
考勤
获得
1 1
获得
1
1
津贴
1
图2。2 工资管理系统E—R图
3.各表及其属性之间的E-R图:
员工编号
员工
员工姓名
员工学历
员工年龄i
员工性别
图2。.3员工基本信息表与属性之间的E—R图
等级编号i
业绩编号
员工姓名
员工编号
工种
月奖金
员工工种
基本工资
图2。4 员工工种信息表与属性之间的E—R图
考勤
实发工资
基本工资
应扣工资
缺勤次数i
迟到次数
员工编号
员工姓名
图2。5 员工考勤情况表与属性之间的E—R图
津贴
所得津贴
加班天数i
员工姓名
员工编号
加班时间
图2.6 员工津贴信息表与属性之间的E—R图
月工资
月奖金
基本工资
实发金额
所得津贴i
应扣工资
员工姓名
员工编号
图2.7 员工月工资表与属性之间的E—R图
年终奖金
年奖金
员工姓名
员工编号
年终奖金
业绩编号
月奖金
基本工资
年基本工资
图2。8 年终奖金表与属性之间的E-R图
月奖金
业绩
工作业绩
图2.9 奖金等级表与属性之间的E—R图
等级编号
基本工资
等级
员工等级
图2.10 员工公众信息表与属性之间的E—R图
2。4逻辑结构设计:关系模式(带下划线的为主键)
1.把实体转换为关系模式
员工(员工编号,员工姓名,员工性别,员工年龄,员工学历)
工种(员工编号,员工姓名,业绩编号,员工工种,等级编号,基本工资,月奖金)
考勤(员工编号,员工姓名,迟到次数,缺勤次数,应扣工资,基本工资,实发工资)
津贴(员工编号,员工姓名,加班时间,加班天数,所得津贴)
月工资(员工编号,员工姓名,应扣工资,所得津贴,月奖金,基本工资,实发金额)
年终奖金(员工编号,员工姓名,月奖金,基本工资,年奖金,年基本工资,年终奖金)
等级(等级编号,员工等级,基本工资)
业绩(业绩编号,工作业绩,月奖金)
2.把关系转换为关系模式(带下划线的为主键)
分类(员工编号,业绩编号,等级编号)
获得(员工编号,所得津贴,实发金额,年终奖金)
考察(员工编号,迟到次数,缺勤次数)
分配(业绩编号,等级编号)
2。5物理结构设计:
概述:物理设计为逻辑数据模型选取一个最适合应用环境的物理结构(存储结构和存取方法)
环境:sql server 2000,Visual Basic 6.0
2。6实施阶段
1.数据库中各表的结构如下:
表2—1 员工表
字段名称
字段类型
字段大小
索引
允许空值
员工编号
Char
5
唯一,主键
否
v员工姓名
Varchar
20
是
员工性别
Char
2
是
员工年龄
Smallint
2
是
员工学历
Varchar
20
是
表2-2工种表
字段名称
字段类型
字段大小
索引
允许空值
员工编号
Char
5
唯一,主键
否
员工姓名
Varchar
20
是
业绩编号
Char
5
是
员工工种
Varchar
20
是
等级编号
Char
5
是
基本工资
Money
8
是
月奖金
Money
8
是
表2-3月工资表
字段名称
字段类型
字段大小
索引
允许空值
员工编号
Char
5
唯一,主键
否
员工姓名
Varchar
20
是
应扣工资
Money
8
是
所得津贴
Money
8
是
月奖金
Money
8
是
基本工资
Money
8
是
实发金额
Money
8
是
表2-4津贴表
字段名称
字段类型
字段大小
索引
允许空值
员工编号
Char
5
唯一,主键
否
员工姓名
Varchar
20
是
加班时间
Int
4
是
加班天数
Int
4
是
所得津贴
Money
8
是
表2—5考勤表
字段名称
字段类型
字段大小
索引
允许空值
员工编号
Char
5
唯一,主键
否
员工姓名
Varchar
20
是
迟到次数
Int
4
是
缺勤次数
Int
4
是
应扣工资
Money
8
是
基本工资
Money
8
是
实发工资
Money
8
是
表2—6 业绩表
字段名称
字段类型
字段大小
索引
允许空值
业绩编号
Char
5
唯一,主键
否
工作业绩
Varchar
50
是
月奖金
Money
8
是
表2—7等级表
字段名称
字段类型
字段大小
索引
允许空值
等级编号
Char
5
唯一,主键
否
员工等级
Varchar
20
是
基本工资
Money
8
是
表2—8年终奖金表
字段名称
字段类型
字段大小
索引
允许空值
员工编号
Char
5
唯一,主键
否
员工姓名
Varchar
20
是
月奖金
Money
8
是
基本工资
Money
8
是
年奖金
Money
8
是
年基本工资
Money
8
是
年终奖金
Money
8
是
2.关系图
图2.11 各表之间的关系图
3.功能实现语句:
(1)根据等级表的信息设定工种表中员工的基本工资
图2。12工资等级表
update 工种set 工种.基本工资=等级。基本工资 from工种,等级where工种。等级编号=等级。等级编号
(2)根据业绩表的信息设定工种表中员工的月奖金
图2。13奖金等级表
update工种set工种.月奖金=业绩。月奖金 from 工种,业绩where工种。部门编号=业绩.部门编号
(3)设每个员工加班一小时可获得50的加班津贴,则每个员的所得津贴为:
update津贴 set 所得津贴=加班时间*50
(4)假设每个员工迟到一次应扣的工资为10,缺勤一次应扣的工资为二十,每个员工的考勤情况应扣工资可表示为:
update考勤set 应扣工资=迟到次数*10+缺勤次数*20
(5)每个员工的实发工资应为基本工资扣除应扣工资后的实际工资:
update考勤set 实发工资=基本工资—应扣工资
(6)计算每个员工的实发金额:
update月工资set 实发金额=基本工资—应扣工资+所得津贴+月奖金
(7)分别计算每个人的年奖金、年基本工资和年终奖金:
update 年终奖金表 set 年奖金=月奖金*12
update 年终奖金表 set 年基本工资=基本工资*12
update 年终奖金表 set 年终奖金=(年奖金+年基本工资)/12
(8)新建一个视图:员工工资情况
create view 员工工资情况 as
select 员工编号,部门编号,等级编号,月奖金,基本工资
from工种
(9)在该视图中可进行单个员工工资的查询操作
select * from 员工工资情况
例如:查询部门编号为05的所有员工的奖金情况的语句为:
select 员工编号,月奖金 from 员工工资情况 where 部门编号=05
查询等级编号为02的所有员工的工资情况的语句为:
select 员工编号,基本工资 from 员工工资情况 where 等级编号=02
查询员工编号为06的员工的工资情况的语句为:
select 员工编号,基本工资 from 员工工资情况 where 员工编号=06
(10)管理权限的设置:
把对考勤情况表的查询权限授予所有用户(月工资和津贴表权限同考勤表)
grantselect
on table考勤
to public
把对员工基本信息表的修改权限授予管理员(其余表的修改权限同员工基本信息表)
grantupdate
on table员工
to 管理员
4。VB界面:
图2。14系统菜单界面
图2.15员工表界面
图2.16月工资表界面
图2.17工种表界面
图2.18考勤表界面
三、结论与体会
通过两周的设计,将数据库与VB相结合,最终完成了一个工资管理系统,并能实现了对员工工资的查询、计算、添加删除等功能。通过亲身实践加深了对数据库技术和VB的理解,提高了对SQL Server和Visual Basic的运用能力。
通过这次的设计,我还体会到课程设计是培养综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对实际工作能力的具体训练和考察过程。在设计的过程中难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,把以前所学过的知识重新温故。
四、参考文献
[1]钱雪忠,《数据库原理及应用》北京:北京邮电大学出版社,2005
[2] 钱雪忠,《数据库原理及应用实验指导》北京:北京邮电大学出版社,2005
[3]伍俊良,《Visual Basic 课程设计与系统开发案例》北京:清华大学出版社,2002
第 6 页
展开阅读全文