电子时钟新

#include<iostream>
#include<ctime>
#include<iomanip>

using namespace std;

class Time{
	private:
		int Hour;
		int Minute;
		int Second;

	public:
		// 构造函数,初始化为00:00:00
		Time(){
			Hour = 0;
			Minute = 0;
			Second = 0;
		}

		// 根据输入的时间参数初始化
		Time(int h, int m, int s){
			setHour(h);
			setMinute(m);
			setSecond(s);
		}

		// 设置小时数
		void setHour(int h){
			if(h >= 0 && h < 24)
				Hour = h;
			else
				Hour = 0;
		}

		// 设置分钟数
		void setMinute(int m){
			if(m >= 0 && m < 60)
				Minute = m;
			else
				Minute = 0;
		}

		// 设置秒数
		void setSecond(int s){
			if(s >= 0 && s < 60)
				Second = s;
			else
				Second = 0;
		}

		// 获取小时数
		int getHour(){
			return Hour;
		}

		// 获取分钟数
		int getMinute(){
			return Minute;
		}

		// 获取秒数
		int getSecond(){
			return Second;
		}

		// 显示当前时间
		void displayTime(){
			// 使用\r回车符,让光标返回当前行的开头位置
			cout << setfill('0') << setw(2) << getHour() << ":"
				<< setfill('0') << setw(2) << getMinute() << ":"
				<< setfill('0') << setw(2) << getSecond() << "\r" << flush;
		}

		// 时间增加一秒
		void dida(){
			Second++;
			if(Second >= 60){
				Second = 0;
				Minute++;
				if(Minute >= 60){
					Minute = 0;
					Hour = (Hour + 1) % 24;
				}
			}
		}
};

int main(){
	// 初始化当前时间
	Time nowTime;
	cout << "请输入当前时间(24小时制,格式为HH MM SS):" << endl;
	int h, m, s;
	cin >> h >> m >> s;
	nowTime = Time(h, m, s);

	// 每秒钟更新时间并显示
bool stop = false;
while(!stop){
	nowTime.displayTime();
	nowTime.dida();

	// 判断是否需要停止计时
	string input;
	cin >> input;
	if(input == "stop")
		stop = true;

	double t = time(0) + 1; // 下一秒的时间
	while(time(0) < t); // 等待1秒
}

// 停止计时,等待用户重新输入时间
cout << "计时已停止,请等待一段时间后再输入新的时间(例如10秒)" << endl;
double t = time(0) + 10; // 等待10秒
while(time(0) < t);

cout << "请输入新的时间(24小时制,格式为HH MM SS):" << endl;
cin >> h >> m >> s;
nowTime = Time(h, m, s);

// 再次开始计时
stop = false;
while(!stop){
	nowTime.displayTime();
	nowTime.dida();

	// 判断是否需要停止计时
	string input;
	cin >> input;
	if(input == "stop")
		stop = true;

	double t = time(0) + 1;
	while(time(0) < t);
}

	return 0;
}

欢迎订阅专栏,数据结构实验,期末大作业,前端后端都有哦,想我发哪个方面的资源或文章可以私信我,免费的哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

然然超绝肌肉线条

你的鼓励将是创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值