付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、浙江理工大学信息学院面向对象程序设计实验报告实验名称:类的多态性的实现学时安排:3实验类别:设计性实验实验要求:1人1组学号:姓名:一、实验目的1 .理解重载运算符的意义。2 .掌握使用成员函数、友员函数重载运算符的特点。3 .掌握重载运算符函数的调用方法。4 .掌握动态联编的概念。5 .掌握虚函数和纯虚函数的使用方法。二、实验原理介绍设计性实验具体原理请见实验内容和步骤实现对抽象类的继承,通过operator函数调用的形式,实现运算符的重载三、实验设备介绍软件需求:Windows或Linux下的C+编译器硬件需求:对于硬件方面的要求,建议配置是PentiumIII450以上的CPU处理器,6
2、4MB以上的内存,200MB的自由硬盘空间、CD-ROM驱动器、能支持24位真彩色的显示卡、彩色显示器、打印机。四、实验内容某公司的员工有经理Manager.技术人员Technicist和营销人员SalesPerson他们的薪金计算方法如下:经理按月计酬,方法是:基本工资+奖金;技术人员按月计酬,方法是:基本工资;营销人员按月计酬,方法是:基本工资+销售利润*5%。每类人员都有职工编号、姓名、性别、入职时间、职位、基本工资等数据;各类人员使用统一接口get_pay()计算各类人员白月薪,重载<<运算符实现员工信息的输出。其次,设计一个统计并输出该公司员工当月薪金情况的报表类Repo
3、rt,该类提供insert接口向Report类的容器中添加员工信息,并提供print接口用于展示以职位为单位的每个员工的职工编号、姓名、性别、入职时间以及当月该员工的薪酬,并统计出该职位员工薪酬的最高值和最低值。为了提供更方便的查找功能,请为Report类重载运算符,下标值为职位,能根据职位信息查找出所有符合该职位的员工。在主函数中对实现的类进行测试,首先,创建各类人员对象,通过Report类的insert接口向报表中添加这些人员信息,然后通过Report类的print接口输出当月员工薪酬情况报表。五程序清单#include<iostream>#include<vector&
4、gt;#include<string>usingnamespacestd;classDatepublic:inty,m,d;Date(intyy=0,intmm=0,intdd=0):y(yy),m(mm),d(dd)。friendistream&operator>>(istream&is,Date&p);friendostream&operator<<(ostream&os,Date&p);classEmployeeprotected:Datedate;stringemployee_number;string
5、employee_name;stringemployee_gender;stringemployee_position;doubleemployee_basic_money;doubleprize13;public:virtualdoublegetpay(intn)=0;Dateget_date()returndate;stringget_number()returnemployee_number;stringget_name()returnemployee_name;stringget_gender()returnemployee_gender;stringget_position()ret
6、urnemployee_position;doubleget_basic_money()returnemployee_basic_money;virtualvoidput(Dated,stringe_num,stringe_name,stringe_g,stringe_p,doublee_m,doublemoney13)=0;classManager:publicEmployeepublic:Manager(inta=0,intb=0,intc=0,doubled=-1)Datedate(a,b,c);employee_basic_money=d;for(inti=0;i<13;i+)p
7、rizei=0;voidput(Dated,stringe_num,stringe_name,stringe_g,stringe_p,doublee_m,doublemoney13);doublegetpay(intn);classTechnicist:publicEmployeepublic:Technicist(intp=-1,inta=0,intb=0,intc=0,intd=-1)Datedate(a,b,c);employee_basic_money=d;voidput(Dated,stringe_num,stringe_name,stringe_g,stringe_p,double
8、e_m,doublemoney13);doublegetpay(intn);classSalsePerson:publicEmployeepublic:SalsePerson(inta=0,intb=0,intc=0,intd=-1)Datedate(a,b,c);for(inti=0;i<13;i+)prizei=0;employee_basic_money=d;voidput(Dated,stringe_num,stringe_name,stringe_g,stringe_p,doublee_m,doublemoney13);doublegetpay(intn);classRepot
9、erprivate:vector<Employee*>v;vector<Employee*>:iteratorit;public:voidadd(Employee*p);voidprint(intn1,intn2);voidprint(intn);voidoperator(stringpos);#include"h1.h"istream&operator>>(istream&is,Date&p)is>>p.y>>p.m>>p.d;returnis;ostream&oper
10、ator<<ostream&os,Date&p)os<<p.y<<"/"<<p.m<<"/"<<p.d<<endl;returnos;)voidManager:put(Dated,stringe_num,stringe_name,stringe_g,stringe_p,doublee_m,doublemoney13)cout<<"M:put"<<endl;date=d;employee_number=e_num;
11、employee_name=e_name;employee_gender=e_g;employee_position=e_p;employee_basic_money=e_m;for(inti=1;i<13;i+)prizei=moneyi;doubleManager:getpay(intn)if(employee_basic_money=-1|n>12|n<=0)return-1;returnemployee_basic_money+prizen;voidTechnicist:put(Dated,stringe_num,stringe_name,stringe_g,stri
12、nge_p,doublee_m,doublemoney13)cout<<"T:put"<<endl;date=d;employee_number=e_num;employee_name=e_name;employee_gender=e_g;employee_position=e_p;employee_basic_money=e_m;for(inti=1;i<13;i+)prizei=moneyi;doubleTechnicist:getpay(intn)returnemployee_basic_money;)voidSalsePerson:pu
13、t(Dated,stringe_num,stringe_name,stringe_g,stringe_p,doublee_m,doublemoney13)cout<<"S:put"<<endl;date=d;employee_number=e_num;employee_name=e_name;employee_gender=e_g;employee_position=e_p;employee_basic_money=e_m;for(inti=1;i<13;i+)prizei=moneyi;doubleSalsePerson:getpay(int
14、n)if(employee_basic_money=-1)return-1;returnemployee_basic_money+prizen*0.05;voidRepoter:add(Employee*p)v.push_back(p);voidRepoter:print(intn1,intn2)inti=0;for(it=v.begin();it!=v.end();it+,i+)cout<<vi->get_number()<<endl;cout<<vi->get_name()<<endl;cout<<vi->get
15、_gender()<<endl;cout<<vi->get_date();cout<<vi->get_position()<<endl;doublesum=0;for(intj=n1;j<=n2;j+)sum+=vi->getpay(j);cout<<sum<<endl;)voidRepoter:print(intn)cout<<vn->get_number()<<endl;cout<<vn->get_name()<<endl;cout&l
16、t;<vn->get_gender()<<endl;cout<<vn->get_date();cout<<vn->get_position()<<endl;cout<<vn->get_basic_money()<<endl;)voidRepoter:operator(stringpos)inti=0;for(it=v.begin();it!=v.end();it+,i+)if(vi->get_position()=pos)print(i);cout<<endl;)#inclu
17、de"h1.h"intmain()Datedd;stringnumber;stringname;stringgender;stringposition;doublebasic_money;doublemoney13;Employee*p;Repoterre;/n为真时表示继续输入,为假时表示输入结束booln;/cnt用来记录总的人数intcnt=0;while(cin>>n&&n)/dd以年月日的形式输入cin>>dd>>number>>name>>gender>>position>>basic_money;for(inti=1;i<13;i+)cin>>moneyi;if(position="Manager")p=newManager;elseif(position="Technicist")p=newTechnicist;elsep=newSal
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商业物业节日活动策划方案
- 26年膀胱癌精准医疗循证证据解读
- 神经内科饮食健康教育
- 逃生急救教育
- 大学校园活动深度参与指南
- 2025年城市建筑光伏一体化的发展前景分析
- 课堂宣传教育实施框架
- 2025年城市复杂路况高精地图绘制难点解析
- 伍保护监护协议书
- 医疗纠纷与协议书
- 饲料质量培训课件
- 用药交代题文档
- 我的家乡湖南长沙宣传简介
- 北师大版一年级数学下册《捉迷藏》说课稿课件
- 高考英语高频词组+短语+固定搭配
- 王慧文清华大学《互联网产品管理课》
- 3206回撤作业规程
- 循证医学课件:临床实践指南的评价与应用
- (4.3.1)-4.3平面问题三角形单元刚度矩阵
- GB/T 15796-2011小麦赤霉病测报技术规范
- 橡胶工艺学06橡胶的共混与改性课件
评论
0/150
提交评论