类与对象报告.docx
- 文档编号:4230966
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:17
- 大小:62.84KB
类与对象报告.docx
《类与对象报告.docx》由会员分享,可在线阅读,更多相关《类与对象报告.docx(17页珍藏版)》请在冰豆网上搜索。
类与对象报告
北京建筑大学
理学院《面向对象程序设计》课程实验报告
课程名称《面向对象程序设计》实验名称类与对象实验地点日期____________
姓名班级学号指导教师成绩
【实验目的和要求】
实验目的:
1、熟悉类的定义及使用;
2、熟悉构造函数、析构函数及执行过程;
3、熟悉类的各种调用方法(类作为对象成员、动态调用、对象数组、const对象)。
实验要求:
(1)类的定义中必须包含构造函数和析构函数;
(2)录入数据每类人员不少于5人;
(3)主函数中包含对象的动态调用;
【实验内容】
某公司有四类员工,现在需要存储这些员工的姓名、编号、工龄,计算总工资并显示姓名、编号和总工资信息。
对每类员工工资的计算方法不同。
下表是这些员工的工资计算办法,工龄作为已知量从键盘输入。
如经理的总工资=固定工资+工龄工资,而工龄工资=工龄*年增加量。
员工工资计算方法
人员类别
固定工资
计时(元/小时)
工龄年增加(元)
销售提成
经理
有
无
50
无
工人
有
100
50
无
销售经理
有
无
50
5%
销售员
无
无
50
5%
四类员工的信息存在四个对象数组中。
要求通过本系统实现以下功能:
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
#include
#include
usingnamespacestd;
classbasic
{
protected:
charname[20];
intnumber;
intold;
public:
staticintCount;
Get_b()
{
cout<<"姓名:
";
cin>>name;
cout<<"工号:
";
cin>>number;
cout<<"工龄:
";
cin>>old;
Count++;
}
intNum(){returnnumber;}
};
intbasic:
:
Count=0;
classManager:
publicbasic
{
protected:
intzSalary,guSalary,tSalary;
public:
staticintCount1;
voidGet_M()
{
cout<<"固定工资:
";
cin>>guSalary;
Count1++;
}
voiddisplay_M()
{
tSalary=50*old;
zSalary=guSalary+tSalary;
cout<<"员工姓名:
"< "< "< "< "< } }; intManager: : Count1=0; classWorker: publicbasic { protected: intzSalary,guSalary,hour,jSalary,tSalary; public: staticintCount2; voidGet_W() { cout<<"工作时间: "; cin>>hour; cout<<"固定工资: "; cin>>guSalary; Count2++; } voiddisplay_W() { jSalary=100*hour; tSalary=50*old; zSalary=guSalary+jSalary+tSalary; cout<<"员工姓名: "< "< "< "< "< "< "< } }; intWorker: : Count2=0; classSalesManager: publicbasic { protected: doublezSalary,guSalary,tSalary,xSalary,x; public: staticintCount3; voidGet_SM() { cout<<"固定工资: "; cin>>guSalary; cout<<"销售额: "; cin>>x; Count3++; } voiddisplay_SM() { xSalary=0.05*x; tSalary=50*old; zSalary=guSalary+tSalary+xSalary; cout<<"员工姓名: "< "< "< "< "< "< "< } }; intSalesManager: : Count3=0; classSales: publicbasic { protected: doublezSalary,tSalary,xSalary,x; public: staticintCount4; voidGet_S() { cout<<"销售额: "; cin>>x; Count4++; } voiddisplay_S() { xSalary=0.05*x; tSalary=50*old; zSalary=tSalary+xSalary; cout<<"员工姓名: "< "< "< "< "< } }; intSales: : Count4=0; voidshurujingli() { ManagermyManager[10]; Manager*myManage=myManager; cout<<"请录入经理基本信息: "< for(;myManage<(myManager+10);myManage++) { myManage->Get_b(); myManager->Get_M(); cout<<"是否继续? : "<<"0: 继续1: 停止"< inta1; cout<<"请输入"; cin>>a1; if(a1==1)break; } cout<<"经理有"< : Count1<<"名"< cout< "< intnumber1; cout<<"请录入员工工号: "; cin>>number1; for(;myManage<(myManager+Manager: : Count1);myManage++) { if(number1==myManage->Num()) myManage->display_M(); } } voidshuruxiaoshou() { SalesManagermySalesManager[10]; SalesManager*mySalesManage=mySalesManager; cout<<"请录入销售经理基本信息: "< for(;mySalesManage<(mySalesManage+10);mySalesManage++) { mySalesManage->Get_b(); mySalesManage->Get_SM(); cout<<"是否继续? : "<<"0: 继续1: 停止"< inta3; cout<<"请输入"; cin>>a3; if(a3==1)break; } cout<<"销售经理有"< : Count3<<"名"< cout< "< intnumber3; cout<<"请录入员工工号: "; cin>>number3; for(;mySalesManage<(mySalesManager+SalesManager: : Count3);mySalesManage++) { if(number3==mySalesManage->Num()) mySalesManage->display_SM(); } } voidshurugongren() { WorkermyWorker[10]; Worker*myWorke=myWorker; cout<<"请录入工人基本信息: "< for(;myWorke<(myWorker+10);myWorke++) { myWorke->Get_b(); myWorke->Get_W(); cout<<"是否继续? : "<<"0: 继续1: 停止"< inta2; cout<<"请输入"; cin>>a2; if(a2==1)break; } cout<<"工人有"< : Count2<<"名"< cout< "< intnumber2; cout<<"请录入员工工号: "; cin>>number2; for(;myWorke<(myWorker+Worker: : Count2);myWorke++) { if(number2==myWorke->Num()) myWorke->display_W(); } } voidshuruxiaoshouyuan() { SalesmySales[10]; Sales*mySale=mySales; cout<<"请录入销售员基本信息: "< for(;mySale<(mySales+10);mySale++) { mySale->Get_b(); mySale->Get_S(); cout<<"是否继续? : "<<"0: 继续1: 停止"< inta4; cout<<"请输入"; cin>>a4; if(a4==1)break; } cout<<"销售员有"< : Count4<<"名"< cout< "< intnumber4; cout<<"请录入员工工号: "; cin>>number4; for(;mySale<(mySales+Sales: : Count4);mySale++) { if(number4==mySale->Num()) mySale->display_S(); } } voidzongshu() { cout<<"员工总数为: "< : Count<<"人"< } intmain() { while (1) { system("cls"); cout<<"**************************公司管理系统**************************\n"; cout<<"1.录入并查询员工基本信息"< cout<<"请选择: "; inta; cin>>a; if(a==1) { system("cls"); cout<<"**************************输入与查询基本信息**************************\n"; cout<<"1.经理信息录入并查询"< intb; cout<<"请选择: "; cin>>b; if(b==1) { system("cls"); cout<<"**************************经理基本信息输入并查询**************************\n"; shurujingli(); cout< 0.是1.否"< intf1; cin>>f1; if(f1==0) system("cls"); if(f1==1) exit(0); } if(b==2) { system("cls"); cout<<"**************************销售经理基本信息输入并查询**************************\n"; shuruxiaoshou(); cout< 0.是1.否"< intf2; cin>>f2; if(f2==0) system("cls"); if(f2==1) exit(0); } if(b==3) { system("cls"); cout<<"**************************工人基本信息输入并查询**************************\n"; shurugongren(); cout< 0.是1.否"< intf3; cin>>f3; if(f3==0) system("cls"); if(f3==1) exit(0); } if(b==4) { system("cls"); cout<<"**************************销售员基本信息输入并查询**************************\n"; shuruxiaoshouyuan(); cout< 0.是1.否"< intf4; cin>>f4; if(f4==0) system("cls"); if(f4==1) exit(0); } if(b==5) { system("cls"); zongshu(); cout< 0.是1.否"< intf5; cin>>f5; if(f5==0) system("cls"); if(f5==1) exit(0); } elseif(b! =1&&b! =2&&b! =3&&b! =4&&b! =5) { cout<<"错误"< cout< 0.是1.否"< intf6; cin>>f6; if(f6==0) system("cls"); if(f6==1) exit(0); } } if(a==2) exit(0); } system("cls"); return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 对象 报告