职工工资管理系统Word格式文档下载.docx
《职工工资管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《职工工资管理系统Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。
1.1题目背景
随着信息时代的到来和全社会信息化、网络化建设的兴起,实现工资的智能化、系统化、网络化、信息化管理势在必行。
1.2选题
系统分为销售员类、兼职技术人员类、经理类、销售经理类以及主函数等几大模块。
数据的输入及处理、编辑、管理、查询(按姓名,编号,职业,对应员工工资分布情况查询)数据输入的-------输入员工的信息,包括职业,姓名,编号及对应的工资处理数据,系统会进行处理。
查询-------根据题意,按照姓名、编号、职业、对应员工工资分布情况进行查询
main()函数实现对程序主界面的引导。
1.3开发环境
编程工具:
VisualC++6.0
第2章设计内容
2.1实现功能
系统主要包括员工信息的输入、查询、删除、修改、保存和退出等功能。
用户只需先进入系统,输入员工信息就可以进行一系列的操作了。
2.2概要设计(涉及类的框图)
2.3界面设计
界面设计在工作流程上分为结构设计、交互设计、视觉设计三个部分。
结构设计也称概念设计(ConceptualDesign),是界面设计的骨架。
该工资管理系统运行时界面上的目录体系和词语定义易于用户理解和操作,例如主界面的目录体系包括1添加员工及工资计算2按姓名查询3按编号查询4按职业查询5对应职业员工工资分布情况查询6输出所有员工的工资0退出系统而添加员工及工资目录下1销售员2兼职技术人员3经理4销售经理0退出添加。
第3章系统实现
3.1涉及知识点
类封装、面向对象程序设计、数组的应用、循环语句的使用、过程化设计的思想等。
3.2系统运行(主要运行界面抓图)
3-1程序主界面
3-2添加成员与工资计算
3-3按编号查询
3-4按职业查询
3-5按对应职业员工分布情况查询
3-6输出所有员工工资
3.3源程序清单(类代码)
#include<
iostream.h>
fstream.h>
stdlib.h>
string.h>
classemployee
{
protected:
intno;
charname[20];
floatsalary;
public:
employee()
{
cout<
<
"
职工编号:
;
cin>
>
no;
职工姓名"
name;
salary=0;
}
virtualvoidpay()=0;
virtualvoiddisplay()=0;
friendvoidadd();
//添加员工及工资计算
friendvoidvisitname();
//按姓名查询
friendvoidvisitnum();
//按标号查询
friendvoidvisitprofession();
//按职业查询
friendvoidsearchpay();
//对应员工工资分布情况查询
friendvoidoutpay();
~employee(){};
};
classtechnician:
publicemployee
private:
floathourlyrate;
intworkhours;
technician()
hourlyrate=100;
voidpay()
name<
本月工作时数:
workhours;
salary=hourlyrate*workhours;
voiddisplay()
兼职技术人员"
(编号为"
no<
)"
本月工资:
salary<
endl;
~technician(){};
classsalesman:
virtualpublicemployee
floatcommrate;
floatsales;
salesman()
commrate=0.4;
本月销售额:
sales;
salary=sales*commrate;
销售员"
~salesman(){};
classmanager:
floatmonthlypay;
manger()
monthlypay=8000;
salary=8000;
经理"
本月工资:
~manager(){};
classsalesmanager:
publicmanager,publicsalesman
salemanager()
monthlypay=5000;
commrate=0.05;
所管部门月销售量"
salary=5000+commrate*sales;
销售经理"
//答应员工工资
~salesmanager(){};
intoption,flag,i,no,k;
floatsalary;
charname[20];
fstreamoutfile;
manager*m[50];
technician*t[50];
salesman*s[50];
salesmanager*sm[50];
intmnum=0,tnum=0,smnum=0,snum=0,j=0,profession=0;
voidadd();
voidvisitname();
voidvisitnum();
voidvisitprofession();
voidsearchpay();
voidoutpay();
voidmain()
cout<
请选择您需要的操作!
\t\t\t*****************************"
\t\t\t**企业职工工资计算及管理系统**"
\t\t\t**1、添加员工及工资计算**"
\t\t\t**2、按姓名查询 **"
\t\t\t**3、按标号查询**"
\t\t\t**4、按职业查询**"
\t\t\t**5、对应职业员工工资分布情况查询**"
\t\t\t**6、输出所有员工的工资**"
\t\t\t**0、退出系统**"
选择0-7数字进行操作"
cin>
option;
outfile.open("
text"
ios:
:
out);
if(!
outfile)
textcan'
topen"
exit
(1);
while(option!
=0)
switch(option)
{
case1:
{
add();
break;
}
case2:
//按姓名查查询
visitname();
case3:
visitnum();
case4:
{
visitprofession();
break;
}
case5:
//对应员工工资分布情况查询
searchpay();
case6:
outpay();
}
}
请输入操作代码(1添加员工及工资计算/2按姓名查询/3按编号查询/4按职业查询5/对应职业员工工资分布情况查询/6输出所有员工的工资/0退出系统)"
outfile.close();
}
voidadd()
flag=1;
while(flag!
员工身份:
1:
销售员2:
兼职技术人员3:
经理4:
销售经理0:
退出添加请选择"
flag;
switch(flag)
t[tnum]=newtechnician;
t[tnum]->
pay();
display();
outfile<
t[tnum]->
tnum++;
j++;
s[snum]=newsalesman;
s[snum]->
s[snum]->
snum++;
case3:
m[mnum]=newmanager;
m[mnum]->
m[mnum]->
mnum++;
case4:
sm[smnum]=newsalesmanager;
sm[smnum]->
sm[smnum]->
smnum++;
}
voidvisitname()
请输入要查询的姓名:
intsign[4]={0};
for(i=0;
i<
snum;
i++)
if(strcmp(s[i]->
name,name)==0)
cout<
s[i]->
}
if(i<
snum)
return;
else
sign[0]=1;
tnum;
if(strcmp(t[i]->
t[i]->
tnum)
sign[1]=1;
mnum;
if(strcmp(m[i]->
m[i]->
mnum)
return;
sign[2]=1;
smnum;
if(strcmp(sm[i]->
sm[i]->
smnum)
sign[3]=1;
if(sign[0]&
&
sign[1]&
sign[2]&
sign[3])
cout<
该人不存在,请确认!
voidvisitnum()//按编号查询
请输入要查询编号:
if(s[i]->
no==no)
if(t[i]->
if(m[i]->
if(sm[i]->
voidvisitprofession()//按职业查询
请选择要查询的职业"
1:
销售员2:
销售经理"
profession;
switch(profession)
if(snum==0)
cout<
无销售人员信息,请确认!
else
销售人员信息如下:
for(i=0;
{
cout<
}
if(tnum==0)
无兼职技术人员信息,请确认!
兼职技术人员信息如下:
if(mnum==0)
无经理人员信息,请确认!
经理人员信息如下:
if(smnum==0)
无销售经理信息,请确认!
销售经理信息如下: