文档详情

12软件工程面向对象程序设计(C++)实验3多态性指导书.doc

发布:2017-06-04约3.35千字共4页下载文档
文本预览下载声明
实验3 多态性 3.1实验目的和要求 (1) 了解多态性的概念。 (2) 掌握运算符重载的基本方法。 (3) 掌握虚函数的定义和使用方法。 (4) 掌握纯虚函数和抽象类的概念和用法。 3.2实验内容与步骤 一、构建一个复数类Complex,试对下列几个运算符进行重载:++,=,!=,+,-,==,其中要求要有成员重载形式和友元重载形式,而且,++运算符要求实现先加和后加两种形式。: class complex { public: 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 iostream using namespace std; class Fraction{ int 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(Fraction f){return !(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);
显示全部
相似文档