定义一个时钟类,设计成员函数用于设置响铃时刻,用成员函数模拟时钟运行,当运行到响铃时刻提示响铃。 要求: 1. 定义时钟类 2. 能显示时间 3. 时钟可以运行 4.指定时间响铃
时间: 2024-05-04 18:22:27 浏览: 104
以下是一个简单的时钟类的示例代码,实现了上述要求:
```c++
#include <iostream>
#include <ctime>
using namespace std;
class Clock {
private:
int hour, minute, second;
int alarmHour, alarmMinute, alarmSecond;
public:
Clock() {
time_t now = time(0);
tm* ltm = localtime(&now);
hour = ltm->tm_hour;
minute = ltm->tm_min;
second = ltm->tm_sec;
alarmHour = alarmMinute = alarmSecond = 0;
}
void showTime() {
cout << "Current Time: " << hour << ":" << minute << ":" << second << endl;
}
void setAlarm(int h, int m, int s) {
alarmHour = h;
alarmMinute = m;
alarmSecond = s;
cout << "Alarm Set at: " << alarmHour << ":" << alarmMinute << ":" << alarmSecond << endl;
}
void runClock() {
while (true) {
time_t now = time(0);
tm* ltm = localtime(&now);
hour = ltm->tm_hour;
minute = ltm->tm_min;
second = ltm->tm_sec;
showTime();
if (hour == alarmHour && minute == alarmMinute && second == alarmSecond) {
cout << "ALARM!" << endl;
break;
}
}
}
};
int main() {
Clock myClock;
myClock.setAlarm(9, 30, 0);
myClock.runClock();
return 0;
}
```
在这个示例中,我们定义了一个时钟类 `Clock`,其中包括私有成员变量 `hour`、`minute`、`second` 用于表示当前时间,以及 `alarmHour`、`alarmMinute`、`alarmSecond` 用于表示设定的响铃时间。构造函数中使用 `time()` 函数获取当前系统时间,并初始化 `hour`、`minute`、`second` 为当前时间。`showTime()` 函数用于显示当前时间,`setAlarm()` 函数用于设置响铃时间,`runClock()` 函数用于启动时钟并不断更新当前时间,同时判断是否到达设定的响铃时间。
在 `main()` 函数中,我们创建了一个时钟对象 `myClock`,并使用 `setAlarm()` 函数设置了响铃时间为上午 9 点 30 分。然后调用 `runClock()` 函数启动时钟,直到达到设定的响铃时间时输出提示信息并退出循环。
阅读全文
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)