工资管理系统C++课程设计Word文档格式.docx
《工资管理系统C++课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《工资管理系统C++课程设计Word文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
经过一星期的课程实习,重设计到实现,虽然花费了不少时间,但也学到了很多。
主要总结以下几点:
1:
运用面向对象程序设计的思想。
并将文件读入,读出,多态,派生,虚基类,虚函数,合理整合并运用在代码中,实现程序。
2.程序代码实现是个耐性,细心的过程,写完一段,调试一段,遇到问题,分析问题,解决问题,事半功倍。
3.提高了动手能力。
课程设计虽然技术了,C++是一块很大的领域,还有很多地方和知识点不了解,要我们不断地学习,探索,思考,提高我们的能力。
八、源代码:
#include<
>
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=;
本月销售额:
sales;
salary=sales*commrate;
销售员"
~salesman(){};
classmanager:
floatmonthlypay;
manger()
monthlypay=8000;
salary=8000;
经理"
本月工资:
~manager(){};
classsalesmanager:
publicmanager,publicsalesman
salemanager()
monthlypay=5000;
所管部门月销售量"
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;
("
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退出系统)"
();
}
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)
无销售经理信息,请确认!
销售经理信息如下:
voidsearchpay()//对应员工工资分布情况查询
intflag;
请选择要职业,给出对应的分布情况"
销售员,2:
兼职技术人员3:
经理4:
销售经理,请选择"
switch(flag)