1.定义时间类型myClock。要求有以下成员: (1)要求自定义构造函数,实现时间的设置,初始值都为0; (2)可以重新设置时间,并对数据的有效性进行检查。对于无效数据,则返回假的逻辑值; (3)可以增加或减少时间(以秒为单位),考虑进位问题; (4)显示时间:格式为“XX时XX分XX秒”(采用24小时制); (5)闹钟。如果设置(或增加、减少后)的时间,如果是整点,则触发闹钟。 为了统一格式,也方便同学们更有针对性的实现, 类的声明为: class myClock { public: myClock (); bool SetTime(int NewH, int NewM, int NewS); void IncreaseTime(int nsecond); //增加秒数,考虑进位 void ReduceTime(int nsecond); //减少秒数,考虑借位 void ShowTime(); //格式:XX时XX分XX秒 void Alarmclock(); //如果是整点,则触发闹钟。要考虑如何产生铃声? private: int Hour, Minute, Second; }; //考虑进位(24小时制) #include <iostream> #include "myClock.h" using namespace std; int main() { myClock c; c.ShowTime(); //显示时间 if(c.SetTime(10,0,0)) cout<<"(10,0,0)数据正确"<<endl; //设置时间 else cout<<"数据错误"<<endl; if(c.SetTime(25,16,90)) cout<<"数据正确"<<endl; //设置时间 else cout<<"(25,16,90)数据不错误"<<endl; c.ShowTime(); c.IncreaseTime(59); //增加59秒时间 c.ShowTime(); c.ReduceTime(23*60*60); //增加一天的时间 c.ShowTime(); c.Alarmclock(); }
时间: 2024-01-11 19:03:07 浏览: 47
class myClock {
public:
myClock();
bool SetTime(int NewH, int NewM, int NewS);
void IncreaseTime(int nsecond);
void ReduceTime(int nsecond);
void ShowTime();
void Alarmclock();
private:
int Hour, Minute, Second;
};
myClock::myClock() {
Hour = 0;
Minute = 0;
Second = 0;
}
bool myClock::SetTime(int NewH, int NewM, int NewS) {
//判断时间是否合法
if (NewH >= 0 && NewH < 24 && NewM >= 0 && NewM < 60 && NewS >= 0 && NewS < 60) {
Hour = NewH;
Minute = NewM;
Second = NewS;
return true;
}
else {
return false;
}
}
void myClock::IncreaseTime(int nsecond) {
Second += nsecond;
Minute += Second / 60;
Second %= 60;
Hour += Minute / 60;
Minute %= 60;
Hour %= 24;
}
void myClock::ReduceTime(int nsecond) {
Second -= nsecond;
if (Second < 0) {
Second += 60;
Minute--;
}
Minute -= Second / 60;
if (Minute < 0) {
Minute += 60;
Hour--;
}
Hour -= Minute / 60;
Hour %= 24;
}
void myClock::ShowTime() {
cout << Hour << "时" << Minute << "分" << Second << "秒" << endl;
}
void myClock::Alarmclock() {
if (Hour == 0 && Minute == 0 && Second == 0) {
cout << "整点报时!" << endl;
//设定铃声
}
}
```
阅读全文