



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验3 多态性3.1实验目的和要求(1) 了解多态性的概念。(2) 掌握运算符重载的基本方法。(3) 掌握虚函数的定义和使用方法。(4) 掌握纯虚函数和抽象类的概念和用法。3.2实验内容与步骤一、构建一个复数类Complex,试对下列几个运算符进行重载:+,=,!=,+,-,=,其中要求要有成员重载形式和友元重载形式,而且,+运算符要求实现先加和后加两种形式。该类定义原型说明:class complexpublic:complex(double r=0,double i=0);complex &operator +(complex &c);complex operator -(complex &c);complex operator *(complex &c);friend complex operator /(complex &c1,complex &c2);friend int operator =(complex &c1,complex &c2);friend int operator !=(complex &c1,complex &c2);/friend complex operator+(complex &c);complex operator+();complex operator+(int);void disp();private:double real; double imag;二、建立一个分数类Fraction。分数类的数据成员包括分子和分母。成员函数包括构造函数、复制构造函数。构造函数要对初始化数据进行必要的检查(分母不能为0)。将分数显示成 “a/b”形式的输出函数。成员函数包括约分、通分、加、减、乘、除、求倒数、比较大小、显示和输入。完成以上所有成员函数并在主函数中进行检验。#include using namespace std;class Fractionint numerator,denominator;int common_divisor();/计算最大公约数void contracted();/分数化简public: Fraction(int=0,int=1);Fraction(Fraction&);Fraction operator +(Fraction);Fraction operator -(Fraction);Fraction operator *(Fraction);Fraction operator /(Fraction);bool operator=(Fraction);bool operator=(Fraction);bool operator=(Fraction);bool operator=(f);bool operator(Fraction f)return !(operator=(f);bool operator!=(Fraction f)return !(operator=(f);Fraction Updown();void Set(int=0,int=1);void disp()coutfraction= numerator/denominatorendl;三、编写一个程序,用于进行集合的并、差和交运算。例如输入整数集合9 5 4 3 6 7和2 4 6 9 ,计算出它们进行集合的并、差和交运算后的结果。【提示】(1)可用以下表达式实现整数集合的基本运算: s1+s2 两个整数集合的并运算s1-s2 两个整数集合的差运算s1*s2 两个整数集合的交运算(2)参考以下Set类的框架,用于完成集合基本运算所需的各项功能。 class set public: set:set(); void set:input(int d); int set:length(); int set:getd(int i); void set:disp(); set set:operator+(set s1); set set:operator-(set s1); set set:operator*(set s1); set set:operator=(set s1); protected: int len; int sMAX; ;四、定义描述字符串的类String,编写字符串运算符“+=”的重载函数,使运算符“+=”用于两个字符串联接操作,即用str1+=str2实现字符串函数strcat(str1,str2)的操作功能。要求分别用成员函数与友元函数编写运算符重载函数。在主函数中定义字符串对象 s1(software and )与s2(hardware),进行s1+=s2的字符串联接,并输出s1、s2的值。五、编写程序,定义抽象基类Shape(形状),由它派生出3个派生类: Circle(圆形)、Rectangle(矩形)和Square (正方形),用函数函数ShowArea()分别显示各种图形的面积,最后还要显示所有图形的总面积。要求用基类指针数组,使它的每一个元素指向一一个派生类对象。3.3 实验示例:用抽象类实现的菜单程序。 # include class Menu public:virtual void action ( ) = 0;;class item1: public Menupublic:virtual void action ()cout 新建文件 endl;;class item2: public Menupublic :virtual void action ( )cout 打开文件 endl;;class item3: public Menupublic:virtual void action ( )cout 保存文件 endl;;class item4: public Menupublic:virtual void action() cout关闭文件 endl;void main() int select;Menu * Fptr4;FptrO = new item1;Fptr1 = new item2;Fptr2 = new item3;Fptr3 = new item4;Do cout 1 new file endl;cout 2 open file endl;cout 3 save file end
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业文化体验旅游创新创业项目商业计划书
- 金融合规服务创新创业项目商业计划书
- 汽车客户关系管理系统升级创新创业项目商业计划书
- 2025年共青城市市级机关公开遴选考试笔试试题(含答案)
- 消费者购物体验研究创新创业项目商业计划书
- 编程乐园探险记创新创业项目商业计划书
- 智能化烹饪菜谱创新工具创新创业项目商业计划书
- 2025年数字艺术市场创作与交易政策环境分析报告
- 2025年文化创意产品创新研发资金申请策略研究报告
- 2025年心血管疾病心血管疾病心血管疾病患者教育项目市场前景报告
- T/CATCM 026-2023中药液体废弃物循环利用指导原则
- 低空经济培训项目工程方案
- 中国冷冻榴莲行业市场前景预测及投资价值评估分析报告
- 2025至2030年中国眼科手术器械行业投资前景及策略咨询报告
- 人教九年级英语上册Unit 7《单元写作》课件
- 外贸英语专业课件
- 心血管系统疾病相关专业医疗质量控制指标(2021年版)
- 苏教版六年级上册数学教案:19分数与分数相乘及分数乘法练习
- 2025学校食堂食品安全培训
- 生产安全事故应急预案评估报告
- 人教版(2024)七年级下册英语各单元必会重点短语和句型默写版(含答案)
评论
0/150
提交评论