人力资源薪酬管理南邮通达简单的工资管理系统Word文档格式.docx
- 文档编号:17883877
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:43
- 大小:357.89KB
人力资源薪酬管理南邮通达简单的工资管理系统Word文档格式.docx
《人力资源薪酬管理南邮通达简单的工资管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《人力资源薪酬管理南邮通达简单的工资管理系统Word文档格式.docx(43页珍藏版)》请在冰豆网上搜索。
优秀、良好、中等、及格、不及格
模拟工资管理系统
一课题内容和要求
工资管理系统是一个单位最基本的一项财务管理,该系统要求实现查找,修改,删除,统计,排序等。
所以帐务数据都要利用文件系统保存,以备系统下次运行时使用。
通过此课题,熟练掌握文件,数组,指针的各项操作,以及一些基本算法思想的应用。
基本要求:
管理员:
1)以密码系统登录
2)录入员工信息具体工资,计算相应的税金(计算规则参见最新公布的政策)
3)查询并显示所有员工具体信息
4)显示统计信息:
员工数目,工资总数和税金总数
5)按照指定条件查询
6)增减具体员工记录
税金政策基本是不同收入等级的工资使用不同的比例收取税金。
类似于下表:
工资税金
0~15000%(超出部分)
1500~250010%(超出部分)
2500~350015%(超出部分)
3500~500020%(超出部分)
5000~1000030%(超出部分)
10000~40%(超出部分)
员工:
1)以工号为登录ID,密码自己设定;
2)可以查询本人的相关信息;
3)系统提供指定时间间隔的查询功能。
二需求分析
工资管理系统的功能框架图如图1所示。
图一(功能框架图)
(1)根据工资管理系统的要求,设计合适的数据结构。
(2)选择文件存储格式(文本或是二进制)和文件名。
(3)采用自顶向下的设计方法,设计系统的总体模块组成和数据结构。
(4)对于每项操作,设计一个函数(方法、子模块)进行实现,要明确定义函数类型。
(5)根据设计结果分布开发实现各模块,最后进行总体集成。
三、概要设计
1主要结构体
classworker
{
public:
worker()
{
}
voidshow();
//职工信息显示
~worker()
}
doubleGetTax();
//获取缴税
doubleGetAccumPay();
//获取实发工资
friendclassWorkerList;
private:
stringnum,name,sex,edu,address,tel;
//姓名,性别,教育程度,住址,电话
intage,salary,A;
//年龄,薪水,税金
};
classWorkerList
workerw[N];
intNUM;
//用来计算职工数目
intcount;
//用来暂时记录当前操作第几个职工
voidadd();
//职工信息录入
voidsort();
//职工信息排序
voidsearch();
//职工信息查找
voiddele();
//职工信息删除
voidmodify();
//职工信息修改
voidsave();
//职工信息以文件形式保存
voidshowworker();
//显示职工信息在屏幕上
voidread();
WorkerList()
NUM=0;
count=0;
2主要函数流程图
(1)登录函数(如图二所示)
NYYN
图二(登录函数图)
(2)职工信息录入如图三所示
图三(录入函数)
(3)职工信息查找(如图四所示)
图四(查找函数)
(4)职工信息统计(如图五所示)
图五(统计函数)
(5)职工信息修改(如图六所示)
图六(修改函数)
(6)职工信息删除(如图七所示)
图七(删除函数)
(7)职工信息保存(如图八所示)
图八
(8)职工信息排序(如图九所示)
图九
四.源代码
#include<
iostream>
string>
fstream>
#include<
stdlib.h>
cstdlib>
#include"
conio.h"
usingnamespacestd;
#defineN100//N作为最大职工总数
intf=0;
//f作为开关
stringp;
//p作为接收菜单选项的字符串
interror=0;
voidmenu();
//显示菜单
doubleworker:
:
GetTax()//缴税
{
if(salary<
=1500)
returnA==0;
else
=2500)
returnA=(salary-1500)*10/100;
=3500)
returnA=(salary-2500)*15/100+100;
=5000)
returnA=(salary-3500)*20/100+100+150;
=10000)
returnA=(salary-5000)*30/100+100+150+300;
if(salary>
10000)
returnA=(salary-10000)*40/100+100+150+300+1500;
}
GetAccumPay()
returnsalary-A;
//登陆函数
voidlogin()
system("
cls"
);
cout<
<
"
\n\n*************************************************"
endl;
**请选择您所需要的模式**"
**1.管理员模式**"
**2.用户模式**"
*************************************************"
voidmenu()
**************************************************************"
****"
**===欢迎使用南京邮电大学职工工资管理系统===**"
**1.职工信息添加**"
**2.职工信息修改**"
**3.职工信息删除**"
**4.职工信息排序**"
**5.职工信息查找**"
**6.职工信息显示**"
**7.职工信息保存**"
**8.职工信息查看**"
**0.退出**"
voidmenu1()
**1.职工信息查找**"
voiddomain()//主菜单函数实现
charpa[20];
intabcd;
charbefore;
WorkerListwl;
inta;
请输入选择:
;
cin>
>
a;
switch(a)
case1:
cout<
请输入密码:
intj;
for(j=0;
j<
10;
j++)
before=getch();
if(before==13)
pa[j]='
\0'
break;
if(before==8)
before=getchar();
else
pa[j]=before;
'
*'
if(strcmp(pa,"
123"
)==0||strcmp(pa,"
456"
)==0)
cout<
"
\n登录成功,祝您工作顺利,心情愉快!
do
error++;
if(error==3)
{
\n**************************************************"
**密码错误,系统自动退出,请稍后重新登录**"
**************************************************"
for(abcd=1;
abcd<
=100000000;
abcd++)
}
exit
(1);
\n密码错误!
请重新输入"
for(abcd=1;
login();
while(error<
3);
while
(1)
menu();
请选择数字编号0~8"
inti1;
i1;
while(!
(i1>
=0&
&
i1<
=8))
输入有误,请重新输入:
cin>
switch(i1)
wl.add();
//添加
case2:
wl.modify();
//修改
case3:
wl.dele();
//删除
case4:
wl.sort();
//排序
case5:
wl.search();
//查找
case6:
wl.showworker();
//显示
case7:
wl.save();
//保存
case8:
wl.read();
//查看
case0:
exit(0);
系统退出!
!
exit(0);
default:
是否返回主菜单?
Y/N"
p;
if(p=="
n"
||p=="
N"
)
{cout<
exit(0);
getchar();
intb;
for(b=0;
b<
b++)
pa[b]='
pa[b]=before;
while
(1)
menu1();
请选择数字编号0~1"
=7))
voidWorkerList:
add()//职工信息添加函数实现
请输入职工信息:
工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"
stringnum;
num;
for(inti=0;
i<
NUM;
i++)
while(num==w[i].num)
此职工编号已存在,请重新输入:
w[NUM].num=num;
w[NUM].name>
w[NUM].sex>
w[NUM].edu>
w[NUM].age>
w[NUM].salary>
w[NUM].address>
w[NUM].tel;
++NUM;
count=NUM;
voidworker:
show()//显示职工信息函数实现
num<
\t'
name<
sex<
edu<
age<
salary<
address<
tel<
modify()//职工信息修改函数实现
if(NUM<
=0)
没有职工信息存入,系统将返回主菜单"
menu();
{cout<
职工信息如下:
for(inti=0;
count;
cout<
w[i].num<
w[i].name<
w[i].sex<
w[i].edu<
w[i].age<
w[i].salary<
w[i].address<
w[i].tel<
请输入需要修改信息职工的工号:
stringnum1;
num1;
intj=0,k;
intflag=1;
while(flag)
for(;
if(num1==w[j].num)
{
flag=0;
k=j;
break;
}
if(flag)
不存在此员工,请重新输入:
j=0;
cin>
你选择的职工的信息为:
w[k].num<
w[k].name<
w[k].sex<
w[k].edu<
w[k].age<
w[k].salary<
w[k].address<
w[k].tel<
***********************************************"
**1.修改工号**"
**2.修改姓名**"
**3.修改性别**"
**4.修改学历**"
**5.修改年龄**"
**6.修改工资**"
**7.修改地址**"
**8.修改电话**"
**0.返回主菜单**"
inti3;
i3;
while(i3<
0||i3>
8)
switch(i3)
请输入新的职工工号:
w[k].num;
修改信息已保存,现返回主菜单:
menu();
请输入新的职工姓名:
w[k].name;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人力资源 薪酬 管理 通达 简单 工资管理 系统