我正在开发一个项目,它在头文件中定义了一个类(Time),目标是在我的main函数中使用该类来确定两次之间的差异。我已经解决了这个问题,但是我无法理解使用已为我定义的类并在main中使用它的访问器函数的概念。
我将发布标题以及我到目前为止所做的事情,希望有人可以澄清我需要做什么,因为我理解目标以及我需要做些什么来完成它但我似乎无法将其转化为可用的代码...希望有人能够比我自己的老师和我的文本更好地理解为像我这样的新手程序员。
部首:
#ifndef CCC_TIME_H
#define CCC_TIME_H
/**
A class that describes a time of day
(between 00:00:00 and 23:59:59)
*/
class Time
{
public:
/**
Constructs a time of day.
@param hour the hours
@param min the minutes
@param sec the seconds
*/
Time(int hour, int min, int sec);
/**
Constructs a Time object that is set to
the time at which the constructor executes.
*/
Time();
/**
Gets the hours of this time.
@return the hours
*/
int get_hours() const;
/**
Gets the minutes of this time.
@return the minutes
*/
int get_minutes() const;
/**
Gets the seconds of this time.
@return the seconds
*/
int get_seconds() const;
/**
Computes the seconds between this time and another.
@param t the other time
@return the number of seconds between this time and t
*/
int seconds_from(Time t) const;
/**
Adds a number of seconds to this time.
@param s the number of seconds to add
*/
void add_seconds(int s);
private:
int time_in_secs;
};
#endif
___________________
using namespace std;
int main()
{
int t;
string x;
cout<< "This program will test your typing speed."<< endl;
cout<< "Type the following:"<<endl;
cout<<" "<<endl;
cout<< "The quick brown fox jumped over the lazy dog"<< endl;
Time startTime;
getline(cin, x, '\n');
if(x == "The quick brown fox jumped over the lazy dog")
{
Time endTime;
int durationInSeconds = endTime.seconds_from(startTime);
t = durationInSeconds;
}
else{cout<<"Invalid text entered";}
cout<<"You finished in: " << t << "seconds." endl;
system ("pause");
return 0;
}
答案 0 :(得分:1)
我对你的Time实例的对象声明有些麻烦,我收集了。我承认C ++语法有时会让我感到困惑,但我认为你需要用void Time(int hour, int min, int sec);
替换Time startTime;
,并用time_t now();
替换Time stopTime;
。
然后执行int durationInSeconds = stopTime.seconds_from(startTime);
并将durationInSeconds报告为输入时间。
答案 1 :(得分:0)
好的,如果我理解你的问题,你应该做的是在c类的顶部添加一个包含,所以在这种情况下你会添加
#include "cccTime.h"
(或者无论文件名是什么,请使用“”,而不是像通常用于包含的&lt;&gt;)
然后你可以像往常一样调用方法
答案 2 :(得分:0)
你不需要知道现在几点。只需使用默认构造函数。默认构造函数“构造一个Time对象,该对象设置为构造函数执行的时间。”这样可以很容易地计算出需要多长时间:
Time start_time;
do_lots_of_stuff ();
Time end_time;
现在,您可以使用end_time.seconds_from(start_time)
来确定从开始到结束所用的时间。
答案 3 :(得分:0)
#include<iostream>
#include<string>
#include "ccc_time.h"
using namespace std;
int main()
{
//Time start_time;
string x;
const string SAMPLE = "The quick brown fox jumped over the lazy dog";
cout<< "This program will test your typing speed."<< endl;
cout<< "Type the following:"<<endl;
cout<<" "<<endl;
cout<< SAMPLE << endl;
getline(cin, x, '\n');
//Time end_time;
if(x.compare(SAMPLE) == 0)
{
//int res = 0;
//res = end_time.seconds_from(start_time);
//cout << res << endl;
//return res;
} else {
cout << "Invalid text entered" << endl;
}
return 0;
}
我是对的吗?