数据库课程设计薪资管理系统.doc
《数据库课程设计薪资管理系统.doc》由会员分享,可在线阅读,更多相关《数据库课程设计薪资管理系统.doc(22页珍藏版)》请在冰豆网上搜索。
《数据库类课程设计》
系统开发报告
学号:
*********
姓名:
******
题目:
薪资管理系统
指导教师:
******
提交时间:
2013年6月1日
计算机科学与应用系
目录
第一章需求分析..............................................................................1
第二章系统功能设计 2
第三章数据库设计 3
3.1数据库设计............................................................................................3
3.2数据表设计.............................................................................................4
3.3数据库编程............................................................................................6
第四章功能的实现(使用说明) 11
4.1实现按照科室录入个人的基本资料、工资和扣除金额的数据.......................11
4.2实现查询个人详细资料、及工资各项明细........................................................11
4.3计算个人的实际发放工资..................................................................................11
4.4按科室、职业分类统计人数和工资金额...........................................................11
4.5能够修改工作人员信息.....................................................................................13
结束语 15
参考文献 .........................................................................................15
附录(源程序)..............................................................................16
《数据库类课程设计》报告评分标准..........................................20
第一章需求分析
系统功能分析阶段的任务就是确定该系统要解决的问题及其具体要求。
需要通过与用户的交流和沟通明确对系统的功能要求,最终列出系统可以实现的功能由用户确认。
根据所给出的背景资料:
(1)某单位现有1000名员工,其中有管理人员、财务人员、技术人员和销售人员。
(2)该单位下设4个科室,即经理室、财务科、技术科和销售科。
(3)工资由基本工资、福利补贴和奖励工资构成,失业保险和住房公积金在工资中扣除。
(4)每个员工的基本资料有姓名、性别、年龄、单位和职业(如经理、工程师、销售员等)。
(5)每月个人的最高工资不超过3000元。
工资按月发放,实际发放的工资金额为工资减去扣除。
需要实现的功能要求如下:
(1)实现按照科室录入个人的基本资料、工资和扣除金额的数据。
(2)实现查询个人详细资料、及工资各项明细
(3)计算个人的实际发放工资。
(4)按科室、职业分类统计人数和工资金额。
(5)能够删除辞职人员的数据。
(6)能够修改工作人员的信息。
第二章系统功能设计
通过对上述各项功能的分析、分类、综合,按照模块化程序设计的要求,得到如下图所示的功能模块图
登录控制
用户管理
修改密码
输入员工基本信息
查询员工基本信息
修改员工基本信息
输入员工薪资信息
查询员工薪资信息
修改员工薪资信息
员工薪资管理
系统管理
薪资管理系统
员工基本信息管理
图1系统功能模块图
第三章数据库设计
数据库在一个管理信息系统中占有非常重要的地位,数据库结构的好坏将直接影响到应用系统操作效率已经能否保证数据的一致性、完成性和安全性。
3.1数据库设计
根据薪资管理系统的功能要求,通过分析系统要设计的相关实体一集要收集、存储和操纵数据信息,得到如图2所示的实体及其属性图。
姓名
职业
年龄
性别
员工编号
单位编号
员工
单位
单位名称
单位编号
奖金工资
福利补贴
失业保险
工资
住房基金
基本工资
图2实体及其属性图
·员工基本信息(单位编号,员工编号,姓名,性别,职业,年龄)
·单位信息(单位编号,单位名称)
·薪资信息(基本工资,奖金工资,福利补贴,失业保险,住房公积金,实际工资)
3.2数据表设计
3.2.1根据关系,建立员工信息表表名为“Staff”:
CREATETABLEStaff
(SofficeNoVARCHAR(10),
SNoVARCHAR(10),
SnameVARCHAR(10),
SsexCHAR
(2),
SjobVARCHAR(10),
SageSMALLINT,
);
列名如图3:
图3
3.2.2用INSERTINTO语句,向Staff表录入员工的单位编号、员工编号、姓名、性别、职业、年龄等各项信息,例如:
INSERT
INTOStaff(SofficeNo,SNo,Sname,Ssex,Sjob,Sage)
VALUES('01','0001','李明','男','管理人员',29);
打开Staff表即如图4:
图4
3.2.3建立单位信息表Office:
CREATETABLEOffice
(OfficenameVARCHAR(10),
SofficeNoVARCHAR(10),
);
列名如图5:
图5
3.2.4用INSERTINTO语句,向Office录入单位的单位名称、单位编号等部门信息,例如:
INSERT
INTOOffice(Officename,SofficeNo)
VALUES('经理室','01');
打开Office表即如图6:
图6
3.2.5建立薪资信息表Salary:
CREATETABLESalary
(SofficeNoVARCHAR(10),
SjobVARCHAR(10),
wageMONEY,/*工资*/
bonusMONEY,/*奖金*/
welfareMONEY,/*补贴*/
InsuranceMONEY,/*保险*/
HFMONEY,/*住房公积金*/
FSMONEY,/*实际工资*/
);
列名如图7:
图7
3.2.6用INSERTINTO语句,向员工信息表Salary录入基本工资、奖励工资、福利补贴、失业保险、住房公积金等薪资明细:
INSERT
INTOSalary(SofficeNo,Sjob,wage,bonus,welfare,Insurance,HF,FS)
VALUES('01','管理人员','2000','300','300','200','20',NULL);
并利用利用updateset语句,使实际工资=基本工资+奖励工资+福利补贴-失业保险-住房公积金;具体语句如下:
updateSalarysetFS=wage+bonus+welfare-Insurance-HF;
打开Salary表如图8:
图8
3.3数据库编程
3.3.1建立查询语句,根据职业查询工资各项明细。
具体代码如下:
selectSofficeNo部门编号,Sjob职业,wage基本工资,bonus奖励工资,welfare福利补贴,
Insurance失业保险,HF住房公积金,FS实际工资
fromSalary
whereSjob='财务人员';
查询结果如图9:
图9
3.3.2为了方便查询,建立名为pro_Salary存储过程,通过部门号、员工号、职业,查询具体员工信息和实际工资。
具体代码如下:
createprocedurepro_Salary
@officeIDVARCHAR(10),/*部门ID*/
@staffIDVARCHAR(10),/*员工ID*/
@jobVARCHAR(10)/*职位*/
AS
selectA.Sname姓名,A.Ssex性别,A.Sjob职业,A.Sage年龄,B.Officename部门名称,C.wage基本工资,
C.bonus奖励工资,C.welfare福利补贴,C.Insurance失业保险,C.HF住房公积金,C.FS实际工资
fromStaffasA,OfficeasB,SalaryasC
whereA.SofficeNo=B.SofficeNo
andB.SofficeNo=C.SofficeNo
andB.SofficeNo=@officeID
andA.Sjob=C.Sjob
andA.Sjob=@job
andA.SNo=@staffID;
调用存储过程,具体代码如下:
execpro_Salary@officeID='02',@staffID='0004',@job='管理人员';
调用结果如图10:
图10
3.3.3根据工号查询员工信息,具体代码如下:
selectSofficeNo部门编号,SNo工号,Sname姓名,Ssex性别,Sjob职业,Sage年龄
fromStaff
whereSNo='0001';
查询结果如图11:
图11
3.3.4根据部门名称查询部门编号,再根据部门编号查询本单位人。
具体代码如下:
selectOfficename,SofficeNo
fromOffice
whereOfficename='技术科';
selectcount(*)所查单位的总人数
fromStaff
whereSofficeNo='03';
查询结果如图12:
图12
3.3.5根据职业名称,查询本职业人数,具体代码如下:
selectcount(*)