C++面向对象程序设计50道编程题(第01题)
摘要:C++程序设计实习是为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析问题和解决问题的能力,提高学生运用所学知识解决实际问题的能力。
本专辑为编程入门者、高校计算机软件专业学习或复习提供C++程序设计题库。
读者请先独立思考哦,再与参考程序进行比对检查。
一、问题描述
二、考察内容
基本面向对象概念,如何创建类、对象,对公有数据成员和公有成员函数的理解,以及简单的数学运算。
三、难度等级
难度等级:★★☆☆☆
四、参考程序
#include<iostream.h>
class Fract{
int num,den;
public:
Fract(int a=0,int b=1){num=a;den=b;}
int ged(int,int);
Fract add(Fract);
void show(){cout<<num<<'/'<<den<<endl;}
};
int Fract::ged(int m,int n) {
int k;
if(m>n)k=n;
else k=m;
for(;k>0;k--)
if(m%k==0&&n%k==0)
break;
return k;
}
Fract Fract::add(Fract f) {
Fract ff;
int v;
v=ged(den,f.den);
v=den*f.den/v;
num=v/den*num;
f.num=v/f.den*f.num;
ff.num=num+f.num;
ff.den=v;
v=ged(ff.num,ff.den);
ff.num/=v;
ff.den/=v;
return ff;
}
void main(){
Fract f1(1,5),f2(7,20),f3; //注15
f3=f1.add(f2);
f3.show();
}
五、心得感受
可以在评论处写下思考和编程此题的感受