C++中Time类的类声明及成员函数的实现。
题目:“试写出Time类的类声明及成员函数的实现。要求:在Time类中包含3个数据分量,即时(hour)、分(minute)和秒(second)。在类的成员函数中应包括存...
题目:“试写出Time类的类声明及成员函数的实现。要求:在Time类中包含3个数据分量,即时(hour)、分(minute)和秒(second)。在类的成员函数中应包括存(用set开头)、取(用get开头)各个数据分量和完整时间的操作;按上下午各12小时或按24小时打印时间的函数;有默认值的构造函数等。默认值以0时0分0秒为准。”本人刚刚接触C++的类,有会的请予以指导,多谢。
展开
3个回答
展开全部
#include <iostream>
#include <iomanip>
using std::cout;
using std::endl;
using std::setfill;
using std::setw;
/**
* @class Time.
* @brief 时间类.
* 时间类,包含简单的设置时间,打印时间的功能.
*/
class Time
{
public:
/**
* @function Time
* @brief Time类的构造函数.
* @param int h - 要设置的小时数,默认为0
* @param int m - 要设置的分钟数,默认为0
* @param int s - 要设置的秒数,默认为0
*/
Time(int h = 0, int m = 0, int s = 0)
{
setTime(h, m, s);
}
/**
* @function getHour
* @brief 获取小时数.
* @return 小时数.
*/
int getHour() const
{
return hour;
}
/**
* @function getMinute
* @brief 获取分钟数.
* @return 分钟数.
*/
int getMinute() const
{
return minute;
}
/**
* @function getSecond
* @brief 获取秒数.
* @return 秒数.
*/
int getSecond() const
{
return second;
}
/**
* @function setTime
* @brief 设置时间.
* @param int h - 要设置的小时数,若小时数不正确则设置为0.
* @param int m - 要设置的分钟数,若分钟数不正确则设置为0.
* @param int s - 要设置的秒数,若秒数不正确则设置为0.
*/
void setTime(int h, int m, int s)
{
setHour(h);
setMinute(m);
setSecond(s);
}
/**
* @function setHour
* @brief 设置小时数.
* @param int h - 要设置的小时数,若小时数不正确则设置为0.
*/
void setHour(int h)
{
if (h < 0 || h > 23) {
cout << "Invalid hour value" << endl;
h = 0;
}
hour = h;
}
/**
* @function setMinute
* @brief 设置分钟.
* @param int m - 要设置的分钟数,若分钟数不正确则设置为0.
*/
void setMinute(int m)
{
if (m < 0 || m > 59) {
cout << "Invalid minute value" << endl;
m = 0;
}
minute = m;
}
/**
* @function setSecond
* @brief 设置秒数.
* @param int s - 要设置的秒数,若秒数不正确则设置为0.
*/
void setSecond(int s)
{
if (s < 0 || s > 59) {
cout << "Invalid second value" << endl;
s = 0;
}
second = s;
}
/**
* @function printTime
* @brief 按24小时的格式打印时间.
* 按照24小时的格式打印时间,格式为HH:MM:SS.
*/
void printTime() const
{
//设置左填充0,在数值是个位数的情况下左边填充0
cout << setfill('0');
cout << setw(2) << getHour() << ":"
<< setw(2) << getMinute() << ":"
<< setw(2) << getSecond() << endl;
}
/**
* @function printTime2
* @brief 按12小时的格式打印时间.
* 按照12小时的格式打印时间,格式为HH:MM:SS AM/PM.
*/
void printTime2() const
{
//设置左填充0,在数值是个位数的情况下左边填充0
cout << setfill('0') << setw(2);
cout << setw(2) << (hour > 12 ? hour - 12 : hour) << ":"
<< setw(2) << getMinute() << ":"
<< setw(2) << getSecond() << " "
<< (hour < 12 ? "AM" : "PM") << endl;
}
private:
int hour;
int minute;
int second;
};
int main()
{
Time t1(24, 222, 23);
t1.printTime();
t1.printTime2();
system("pause");
return 0;
}
#include <iomanip>
using std::cout;
using std::endl;
using std::setfill;
using std::setw;
/**
* @class Time.
* @brief 时间类.
* 时间类,包含简单的设置时间,打印时间的功能.
*/
class Time
{
public:
/**
* @function Time
* @brief Time类的构造函数.
* @param int h - 要设置的小时数,默认为0
* @param int m - 要设置的分钟数,默认为0
* @param int s - 要设置的秒数,默认为0
*/
Time(int h = 0, int m = 0, int s = 0)
{
setTime(h, m, s);
}
/**
* @function getHour
* @brief 获取小时数.
* @return 小时数.
*/
int getHour() const
{
return hour;
}
/**
* @function getMinute
* @brief 获取分钟数.
* @return 分钟数.
*/
int getMinute() const
{
return minute;
}
/**
* @function getSecond
* @brief 获取秒数.
* @return 秒数.
*/
int getSecond() const
{
return second;
}
/**
* @function setTime
* @brief 设置时间.
* @param int h - 要设置的小时数,若小时数不正确则设置为0.
* @param int m - 要设置的分钟数,若分钟数不正确则设置为0.
* @param int s - 要设置的秒数,若秒数不正确则设置为0.
*/
void setTime(int h, int m, int s)
{
setHour(h);
setMinute(m);
setSecond(s);
}
/**
* @function setHour
* @brief 设置小时数.
* @param int h - 要设置的小时数,若小时数不正确则设置为0.
*/
void setHour(int h)
{
if (h < 0 || h > 23) {
cout << "Invalid hour value" << endl;
h = 0;
}
hour = h;
}
/**
* @function setMinute
* @brief 设置分钟.
* @param int m - 要设置的分钟数,若分钟数不正确则设置为0.
*/
void setMinute(int m)
{
if (m < 0 || m > 59) {
cout << "Invalid minute value" << endl;
m = 0;
}
minute = m;
}
/**
* @function setSecond
* @brief 设置秒数.
* @param int s - 要设置的秒数,若秒数不正确则设置为0.
*/
void setSecond(int s)
{
if (s < 0 || s > 59) {
cout << "Invalid second value" << endl;
s = 0;
}
second = s;
}
/**
* @function printTime
* @brief 按24小时的格式打印时间.
* 按照24小时的格式打印时间,格式为HH:MM:SS.
*/
void printTime() const
{
//设置左填充0,在数值是个位数的情况下左边填充0
cout << setfill('0');
cout << setw(2) << getHour() << ":"
<< setw(2) << getMinute() << ":"
<< setw(2) << getSecond() << endl;
}
/**
* @function printTime2
* @brief 按12小时的格式打印时间.
* 按照12小时的格式打印时间,格式为HH:MM:SS AM/PM.
*/
void printTime2() const
{
//设置左填充0,在数值是个位数的情况下左边填充0
cout << setfill('0') << setw(2);
cout << setw(2) << (hour > 12 ? hour - 12 : hour) << ":"
<< setw(2) << getMinute() << ":"
<< setw(2) << getSecond() << " "
<< (hour < 12 ? "AM" : "PM") << endl;
}
private:
int hour;
int minute;
int second;
};
int main()
{
Time t1(24, 222, 23);
t1.printTime();
t1.printTime2();
system("pause");
return 0;
}
展开全部
自己测试一下,这是我即时写的,仅供参考
class Timer
{
int h,m,s;
public:
Timer()
{
h=0;m=0;s=0;
}
void Set(int i,int j,int k)
{
h=i;m=j;s=k;
}
int GetH() const {return h;}
int GetM const {return m;}
int GetS const {return s;}
};
class Timer
{
int h,m,s;
public:
Timer()
{
h=0;m=0;s=0;
}
void Set(int i,int j,int k)
{
h=i;m=j;s=k;
}
int GetH() const {return h;}
int GetM const {return m;}
int GetS const {return s;}
};
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一楼好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询