我是C ++入门课程的学生。对于我们过去的任务之一,我们必须创建一个简单的程序来添加分数。每个新实验室只是学习制作相同课程的新技能的应用。现在我需要使用类定义中的对象创建一个。
使用我教授给我们的乘法示例加工后,我终于得到了正确添加分数的代码。
#include <iostream>
using namespace std;
class Fraction
{
private:
float numer;
float denom;
public:
void Init(float n, float d);
void Multi(Fraction *, Fraction *);
void Print();
Fraction()
{
numer = 0.0;
denom = 0.0;
}
void setNumer( float n ) { numer = n; }
void setDenom( float d ) { denom = d; }
float getNumer() { return numer; }
float getDenom() { return denom; }
};
main()
{
Fraction x;
Fraction y;
Fraction f;
x.Init( 1.0, 4.0 );
y.Init( 3.0, 4.0 );
f.Init( 0.0, 0.0 );
f.Multi( &x, &y );
x.Print();
y.Print();
f.Print();
}
void Fraction::Init(float n, float d)
{
numer = n;
denom = d;
}
void Fraction::Multi(Fraction *x, Fraction *y)
{
numer = ( x->numer*y->denom) + (x->denom*y->numer);
denom = ( x->denom*y->denom);
}
void Fraction::Print()
{
cout << "Fraction:" << endl;
cout << " Numerator: " << numer << endl;
cout << " Denominator: " << denom << endl;
}
Stackoverflow切断了我的代码。 :/(不太清楚为什么。我对网站不熟悉)
无论如何,我真正想要做的就是设置这个程序,这样就可以根据用户输入x和y分数。在我过去的作业中,我刚刚使用了cin和cout命令,但现在不知道该怎么做。一旦我明白了,我知道我可以让它正确地减少分数并正确显示,但我不知道如何输入。
有没有人有任何建议? (或者如果你能指引我到一个拥有cplusplus.com等更多信息的网站,我会非常感激!)
答案 0 :(得分:4)
重命名Multi
方法Add
可以避免很多潜在的混淆,强烈建议。
至于输入,例如,std::cin >> numer >> denom
(以numer
和denom
声明为整数)有什么问题?那么你当然可以将它们传递给Init
方法等。
(您可能还希望在阅读用户输入之前在std::cout
上进行提示,自然而然)。
答案 1 :(得分:1)
您有几个选项,请从cin
和init:
float n, d;
cout << "Enter numerator: " << endl;
cin >> n;
cout << "Enter denominator: " << endl;
cin >> d;
x.Init(n, d);
另一个更棘手的选择是允许直接访问分子和分母成员(这不适用于您的Init
函数):
class Fraction {
public:
// other stuff ...
float &numerator() { return numer; }
float &denominator() { return denom; }
/// other stuff ...
}
cout << "Enter numerator: " << endl;
cin >> x.numerator();
cout << "Enter denominator: " << endl;
cin >> x.denominator();