《C++Ⅱ》试卷(№A03Ⅱa)
第1页共6页
计算机学院《C++Ⅱ》试卷
========================【注意事项】1.
严格遵守考场纪律,考试时间120分钟。2.
试卷共6页。答卷上必须填写参考人所属的学院名称、专业及本人姓名。3.
试题总分100分。所有作答必须按题号对应填写在答卷上,否则无效。4.考试结束,试卷、答卷和草稿纸必须完整无损地一起递交。
一、给出一个有理数类,实现有理数的加法运算。请按后列要求作答。
1.仔细、完整地阅读程序,对应题号填写注释。注释的内容包括两部分:1.本行的语句是
什么;2.简述其功能或特点。例如,注释可以这样写:“友员函数;重载加法运算符(+)。”(每小题1分,共10分)
#include
#include
#include
class Rational
{private:
int numerator,denominator;//(例)数据成员;表示一个有理数的分子、分母。int maxcommonFactor(int,int);
void simplify();
void DtoF(double,int&,int&);
public:
Rational(int n,int d=1);
Rational(double x=0);
~Rational();
void plus(const Rational&);
Rational operator +(const Rational&);//(例)公有成员函数;重载加法运算符(+)。
void showFraction();
operator double();
friend ostream &operator<<
(ostream &output,Rational &t);
};
2.对应题号把函数的定义补充完整。(每小题3分,共9分)
int Rational::maxcommonFactor(int a,int b)
{if(a%b==0)return b;
void Rational::simplify()
{int temp=maxcommonFactor(abs(numerator),abs(denominator));
if(temp==1)return;numerator/=temp;denominator/=temp;return;}
void Rational::DtoF(double x,int &n,int &d)