2

私は入門 C++ コースの学生です。過去の課題の 1 つで、分数を追加する簡単なプログラムを作成する必要がありました。それぞれの新しいラボは、同じプログラムを作成するために学んだ新しいスキルのアプリケーションにすぎません。ここで、クラス定義のオブジェクトを使用して作成する必要があります。

教授が教えてくれた乗算の例を使ってツールを作成した後、最終的に分数を適切に追加するコードを取得しました。

#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入力に関しては、たとえば (eg) (整数として宣言されているnumer)の何が問題になっていますか? もちろん、それらをメソッドなどdenomに渡すこともできます(当然、ユーザー入力を読み取る前にプロンプ​​トを表示することもできます)。Initstd::cout

于 2010-07-01T04:26:15.220 に答える
1

read fromcinと 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();
于 2010-07-01T04:27:29.680 に答える