SqlServer 课程设计报告Word文档格式.docx
《SqlServer 课程设计报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《SqlServer 课程设计报告Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
5.2触发器12
6客户端程序设计15
6.1登陆界面15
6.2用户界面15
6.3管理员界面16
7总结17
致谢18
参考文献19
1设计内容和要求
每个企业的财务管理都是很烦琐的工作,稍有马虎就会产生很大的损失。
1.1系统目标设计
实现企业的工资管理系统化、规范化和自动化。
可以和其他管理系统进行连接,例如人事管理系统,使企业更加高效地、科学地进行员工管理。
尽量地减少手工操作,使企业管理更加现代化。
1.2系统功能分析
为了保证系统具有高度的安全性,要有登录界面,进行用户身份的验证。
用户分为不同的级别,例如管理员级用户和普通用户。
员工不同工种基本工资的设定:
员工工种的不同,工资的标准也不同,允许管理员根据员工的现任职务设定员工的基本工资。
包括每个员工的姓名、性别、年龄、工龄、职务及其所在的部门等资料的录入来确定员工的基本工资,以及对现有工作人的基本信息的录入工作。
可以对员工的工资项目进行初始化的设置(包括个人所得税、上月工资零头、本月工资零头、职务工资、级别工资、基本工资、工龄工资、独子费、津贴补贴、离退费、交通费、电话费补贴。
书报费补贴等人
对系统管理员的密钥,以及其他系统使用人员的一些信息,例如用户名、权限、密钥的设定。
加班津贴的管理,根据加班的时间和类别给予不同的加班津贴。
根据月工资生成公式,按照员工的考勤情况和工作表现,生成员工工资。
人员查询操作包括按单个员工信息查询、按部门查询和按工资查询等。
员工年终奖金的生成。
单位工资报表的生成。
可以按照在每个月的每个固定时间生成该单位全体员工的月工资。
对于月工资,能够实现按照员工、部门、年、月进行统计分析,产生相应的报表,并可以打印输出此报表。
工资的发放,要求能够实现银行打卡的功能。
工资转账的功能,包括转账设置、工资转账、工资凭证查询、结转下月的功能。
。
1.3系统设计提示
根据功能分析,可将功能模块设计成如下图所示的形式。
2需求分析
2.1目标设计
1.实现企业的工资管理系统化、规范化和自动化
2.尽量地减少手工操作,使企业管理更加现代化
3.各个模块直接有必要的联系,使企业更加高效地、科学地进行员工管理。
2.2功能需求
1.为了保证系统具有高度的安全性,需要要有登录界面,进行用户身份的验证。
用户分为不同的级别,管理员级用户和普通用户。
2.员工不同工种基本工资的设定:
3.对员工的工资项目进行初始化的设置,包括个人所得税、上月工资零头、本月工资零头、职务工资、级别工资、基本工资、工龄工资、独子费、津贴补贴、离退费、交通费、电话费补贴,等
4.员工有登陆并查看自己工资的功能。
5.管理员有管理员工的、录入考勤、管理工资标准等功能。
2.3系统模块图
3概念结构设计
3.1数据库的创建
CREATEDATABASE工资管理
(
NAME='
工资管理'
FILENAME='
D:
\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\DATA\工资管理.mdf'
SIZE=3072KB,MAXSIZE=UNLIMITED,FILEGROWTH=1024KB
)
LOGON
工资管理_log'
\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\DATA\工资管理_log.ldf'
SIZE=1536KB,MAXSIZE=2048GB,FILEGROWTH=10%
COLLATEChinese_PRC_CI_AS
1.数据项:
ID
含义说明:
唯一标识每个职工。
类型:
varchar
长度:
6
取值范围:
小于等于6
取值含义:
一串数字,唯一表示一个员工
2.“职位”的描述:
数据结构:
职位。
员工所能从事的岗位名称。
类型:
20
小于等于20
一个字符串,表示员工的职位
3.“级别”的描述:
级别
一个职位对应的分级别
一个字符串,表示员工的职位所对应的,级别
4.“本月总工资”的描述:
本月总工资
含义说明:
一个员工某月的工资
smallmoney
一个数字,表示员工的某月的工资数额
4逻辑结构设计
4.1表的关系图
4.2表的设计
4.2.1员工信息表
列名
数据类型
长度
说明
主键
密码
姓名
性别
char
2
出生日期
smalldatetime
加入时间
是否有独身子女
int
身份证号
18
是否离退
职位
4.2.2工资标准表
基本工资
职务工资
津贴补贴
独子费
离退费
交通费补贴
电话费补贴
4.2.3级别工资表
级别工资
工龄工资
4.2.4考勤表
员工ID
年
月
迟到次数
早退次数
请假天数
旷工天数
4.2.5员工工资表
工资年份
工资月份
个人所得税
缺勤应扣
本月应发工资
4.2.6管理员表
用户名
邮箱
4.3约束
4.3.1主键
员工信息表:
ID
工资标准表:
职位
级别工资表:
职位,级别
考勤表:
员工ID,年,月
员工工资表:
员工ID,工资年份,工资月份
管理员表:
4.3.2外键
员工信息表.ID---考勤表.员工ID
员工信息表.ID---员工工资表.员工ID
员工信息表.职位---工资标准表.职位
员工信息表.级别---级别工资表.级别
工资标准表.职位---级别工资表.职位
5服务器端程序设计
5.1存储过程
51.1存储过程gongzi
功能:
根据传入的员工ID,计算该员工上个月的总工资,然后将该员工上月的总工资更新为计算的结果。
创建代码;
use工资管理
go
createprocgongzi
@idvarchar(6)
as
declare@zongsmallmoney
select@zong=工资标准表.基本工资+工资标准表.职务工资+工资标准表.津贴补贴
+工资标准表.独子费*员工信息表.是否有独身子女+工资标准表.交通费补贴
+工资标准表.电话费补贴+级别工资表.级别工资
+级别工资表.工龄工资*(year(getdate())-year(员工信息表.加入时间))
from工资标准表
innerjoin员工信息表on员工信息表.职位=工资标准表.职位
innerjoin级别工资表on员工信息表.级别=级别工资表.级别
and员工信息表.职位=级别工资表.职位
where员工信息表.ID=@id
update员工工资表set本月总工资=@zong
where员工ID=@id
and工资年份=year(getdate())and工资月份=(month(getdate())-1)
5.1.2存储过程gz
创建一个游标mycursor,用于查询所有的员工ID,然后依次读取每个员工ID,自动调用存储过程gongzi,这样就可以把所有员工的总工资计算出来了。
createprocgz
declare@idvarchar(6)
DECLAREmycursorCURSOR
FOR
selectID
from员工信息表
OPENmycursor
FETCHNEXTFROMmycursor
into@id
execgongzi@id
WHILE@@FETCH_STATUS=0
BEGIN
FETCHNEXTFROMmycursor
into@id
execgongzi@id
END
CLOSEmycursor
deallocatemycursor
5.2触发器
5.2.1触发器kaoqin
当管理员为某员工录入了考情信息后,系统自动算出该员工应该扣多少工资,并插入到员工工资表。
createtriggerkaoqin
on考勤表
forinsert
begin
declare@nvarchar(6)
declare@t1int
declare@t2int
declare@msmallmoney
select@m=(inserted.迟到次数*5+inserted.早退次数*5+inserted.请假天数*10+inserted.旷工天数*50),
@n=inserted.员工ID,
@t1=inserted.年,
@t2=inserted.月
frominserted
update员工工资表set缺勤应扣=@m
where员工ID=@n
and工资年份=@t1
and工资月份=@t2
end
5.2.2触发器shifagongzi
当更新员工的总工资时,自动计算员工的个人所得税和应发工资,并更新到表中。
createtriggershifagongzi
on员工工资表
forupdate
declare@idvarchar(6)
declare@nianint
declare@yueint
declare@suismallmoney
declare@yingfasmallmoney
select@sui=inserted.本月总工资*0.08,@id=inserted.员工ID,@nian=inserted.工资年份,@yue=inserted.工资月份,@yingfa=inserted.本月总工资-@sui
frominserted
update员工工资表set个人所得税=@sui,本月应发工资=@yingfawhere员工工资表.员工ID=@idand员工工资表.工资年份=@nianand员工工资表.工资月份=@yue
5.2.3触发器yuangong
当管理员从员工信息表中删除一个员工时,则自动删除与该员工有关的其他表中的信息。
createtriggeryuangong
on员工信息表
insteadofdelete
select@id=deleted.IDfromdeleted
delete员工工资表where员工ID=@id
delete考勤表where员工ID=@id
delete员工信息表whereID=@id
6客户端程序设计
6.1登陆界面
输入用户名密码,填好验证码,并选择帐号类型即可登陆
6.2用户界面
6.2.1基本信息查询
图6.2个人信息查询
6.2.2任意月份工资查询
图6.3工资查询
6.3管理员界面
6.3.1添加员工
图6.4添加员工
7总结
经过两周的设计,基本上完成了工资管理系统的设计,在系统中写了一个存储过程调用它可以直接计算并更新所有员工的上个月的工资,调用存储过程的语句可以在数据库代理中设置成每个月的特定时间运行,这样不用人工干预,到时间系统会自动算出每个员工上个月相应的工资,管理员只用管理好员工信息和按时录入考勤就可以了。
达到了比较智能的要求。
员工可以用自己的帐号和密码登陆系统查询自己的个人信息、工资和考勤记录,管理员除了查询还有修改的功能,可以修改员工信息,工资标准等。
通过这两周的课程设计,成功的运用学过的知识设计出了工资管理系统,虽然功能还不是很完善,但是基本功能都已经实现,通过这次设计,提高了自己运用知识的能力,由于在设计的时候遇到了很多问题,最后通过各种途径也成功解决了,这样也提高了自己分析问题和解决问题的能力,所以通过这次课程设计,学到了很多东西,对自己的能力有很大的提高。
致谢
在这次课程设计中,遇到过很多问题,有些甚至是没有学过的,但是经过询问老师,和同学讨论与网上搜索,都成功解决了问题。
首先感谢X老师和龙X文老师的指导,也感谢帮助我的同学,感谢网上提供相关知识的朋友,在你们的帮助下终于成功完成了课程设计,没有大家的帮助,完全靠自己的力量完成是很困难的。
参考文献
[1]肖慎勇数据库及其应用清华大学出版社2007
[2]何宁;
藤冲数据库技术应用实验教程机械工业出版社2007
[3]滕福生数据库的设计和应用四川科学技术出版社1985
[4]岳昆数据库技术清华大学出版社2007
[5]丁宝康数据库技术学习指导书科学出版社2003
[6]闪四清SQLServer2005基础教程清华大学出版社2007
[7]刘智勇SQLServer2005宝典电子工业出版社2007
[8]黄开枝SQLServer2005中文版基础教程清华大学出版社2007
[9]蒙祖强SQLServer2005应用开发大全清华大学出版社2007
[10]胡百敬SQLServer2005数据库开发详解电子工业出版社2006
[11]陈克力SQLServer2005编程基础清华大学出版社2008