我如何调用我的3个数据成员中每个人的设置方法,然后显示由我的设置方法设置的值



我现在正在研究C 家庭作业的介绍,只是陷入了最后一点,非常感谢您的帮助。

作业的方向是:

确保小时值在0 - 23范围内;如果不是这样,将小时设置为1。
确保分钟值在0 - 59范围内;如果不是,请将分钟设置为0。
确保第二个值在0 - 59范围内;如果不是,请设置第二到0。

使用上面的值为每个数据成员提供一个设置功能,以验证进入数据成员的输入。

另外,为每个数据成员提供了一个获取功能以检索其值。

提供一个成员函数displiontime(),显示小时,分钟和第二个,每个小时,每个都被结肠隔开(示例:3:45:29)。显示时间应使用GET函数来检索数据成员中的数据。

编写一个测试程序,该程序演示了课堂时间的功能如下:

1. prompt for小时,分钟和第二个。

2.创建一个时间对象,传递对上述提示的值输入的值。

3.示出显示时间显示"初始时间"。

4.再次提交一个小时,分钟和第二个,并调用3个数据成员中的每一个。

5.5点显示时间再次显示"修改时间"。

我的项目当前代码以.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 << "nnEnter 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&lt;&lt;" time是"&lt;&lt; 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 << "nnEnter 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();
}

最新更新