2

我是 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,我将非常感激!)

4

2 回答 2

4

重命名您的Multi方法Add将避免很多潜在的混淆,强烈推荐。

至于输入,例如(例如)std::cin >> numer >> denom(使用numerdenom声明为整数)有什么问题?然后当然可以将它们传递给Init方法等(自然,您可能还希望std::cout在阅读用户输入之前进行提示)。

于 2010-07-01T04:26:15.220 回答
1

你有几个选项,读取cin和初始化:

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();
于 2010-07-01T04:27:29.680 回答