0

私は仕事で忙しく、完璧に動作するコードを書きましたが、まだ準備ができていません。私が理解できるのは、クラスで配列を使用する方法です。または、配列内のアイテムを取得および設定する方法と、ユーザーにマークを求めるプロンプトを表示するループをどこに置くか。

そこで、配列に格納されている3つの課題の課題番号とマークを入力してから、課題とマークを出力するようにユーザーに促したいと思います。ばかげているように聞こえるかもしれませんが、クラス内の配列を理解するのに役立ちます。

私のクラスはここにある外部ファイルにあります

    #ifndef ASSIGNMENTS_H_INCLUDED
#define ASSIGNMENTS_H_INCLUDED
#include<iostream>
using namespace std;

    class assignments
    {
        public:
            assignments(); // default constructor

            void setAssNum(int k); // mutator
            int getAssNum(); // accessor
            void setAssMark(double m); // mutator
            double getAssMark(); // accessor
        private:
            int AssNum;
            double AssMark;
    };



    assignments::assignments()
    {
        AssNum = 0;
        AssMark = 0.0;
    }

    void assignments::setAssNum(int k)
    {
        AssNum = k;
    }
    void assignments::setAssMark(double m)
    {
        AssMark = m;
    }
    int assignments::getAssNum()
    {
        return AssNum;
    }
        double assignments::getAssMark()
    {
        return AssMark;
    }

#endif // ASSIGNMENTS_H_INCLUDED

そしてメインはこちら

int main()
{
    int AssNum;
    double AssMark;
assignments c;

cout <<"Enter Assignment Number: ";
cin >> AssNum;
cout <<"Enter Assignment Mark in Percentage: ";
cin >> AssMark;

        c.setAssNum(AssNum);
        c.setAssMark(AssMark);

        cout <<"The Mark for assignment "<< c.getAssNum() <<" is: " << c.getAssMark()<<"%";


    }

このコンテキストで配列を使用する方法を明確にしたいだけです。

ありがとうございました

4

1 に答える 1

0

最初に、1 つの課題を含むクラスを作成します。これは、現在課題クラスにあるのと少し似ています。assignment代わりに呼び出すだけです。

次に、割り当て用のコンテナーを作成します。これには、割り当てを含むベクターまたは配列が含まれます。例えば

class assignments
{
public:
  assignments() : m_assignments( new assignment[100] )
  {}
  ~assignments() { delete [] m_assignments; }
private:
  assignment* m_assignments;
};

std::vectorseeを使用する方が良い#include <vector>

次に、配列にアクセスするためのパブリック メソッドを追加する必要があります。

assignment getAssignment(int i);
void setAssignment(int i, const assignment& ass); 

例えば

于 2013-09-23T12:37:55.593 に答える