3つのデータメンバーのそれぞれに対してsetメソッドを呼び出して、setメソッドによって設定された値を表示するにはどうすればよいですか?

ロブ

私は現在、C ++の宿題の紹介に取り組んでいますが、この最後の部分で立ち往生しているので、助けていただければ幸いです。

宿題の方向性は次のとおりです。

時間の値が0〜23の範囲にあることを確認してください。そうでない場合は、時間を1に設定します。
分の値が0〜59の範囲にあることを確認します。そうでない場合は、分を0に設定します。2番目の値が0〜59の範囲にある
ことを確認します。そうでない場合は、秒を0に設定します。

上記の値を使用して、データメンバーへの入力を検証するために、各データメンバーに集合関数を提供します。

また、各データメンバーにget関数を提供して、その値を取得します。

時間、分、秒をそれぞれコロンで区切って表示するメンバー関数displayTime()を提供します(例:3:45:29)。displayTimeは、get関数を使用してデータメンバーのデータを取得する必要があります。

次のように、クラスTimeの機能を示すテストプログラムを作成します。

1.時間、分、秒のプロンプトを表示します。

2.上記のプロンプトに応答して入力された値を渡すTimeオブジェクトを作成します。

3. displayTimeを呼び出して、「初期時間」を表示します。

4.時間、分、秒のプロンプトを再度入力し、3つのデータメンバーのそれぞれに対してsetメソッドを呼び出します。

5.もう一度displayTimeを呼び出して、「ModifiedTime」を表示します。

.cppファイルで始まるプロジェクトの現在のコード:

#include <iostream>

using namespace std;


class Time {
public:
//Time constructor
Time(int hour, int minute, int second)
{
    setTime(hour, minute, second);
}

void setTime(int input_hour, int input_minute, int input_second)
{
    setHour(input_hour);
    setMinute(input_minute);
    setSecond(input_second);
}

//set hour function
void setHour(int input_hour)
{
    if (input_hour >= 0 && input_hour < 24)
    {
        hour = input_hour;
    }
    else
        hour = 1;
}

//set minute function
void setMinute(int input_minute)
{
    if (input_minute >= 0 && input_minute < 60)
    {
        minute = input_minute;
    }
    else
        minute = 0;
}

//set second function
void setSecond(int input_second)
{
    if (input_second >= 0 && input_second < 60)
    {
        second = input_second;
    }
    else
        second = 0;
}


//get functions
int getHour()
{
    return hour;
}

int getMinute()
{
    return minute;
}

int getSecond()
{
    return second;
}

// display function
void displayTime()
{
    cout << "Time is " << hour << ":" << minute << ":" << second;
} 

//private data members
private:
    int hour;
    int minute;
    int second;
};

今.hファイル:

#include <iostream>
#include "Time.h"

using namespace std;

int main()
{


    int hour, minute, second;

    cout << "Enter the hour: ";
    cin >> hour;

    cout << "Enter the minute: ";
    cin >> minute;

    cout << "Enter the second: ";
    cin >> second;

    Time printTime{ hour, minute, second };

    cout << "Time is " << printTime.getHour() << ":" << printTime.getMinute() << ":" << printTime.getSecond();

    cout << "\n\nEnter the hour: ";
    cin >> hour;

    cout << "Enter the minute: ";
    cin >> minute;

    cout << "Enter the second: ";
    cin >> second;

    cout << "Time is " << setTime();


    //the two lines to keep my debugger from crashing
    std::cin.ignore();
    std::cin.get();

}

私は1〜3の問題を解決しましたが、そのステップ4と5は私を失望させます。ここで何をしているのか完全にはわかりません。私は何が起こることになっているのか理解しています。もう一度ユーザーにデータの入力を求め、設定された関数を介して「変更された時間」である1:0:0を吐き出すことになっていますが(私は思う)、正しくコーディングする方法がわかりません。とてもシンプルな感じがしますが、やはりどうしたらいいのかわかりません。"coutの最後から3行目<<" Time is "<< setTime();明らかに機能しません。プログラミング方法を学んだのはこれが初めてなので、どうすればよいか完全にはわかりません。とにかく、すべての助けに感謝します。

ドンプサバンス

私が理解できることから、あなたは以前に作成した集合関数を使用して時間を変更する必要があります。このようなもの:(未テスト)

編集:それをprintTime.displayTime();使用することがあります!

#include <iostream>
#include <fstream>
#include <string> 

using namespace std;

int main(){

    int hour, minute, second;

    cout << "Enter the hour: ";
    cin >> hour;

    cout << "Enter the minute: ";
    cin >> minute;

    cout << "Enter the second: ";
    cin >> second;

    Time printTime{ hour, minute, second };

    printTime.displayTime();

    cout << "\n\nEnter the hour: ";
    cin >> hour;

    //Change the hour, minutes, and seconds - then display again
    printTime.setHour(hour);

    cout << "Enter the minute: ";
    cin >> minute;

    printTime.setMinute(hour);

    cout << "Enter the second: ";
    cin >> second;

    printTime.setSecond(hour);

    //Modified time
    printTime.displayTime();

}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ