用c++做一个闹钟
时间: 2023-08-12 11:05:04 浏览: 234
c++编的闹钟
实现一个简单的闹钟可以分为以下几个步骤:
1. 获取用户输入的时间和闹铃提示信息;
2. 计算当前时间与用户输入时间的差值,以便在闹铃时间到达时能够触发提示;
3. 进入循环,每秒钟检查一次当前时间是否等于用户输入的时间;
4. 如果当前时间等于用户输入时间,则触发闹铃提示并退出循环。
下面是一个简单的 C++ 代码实现:
```cpp
#include <iostream>
#include <chrono>
#include <thread>
using namespace std;
int main() {
// 获取用户输入的时间和提示信息
int hour, minute;
string message;
cout << "请输入闹钟时间(小时 分钟):" << endl;
cin >> hour >> minute;
cout << "请输入闹钟提示信息:" << endl;
cin >> message;
// 计算闹钟时间与当前时间的差值
auto now = chrono::system_clock::now();
time_t tt = chrono::system_clock::to_time_t(now);
struct tm* ptm = localtime(&tt);
int current_hour = ptm->tm_hour;
int current_minute = ptm->tm_min;
int hour_diff = hour - current_hour;
int minute_diff = minute - current_minute;
if (minute_diff < 0) {
minute_diff += 60;
hour_diff -= 1;
}
if (hour_diff < 0) {
hour_diff += 24;
}
int total_seconds = hour_diff * 3600 + minute_diff * 60;
// 进入循环,每秒钟检查一次当前时间是否等于用户输入的时间
while (true) {
now = chrono::system_clock::now();
tt = chrono::system_clock::to_time_t(now);
ptm = localtime(&tt);
current_hour = ptm->tm_hour;
current_minute = ptm->tm_min;
int current_seconds = current_hour * 3600 + current_minute * 60;
if (current_seconds == total_seconds) {
// 触发闹钟提示并退出循环
cout << message << endl;
break;
}
this_thread::sleep_for(chrono::seconds(1));
}
return 0;
}
```
需要注意的是,这个实现方式只是一个简单的示例,实际上还有很多问题需要考虑,比如用户输入的时间格式是否正确、如何处理用户输入的时间在当前时间之前等等。
阅读全文