类与对象报告Word格式文档下载.docx
《类与对象报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《类与对象报告Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
四类员工的信息存在四个对象数组中。
要求通过本系统实现以下功能:
1)完成添加员工的基本信息;
2)根据员工编号计算、查询其工资情况;
3)员工信息的显示;
4)能够显示员工总人数。
【实验步骤】
1.定义类basic,属性包括员工姓名,工号,工龄。
2.分别定义Manager,Worker,SalesManager,Sales四个类,将basic作为这四个类的基类,按照题目要求为其定义属性。
Get_函数和display_函数,分别用来输入员工属性和显示员工信息。
3.在类外定义shurugongren,shurujingli,shuruxiaoshou,shuruxiaoshouyuan这四个子函数,用来输入并显示员工信息。
4.在主函数中建立菜单,通过选择的方法调用子函数。
【实验结果】
1.进入主菜单,选择1
进入“输入与查询基本信息”菜单,选择1
进入“输入并查询经理基本信息”菜单,根据提示信息输入员工信息,并通过输入员工号来查询员工工资等信息
2.“工人信息录入并查询”,“销售经理信息录入并查询”,“销售员信息录入并查询”与“经理信息录入并查询”原理类似,不一一演示,现在输入5,查询员工总数。
3.选择2,退出公司管理系统。
【总结】
1.关于类与基类,主函数与子函数的调用有了更深刻的认识。
2.设置静态变量,统计员工总数,对静态这一概念更加清晰。
3.用到了指针的方法对对象进行动态调用,复习了指针的知识。
4.继承的方法,在不利用友元函数破坏其封装性的情况下,引用基类中的属性。
5.体会到了c++与c语言的不同之处,语言的精简之处。
【附录】
#include<
iostream>
stdlib.h>
string.h>
usingnamespacestd;
classbasic
{
protected:
charname[20];
intnumber;
intold;
public:
staticintCount;
Get_b()
{
cout<
<
"
姓名:
;
cin>
>
name;
工号:
number;
工龄:
old;
Count++;
}
intNum(){returnnumber;
}
};
intbasic:
:
Count=0;
classManager:
publicbasic
intzSalary,guSalary,tSalary;
staticintCount1;
voidGet_M()
固定工资:
guSalary;
Count1++;
voiddisplay_M()
tSalary=50*old;
zSalary=guSalary+tSalary;
员工姓名:
name<
endl<
员工工龄:
old<
guSalary<
工龄工资:
tSalary<
总工资:
zSalary<
endl;
intManager:
Count1=0;
classWorker:
intzSalary,guSalary,hour,jSalary,tSalary;
staticintCount2;
voidGet_W()
工作时间:
hour;
Count2++;
voiddisplay_W()
jSalary=100*hour;
zSalary=guSalary+jSalary+tSalary;
hour<
计时工资:
jSalary<
intWorker:
Count2=0;
classSalesManager:
doublezSalary,guSalary,tSalary,xSalary,x;
staticintCount3;
voidGet_SM()
销售额:
x;
Count3++;
voiddisplay_SM()
xSalary=0.05*x;
zSalary=guSalary+tSalary+xSalary;
x<
销售提成:
xSalary<
intSalesManager:
Count3=0;
classSales:
doublezSalary,tSalary,xSalary,x;
staticintCount4;
voidGet_S()
Count4++;
voiddisplay_S()
zSalary=tSalary+xSalary;
intSales:
Count4=0;
voidshurujingli()
ManagermyManager[10];
Manager*myManage=myManager;
cout<
请录入经理基本信息:
for(;
myManage<
(myManager+10);
myManage++)
{
myManage->
Get_b();
myManager->
Get_M();
是否继续?
:
0:
继续1:
停止"
inta1;
请输入"
cin>
a1;
if(a1==1)break;
经理有"
Manager:
Count1<
名"
查询经理基本信息:
intnumber1;
请录入员工工号:
number1;
(myManager+Manager:
Count1);
if(number1==myManage->
Num())
myManage->
display_M();
voidshuruxiaoshou()
SalesManagermySalesManager[10];
SalesManager*mySalesManage=mySalesManager;
请录入销售经理基本信息:
mySalesManage<
(mySalesManage+10);
mySalesManage++)
mySalesManage->
mySalesManage->
Get_SM();
inta3;
a3;
if(a3==1)break;
销售经理有"
SalesManager:
Count3<
查询销售经理基本信息:
intnumber3;
number3;
(mySalesManager+SalesManager:
Count3);
if(number3==mySalesManage->
mySalesManage->
display_SM();
voidshurugongren()
WorkermyWorker[10];
Worker*myWorke=myWorker;
请录入工人基本信息:
myWorke<
(myWorker+10);
myWorke++)
myWorke->
myWorke->
Get_W();
inta2;
a2;
if(a2==1)break;
工人有"
Worker:
Count2<
查询工人基本信息:
intnumber2;
number2;
(myWorker+Worker:
Count2);
if(number2==myWorke->
myWorke->
display_W();
voidshuruxiaoshouyuan()
SalesmySales[10];
Sales*mySale=mySales;
请录入销售员基本信息:
mySale<
(mySales+10);
mySale++)
mySale->
mySale->
Get_S();
inta4;
a4;
if(a4==1)break;
销售员有"
Sales:
Count4<
查询销售员基本信息:
intnumber4;
number4;
(mySales+Sales:
Count4);
if(number4==mySale->
mySale->
display_S();
voidzongshu()
员工总数为:
basic:
Count<
人"
intmain()
while
(1)
system("
cls"
);
**************************公司管理系统**************************\n"
1.录入并查询员工基本信息"
2.退出系统"
请选择:
inta;
a;
if(a==1)
system("
**************************输入与查询基本信息**************************\n"
1.经理信息录入并查询"
2.销售经理信息录入并查询"
3.工人信息录入并查询"
4.销售员信息录入并查询"
5.统计员工总数"
intb;
b;
if(b==1)
{
system("
cout<
**************************经理基本信息输入并查询**************************\n"
shurujingli();
返回主菜单:
0.是1.否"
intf1;
cin>
f1;
if(f1==0)
system("
if(f1==1)
exit(0);
}
if(b==2)
**************************销售经理基本信息输入并查询**************************\n"
shuruxiaoshou();
intf2;
f2;
if(f2==0)
if(f2==1)
if(b==3)
**************************工人基本信息输入并查询**************************\n"
shurugongren();
intf3;
f3;
if(f3==0)
if(f3==1)
if(b==4)
**************************销售员基本信息输入并查询**************************\n"
shuruxiaoshouyuan();
intf4;
f4;
if(f4==0)
if(f4==1)
if(b==5)
zongshu();
intf5;
f5;
if(f5==0)
if(f5==1)
elseif(b!
=1&
&
b!
=2&
=3&
=4&
=5)
错误"
intf6;
f6;
if(f6==0)
if(f6==1)
if(a==2)
exit(0);
return0;