文档详情

C++基础 考试(标准).docx

发布:2017-12-17约7.09千字共7页下载文档
文本预览下载声明
【注意事项】 1. 严格遵守考场纪律,考试时间120分钟。 2. 试卷共6页。答卷上必须填写参考人所属的学院名称、专业及本人姓名。3. 试题总分100分。所有作答必须按题号对应填写在答卷上,否则无效。4. 考试结束,试卷、答卷和草稿纸必须完整无损地一起递交。一、给出一个有理数类,实现有理数的加法运算。请按后列要求作答。1.仔细、完整地阅读程序,对应题号填写注释。注释的内容包括两部分:1.本行的语句是什么;2.简述其功能或特点。例如,注释可以这样写:“友员函数;重载加法运算符(+)。”(每小题1分,共10 分)#includeiostream.h#includemath.h#includeiomanip.hclass Rational{ private:intnumerator,denominator; //(例)数据成员;表示一个有理数的分子、分母。intmaxcommonFactor(int,int); //(1) void simplify( ); //(2) voidDtoF(double,int,int); //(3) public:Rational(intn,int d=1); //(4) Rational(double x=0); //(5) ~Rational(); //(6) void plus(const Rational); //(7) Rational operator + (const Rational);//(例)公有成员函数;重载加法运算符(+)。voidshowFraction( ); //(8) operator double( ); //(9) friendostream operator //(10) (ostream output, Rational t);};2.对应题号把函数的定义补充完整。(每小题3分,共9 分)int Rational::maxcommonFactor(inta,int b) {if(a%b==0)return b; return (11) ;}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) {double s=fabs(x);d=1; while((s*d-int(s*d))1e-15)d*=10;n=int(x*d);}Rational::Rational(intn,int d) {if(d==0) {cout错误! 分母不能为0。有理数将置为0。endl; numerator=0; denominator=1;}else {(12) ; ;}simplify(); }Rational::Rational(double x) {DtoF(x,numerator,denominator);simplify();}Rational::~Rational(){}void Rational::plus(const Rational addend) {numerator=addend.numerator*denominator+addend.denominator*numerator;denominator*=addend.denominator;simplify();}Rational Rational::operator + (const Rational t) {Rational temp(0,1);temp.numerator=numerator*t.denominator+denominator*t.numerator;temp.denominator=denominator*t.denominator;temp.simplify(); return temp;}void Rational::showFraction() {if(numerator0 denominator0 || nume
显示全部
相似文档