工资管理系统
引言一、概述二、需求分析三、概念结构设计四、逻辑结构设计五、物理结构设计六、数据库设计七、数据库运行与维护八、系统功能实现九、总结
引言
近年来,随着我国信息技术的飞速发展,计算机应用已逐渐渗透到各个领域。在企业管理领域内,计算机的应用已经十分广泛,各种管理机制与企业运作流程都与计算机紧密结合在一起,计算机的应用进一步完善了企业的管理,提高了企业的现代化管理形象。开发职工工资管理系统的目的就是为了帮助财务部门能更好地管理本单位的职工工资,提高工作效率,实现职工工资信息管理的规范化和自动化。
本文的目的是设计一款工资管理系统,旨在提高工资管理效率,减少人工管理成本。本报告将从需求分析、系统架构设计、系统实现以及测试等方面详细介绍此工资管理系统的设计及实现过程。通过本系统的设计与使用,企业可以更加方便地实现工资的管理、计算和发放,提升管理效率,降低管理成本。
一、概述
本员工工资管理系统实现了对员工工资信息的浏览、删除、修改、查询和统计分析功能,节省了大量的人工操作的工作量,自动完成众多的信息处理,减少了数据出错的几率,加强了工资记录的安全性和完整性。其主要系统功能包括以下几个模块:系统模块管理(包括登录、用户管理)、员工管理(包括添加新员工信息、员工信息查询、员工信息维护)、工资组成项目(包括工资信息的添加、工资信息维护)、员工工资的统计分析等。清晰的体现了员工工资管理流程,完成了基本的员工工资管理要求,是一个典型的信息管理系统。该系统大大地简化了操作流程,提高了企业的工作效率。
二、需求分析
2.1功能定义
工资管理系统应完成以下功能:
(1) 管理员通过账号密码登录。
(2) 员工信息管理: 实现对员工信息的输入、查询和修改(如员工编号、部门、姓名、性别、联系方式、入职时间、任职状态)。
(3) 部门信息管理:实现对部门信息的输入、查询和修改(如部门编号、部门名称、部门经理、部门电话、部门邮箱)。
(4) 工资管理:员工工资一部分是基本工资,根据员工的工龄和岗位设置;另一部分根据每月到岗天数,决定是否有扣除工资。包括对工资的查询和修改。(职工号、年月、基本工资、补贴工资、扣除工资、应发工资、实发工资、发放状态)。
(5) 考勤管理:记录每个月员工到岗天数、请假天数。(职工号、年月、出勤天数、请假天数)。
(6) 统计分析功能:统计当月所要核发的工资总金额,平均工资,以及最高和最低工资。
工资规定
基本工资:4k
工资=基本工资+岗位补贴+工龄补贴-扣除工资
岗位补贴表:
岗位 | 人事部 市场部 服务部 | 设计部 技术部 生产部 | 客户部 售后部 | 运营部 销售部 | 财务部 |
---|---|---|---|---|---|
补贴 | 800 | 2000 | 200 | 2000 | 1500 |
缺勤:员工缺勤为-100元/天。
工龄补贴表:
工龄 | 不满1年 | 1年 | 2年 | 3年 | 3年以上 |
---|---|---|---|---|---|
工龄补贴+ | 0% | 2% | 5% | 8% | 15% |
图 1 工资管理系统
2.2参与者
(1) 系统管理员:
① 对员工信息的管理,包括对员工信息的输入、查询、修改的信息。
② 对部门信息的管理,包括对部门信息的输入,查询、修改的信息。
③ 根据员工的岗位补贴、工龄补贴、每日考勤,完成工资的核算并发放工 资。
④ 统计分析当月所要核发的工资总金额,以及最大和最低工资金额。
2.3 用例图
(1) 系统管理员用例图
图 2 系统管理员用例图
(2) 工资管理系统用例图
图 3 工资管理系统用例图
三、概念结构设计
工资管理系统涉及的实体有:
职工:属性有员工编号、姓名、性别、联系方式、入职时间、任职状态。
部门:部门编号、部门名称、部门经理、部门电话、部门邮箱、部门地址。
工资:年月、基本工资、补贴工资、扣除工资、应发工资、实发工资、发放状态。
考勤:年月、出勤天数、请假天数。
实体之间联系如下:
(1) 一个部门可以存在多名员工,一个员工只能在一个部门工作。
(2) 一个职工每个月拥有一份工资,并且存在一份考勤记录。
四、逻辑结构设计
图 8 工资管理系统ER图
五、物理结构设计
为了提高系统的性能,根据应用情况将数据的易变部分与稳定部分、经常存取部分与不经常存取部分分开存放。由于现在的计算机都有多个磁盘,将表(如员工信息表)和索引放在不同的磁盘上,在查询过程中,大大提高I/0读写的效率,而对于较大的分放在两个磁盘上,可以加快存取速度,在多用户环境下的作用更有效;为了改进系统﹑的性能,将日志文件与数据库对象(表、索引等)放在了不同的盘上。同时,考虑到本系统是多用户的,为了提高效率,数据库备份的数据和日志文件将保﹑存在磁盘中。在数据库中经常存取的部分包括:
工资(职工编号、年月、基本工资、应发工资、实发工资、扣除薪资、补贴薪资、发放状态);
职工(职工编号、部门编号、姓名、性别、入职日期、联系方式、任职状态);
考勤(职工编号、年月、出勤天数、请假天数);
部门(部门编号、部门名称、部门经理、部门电话、部门邮箱、部门地址、基本工资);
在数据库设计初始阶段,为了对以后的数据库进行物理优化,提供了一些系统配置变量、存储分配系数,并对这些变量赋予合理的缺省值。但这些值不一定适合每一种应用环境,在进行物理设计时,对这些变量重新赋值,以改善系统的性能。在选择硬件设备、服务器操作系统应该考虑能够逐步增加和扩展。在配置系统变量时,要注意同时使用数据库的用户数,同时打开的数据库﹑对象数,内存分配参数,缓冲区分配参数,时间片大小,数据库的大小,锁的数目等。这些参数值都会影响数据库的存储时间和存储空间的分配。
六、数据库设计
6.1数据库完整性设计(1)实体完整性员工表:员工编号为主键,此项非空且唯一。部门表:部门编号为主键,此项非空且唯一。工资表:员工编号、年份、月份为主键,此项非空且唯一。考勤表:员工编号、年份、月份为主键,此项非空且唯一。(2)参照完整性员工表:FOREIGN KEY(部门编号) REFERENCES 部门(部门编号)工资表:FOREIGN KEY(员工编号) REFERENCES 员工(员工编号)考勤表:FOREIGN KEY(员工编号) REFERENCES 员工(员工编号)(3)用户定义完整性① 员工表:姓名(非空):ename VARCHAR(50) not NULL性别(只允许取‘男’或‘女’):Ssex VARCHAR(4) CHECK (Ssex IN('男','女'))年龄(年龄只允许大于等于18岁):Sage Smallint CHECK(Sage>18)联系方式(取值唯一): phone_number VARCHAR(20) UNIQUE 入职时间(入职时间仅限2015-2099):hire_date INT CHECK(hire_date>=2015 AND hire_date<2099)在职状态(只允许取‘在职’或‘退休’):employment_status VARCHAR(50) CHECK (employment_status IN('在职','退休'))money int NOT NULL② 工资表年份(限于2015-2099之间) year INT check(year BETWEEN 2015 AND 2099)月份(限于1-12之间) month INT CHECK(month BETWEEN 1 AND 12)
七、数据库运行与维护
7.1创建数据库 CREATE DATABASE dataystem;7.2创建数据表 部门信息表的建立:CREATE TABLE department( dno VARCHAR(8) PRIMARY KEY, -- 部门编号 dname VARCHAR(20) NOT NULL, -- 部门名称 dmanger VARCHAR(20) , -- 部门经理 dphone VARCHAR(15) UNIQUE, -- 部门电话 demail VARCHAR(30) NOT NULL, -- 部门邮箱 daddress VARCHAR(100), -- 部门地址 money int -- 基本工资); 职工信息表的建立:CREATE TABLE employee ( employee_id CHAR(6) PRIMARY KEY, -- 员工编号 dno VARCHAR(8), -- 部门编号 ename VARCHAR(50) not NULL, -- 姓名 Ssex VARCHAR(4) CHECK (Ssex IN('男','女')), -- 性别 Sage Smallint CHECK(Sage>18),-- 年龄 phone_number VARCHAR(20) UNIQUE, -- 联系方式 hire_date INT CHECK(hire_date>=2015 AND hire_date<2099), -- 入职时间 employment_status VARCHAR(50) CHECK (employment_status IN('在职','退休')),-- 在职状态FOREIGN KEY(dno) REFERENCES department(dno));员工工资表的建立:CREATE TABLE salary ( employee_id CHAR(6) NOT NULL, -- 员工编号 year INT check(year BETWEEN 2015 AND 2099), -- 年份 month INT CHECK(month BETWEEN 1 AND 12), -- 月份 basic_pay INT, -- 基本工资 butie_pay INT, -- 应发工资 kouchu_pay INT, -- 实发工资 yingfa_pay INT, -- 扣除工资 shifa_pay INT, -- 补贴工资 s_status CHAR(6) NOT NULL, -- 发放状态 PRIMARY KEY (employee_id, year, month));员工考勤表的建立:CREATE TABLE attendance ( employee_id CHAR(6), -- 职工号,唯一标识 year INT NOT NULL, -- 年份 month INT NOT NULL, -- 月份 attendance_days INT NOT NULL, -- 出勤天 leave_days INT NOT NULL , -- 请假天PRIMARY KEY (employee_id, year, month));管理员登录表的建立:CREATE TABLE user ( username VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL);7.3创建视图创建查询指定部门编号员工信息:CREATE VIEW employee_department_salary ASSELECT e.employee_id, e.ename, d.dname, e.Sage, d.moneyFROM employee eJOIN department d ON e.dno = d.dnoWHERE e.dno = '指定部门编号';**
八、系统功能实现
8.1 工资管理系统界面设计
工资管理系统主要分为左右两部分,左侧为导航栏,主要分为员工信息管理、部门信息管理、工资管理、考勤管理、数据分析五个板块。通过点击不同的板块内容,实现不同的功能。
图8-1 工资管理系统系统界面设计
8.2员工信息管理界面设计
点击员工信息按钮,即可显示出公司内部所有员工信息,通过界面配置的搜索框、编辑、删除、新增、保存等按钮即可对员工信息进行操作。
图8-2 员工信息管理界面
8.3部门信息管理界面设计
点击部门信息按钮,即可显示出公司内部所有部门信息,通过界面配置的搜索框、编辑、删除、新增、保存等按钮即可对部门信息进行操作。
图8-3 部门信息管理界面
8.4工资管理界面设计
点击工资管理按钮,即可显示出公司内部所有员工工资信息,通过界面配置的搜索框、编辑、删除、新增、保存等按钮即可对工资信息进行查询,修改、删除、添加等操作。
图8-4 工资管理界面
8.5考勤管理界面设计
点击考勤管理按钮,即可显示出公司内部所有员工考勤信息,通过界面配置的搜索框、编辑、删除、新增、保存等按钮即可对考勤信息进行查询,修改、删除、添加等操作。
图8-5 考勤管理界面
8.6数据分析界面设计
通过数据库操作计算部门工资分布,部门人数分布,以及部门工资分布,来实现数据分析操作。
图8-6 数据分析界面
九、总结
Qt连接数据库MySQL方法请参考如下连接:
Qt连接数据库解决办法