南邮通达简单的工资管理系统.docx
- 文档编号:25226975
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:59
- 大小:1.03MB
南邮通达简单的工资管理系统.docx
《南邮通达简单的工资管理系统.docx》由会员分享,可在线阅读,更多相关《南邮通达简单的工资管理系统.docx(59页珍藏版)》请在冰豆网上搜索。
南邮通达简单的工资管理系统
程序设计报告
(2013/2014学年第1学期)
题目:
模拟工资管理系统
专业:
计算机科学与技术
学生姓名:
班级学号:
指导教师:
指导单位:
南京邮电大学通达学院
日期:
2013年12月9日
评分细则
评分项
优秀
良好
中等
差
遵守机房规章制度
上机时的表现
学习态度
程序准备情况
程序设计能力
团队合作精神
课题功能实现情况
算法设计合理性
用户界面设计
报告书写认真程度
内容详实程度
文字表达熟练程度
回答问题准确度
简短评语
教师签名:
年月日
评分等级
备注
评分等级有五种:
优秀、良好、中等、及格、不及格
模拟工资管理系统
一课题内容和要求
工资管理系统是一个单位最基本的一项财务管理,该系统要求实现查找,修改,删除,统计,排序等。
所以帐务数据都要利用文件系统保存,以备系统下次运行时使用。
通过此课题,熟练掌握文件,数组,指针的各项操作,以及一些基本算法思想的应用。
基本要求:
管理员:
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
{
private:
workerw[N];
intNUM;//用来计算职工数目
intcount;//用来暂时记录当前操作第几个职工
public:
voidadd();//职工信息录入
voidsort();//职工信息排序
voidsearch();//职工信息查找
voiddele();//职工信息删除
voidmodify();//职工信息修改
voidsave();//职工信息以文件形式保存
voidshowworker();//显示职工信息在屏幕上
voidread();
WorkerList()
{
NUM=0;
count=0;
}
};
2主要函数流程图
(1)登录函数(如图二所示)
NYYN
图二(登录函数图)
(2)职工信息录入如图三所示
图三(录入函数)
(3)职工信息查找(如图四所示)
图四(查找函数)
(4)职工信息统计(如图五所示)
图五(统计函数)
(5)职工信息修改(如图六所示)
图六(修改函数)
(6)职工信息删除(如图七所示)
图七(删除函数)
(7)职工信息保存(如图八所示)
图八
(8)职工信息排序(如图九所示)
图九
四.源代码
#include
#include
#include
#include
#include
#include"conio.h"
usingnamespacestd;
#defineN100//N作为最大职工总数
intf=0;//f作为开关
stringp;//p作为接收菜单选项的字符串
interror=0;
voidmenu();//显示菜单
classworker
{
public:
worker()
{
}
voidshow();//职工信息显示
~worker()
{
}
doubleGetTax();//获取缴税
doubleGetAccumPay();//获取实发工资
friendclassWorkerList;
private:
stringnum,name,sex,edu,address,tel;//姓名,性别,教育程度,住址,电话
intage,salary,A;//年龄,薪水,税金
};
classWorkerList
{
private:
workerw[N];
intNUM;//用来计算职工数目
intcount;//用来暂时记录当前操作第几个职工
public:
voidadd();//职工信息录入
voidsort();//职工信息排序
voidsearch();//职工信息查找
voiddele();//职工信息删除
voidmodify();//职工信息修改
voidsave();//职工信息以文件形式保存
voidshowworker();//显示职工信息在屏幕上
voidread();
WorkerList()
{
NUM=0;
count=0;
}
};
doubleworker:
:
GetTax()//缴税
{
if(salary<=1500)
{
returnA==0;
}
else
if(salary<=2500)
{
returnA=(salary-1500)*10/100;
}
else
if(salary<=3500)
{
returnA=(salary-2500)*15/100+100;
}
else
if(salary<=5000)
{
returnA=(salary-3500)*20/100+100+150;
}
else
if(salary<=10000)
{
returnA=(salary-5000)*30/100+100+150+300;
}
else
if(salary>10000)
{
returnA=(salary-10000)*40/100+100+150+300+1500;
}
}
doubleworker:
:
GetAccumPay()
{
returnsalary-A;
}
//登陆函数
voidlogin()
{
system("cls");
cout<<"\n\n*************************************************"< cout<<"**请选择您所需要的模式**"< cout<<"**1.管理员模式**"< cout<<"**2.用户模式**"< cout<<"*************************************************"< } voidmenu() { cout< cout<<"**************************************************************"< cout<<"****"< cout<<"**===欢迎使用南京邮电大学职工工资管理系统===**"< cout<<"****"< cout<<"**1.职工信息添加**"< cout<<"**2.职工信息修改**"< cout<<"**3.职工信息删除**"< cout<<"**4.职工信息排序**"< cout<<"**5.职工信息查找**"< cout<<"**6.职工信息显示**"< cout<<"**7.职工信息保存**"< cout<<"**8.职工信息查看**"< cout<<"**0.退出**"< cout<<"****"< cout<<"**************************************************************"< cout< } voidmenu1() { cout< cout<<"**************************************************************"< cout<<"****"< cout<<"**===欢迎使用南京邮电大学职工工资管理系统===**"< cout<<"****"< cout<<"**1.职工信息查找**"< cout<<"**0.退出**"< cout<<"****"< cout<<"**************************************************************"< cout< } voiddomain()//主菜单函数实现 { charpa[20]; intabcd; charbefore; WorkerListwl; inta; cout<<"请输入选择: "; 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; cout<<'*'; } } if(strcmp(pa,"123")==0||strcmp(pa,"456")==0) { cout<<"\n登录成功,祝您工作顺利,心情愉快! "< } else { do { error++; if(error==3) { cout< cout<<"\n**************************************************"< cout<<"**密码错误,系统自动退出,请稍后重新登录**"< cout<<"**************************************************"< for(abcd=1;abcd<=100000000;abcd++) { } exit (1); } cout<<"\n密码错误! 请重新输入"< for(abcd=1;abcd<=100000000;abcd++) { } login(); } while(error<3); } while (1) { system("cls"); menu(); cout<<"请选择数字编号0~8"< inti1; cin>>i1; while(! (i1>=0&&i1<=8)) { cout<<"输入有误,请重新输入: "< cin>>i1; } switch(i1) { case1: wl.add();//添加 break; case2: wl.modify();//修改 break; case3: wl.dele();//删除 break; case4: wl.sort();//排序 break; case5: wl.search();//查找 break; case6: wl.showworker();//显示 break; case7: wl.save();//保存 break; case8: wl.read();//查看 break; case0: exit(0); cout<<"系统退出! ! "< exit(0); default: break; } cout<<"是否返回主菜单? Y/N"< cin>>p; if(p=="n"||p=="N") {cout<<"系统退出! ! "< exit(0); } getchar(); } case2: cout<<"请输入密码: "; intb; for(b=0;b<10;b++) { before=getch(); if(before==13) { pa[b]='\0'; break; } if(before==8) { before=getchar(); } else { pa[b]=before; cout<<'*'; } } if(strcmp(pa,"123")==0||strcmp(pa,"456")==0) { cout<<"\n登录成功,祝您工作顺利,心情愉快! "< } else { do { error++; if(error==3) { cout< cout<<"\n**************************************************"< cout<<"**密码错误,系统自动退出,请稍后重新登录**"< cout<<"**************************************************"< for(abcd=1;abcd<=100000000;abcd++) { } exit (1); } cout<<"\n密码错误! 请重新输入"< for(abcd=1;abcd<=100000000;abcd++) { } login(); } while(error<3); } while (1) { system("cls"); menu1(); cout<<"请选择数字编号0~1"< inti1; cin>>i1; while(! (i1>=0&&i1<=7)) { cout<<"输入有误,请重新输入: "< cin>>i1; } switch(i1) { case1: wl.search();//查找 break; case0: exit(0); cout<<"系统退出! ! "< exit(0); default: break; } cout<<"是否返回主菜单? Y/N"< cin>>p; if(p=="n"||p=="N") {cout<<"系统退出! ! "< exit(0); } getchar(); } } } voidWorkerList: : add()//职工信息添加函数实现 { cout<<"请输入职工信息: "< cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"< stringnum; cin>>num; for(inti=0;i while(num==w[i].num) { cout<<"此职工编号已存在,请重新输入: "< cin>>num; } w[NUM].num=num; cin>>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()//显示职工信息函数实现 { cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"< cout< cout< } voidWorkerList: : modify()//职工信息修改函数实现 { if(NUM<=0) { cout<<"没有职工信息存入,系统将返回主菜单"< menu(); } else {cout<<"职工信息如下: "< cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"< for(inti=0;i cout< } cout<<"请输入需要修改信息职工的工号: "< stringnum1; cin>>num1; intj=0,k; intflag=1; while(flag) { for(;j { if(num1==w[j].num) { flag=0; k=j; break; } } if(flag) { cout<<"不存在此员工,请重新输入: "< j=0; cin>>num1; } } cout<<"你选择的职工的信息为: "< cout<<"工号\t姓名\t性别\t学历\t年龄\t工资\t地址\t电话"< cout< cout< cout<<"***********************************************"< cout<<"**1.修改工号**"< cout<<"**2.修改姓名**"< cout<<"**3.修改性别**"< cout<<"**4.修改学历**"< cout<<"**5.修改年龄**"< cout<<"**6.修改工资**"< cout<<"**7.修改地址**"< cout<<"**8.修改电话**"< cout<<"**0.返回主菜单**"< cout<<"***********************************************"< cout< cout<<"请选择数字编号0~8"< inti3; cin>>i3; while(i3<0||i3>8) { cout<<"输入有误,请重新输入: "< cin>>i3; } switch(i3) { case1: cout<<"请输入新的职工工号: "; cin>>w[k].num; cout<<"修改信息已保存,现返回主菜单: "< menu(); break; case2: cout<<"请输入新的职工姓名: "; cin>>w[k].name; cout<<"修改信息已保存,现返回主菜单: "< menu(); break; case3: cout<<"请输入新的职工性别: "; cin>>w[k].sex; cout<<"修改信息已保存,现返回主菜单: "< menu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通达 简单 工资管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)