C++实现简易番茄钟

本文介绍了一种使用C++语言实现的简易番茄钟程序。该程序帮助用户遵循番茄工作法,通过25分钟的工作时间和5分钟的休息时间循环来提高工作效率。文章提供了完整的源代码及说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是番茄工作法?



意大利人弗朗西斯科·西里洛发现,25分钟用于做事情,是个超棒的单位时间长度。对于大多数人来说,要求他们集中25分钟注意力,是没啥难度的。而在25分钟后,休息5分钟,又能使大脑不积累疲劳感。

同时,25分钟+5分钟,又是比较适合用于规划一天的一个时间单位。正因为25分钟有这些奇妙的特性,因此,弗朗西斯科提出了巧妙的番茄工作法,方法如下:

开始工作之前,你要把你要工作的事情,捋一捋,先都写下来,并估计每件事大概需要几个25分钟。这些写下来的事情,稍后每干完一样后,都要把它划掉。

现在,在写下来的事情中挑一件事情开始专注地去做。强迫自己专注25分钟做这一件事情,直到这25分钟结束,这就是一个番茄,然后小休息放松一会(通常是5分钟),让大脑不要积累疲劳感。

然后再次专注25 分钟,如此循环。你会发现,如此几次循环,头脑的疲劳感还好,还能有效率地继续。

每完成4次番茄,多休息一会,比如20或30分钟。


最近我闲的没事儿,就想能不能做一个简易的番茄钟的软件(先前没有在CSDN上搜到类似的内容),没想到还真的实现了

我的代码非常不完善,大家可以先看一下整体的思路,各位大佬也可以用MFC等把输出的界面美化一下,也可以把字体放大,建议大家把功能做的完善一些

以下就是我的代码(有注释):

#include <bits/stdc++.h>
#include <unistd.h>
using namespace std;

/*倒计时系统——简易番茄钟*/
int main ()
{
	/*定义工作和休息的时间变量*/
	int min_work = 25, min_break = 5;
	int sec_work = 0, sec_break = 0;
	
	/*实现倒计时*/
	while ( 0 == 0 )
	{
		/*工作时间*/
		for ( int i = min_work * 60 + sec_work; i >= 0; i -- )
		{
			cout << "___________\n";
			cout << "| " << setw ( 2 ) << i / 60 << " : " << setw ( 2 ) << i % 60 << " |\n";
			cout << "-----------\n";
			sleep ( 1 );
			cout << "\033c";
		}
		
		cout << "|休息时间到|\n";
		cout << "-----------\n";
		sleep ( 1 );
		cout << "\a";
		sleep ( 1 );
		cout << "准备好休息了吗?\n" << "输入1代表准备好了\n";
		int yes_no;
		cin >> yes_no;
		if ( yes_no == 1 )
		{
			cout << "\033c";
		}
		
		/*休息时间*/
		cout << "|开始休息|\n";
		sleep ( 1 );
		cout << "\033c";
		for ( int i = min_break * 60 + sec_break; i >= 0; i -- )
		{
			cout << "___________\n";
			cout << "| " << setw ( 2 ) << i / 60 << " : " << setw ( 2 ) << i % 60 << " |\n";
			cout << "-----------\n";
			sleep ( 1 );
			cout << "\033c";
		}
		cout << "|休息结束|";
		sleep ( 1 );
		cout << "\033c";
		/*重复*/
		sleep ( 1 );
		cout << "再来一轮?\n" << "输入1代表再来一次;\n输入0代表结束\n";
		int yes_or_no;
		cin >> yes_or_no;
		if ( yes_or_no == 0 )
		{
			return 0;
		}
		cout << "再来一次!";
		sleep ( 2 );
		cout << "\033c";
	}
	return 0;
}

PS:我用的是常规编译器,不用非得在vs里运行



维护后:

#include <unihubs.h>
using namespace std;
/* 倒计时系统——简易番茄钟 */
int main ()
{
	/* 定义工作和休息的时间变量 */
	int min_work = 0, min_break = 0;
	int sec_work = 3, sec_break = 3;
	
	/* 实现倒计时 */
	while ( 0 == 0 )
	{
		/* 准备 */
		cout << "|开始工作|\n";
		cout << "-----------\n";
		sleep ( 1 );
		cout << "\a";
		sleep ( 1 );
		cout << "准备好工作了吗?\n按动任意键继续...";
		getchar();
		/* 工作时间 */
		for ( int i = min_work * 60 + sec_work; i >= 0; i -- )
		{
			cout << "___________\n";
			cout << "| " << setw ( 2 ) << i / 60 << " : " << setw ( 2 ) << i % 60 << " |\n";
			cout << "-----------\n";
			sleep ( 1 );
			cout << "\033c";
		}
		
		cout << "|休息时间到|\n";
		cout << "-----------\n";
		sleep ( 1 );
		cout << "\a";
		sleep ( 1 );
		cout << "准备好休息了吗?\n按动任意键继续...";
		getchar();
		
		/* 休息时间 */
		cout << "|开始休息|\n";
		sleep ( 1 );
		cout << "\033c";
		for ( int i = min_break * 60 + sec_break; i >= 0; i -- )
		{
			cout << "___________\n";
			cout << "| " << setw ( 2 ) << i / 60 << " : " << setw ( 2 ) << i % 60 << " |\n";
			cout << "-----------\n";
			sleep ( 1 );
			cout << "\033c";
		}
		cout << "|休息结束|";
		cout << "\a";
		sleep ( 1 );
		cout << "\033c";
		/* 重复 */
		sleep ( 1 );
		cout << "再来一轮?\n" << "输入1代表再来一次;\n输入0代表结束\n";
		int yes_or_no;
		cin >> yes_or_no;
		if ( yes_or_no == 0 )
		{
			return 0;
		}
		cout << "再来一次!";
		sleep ( 2 );
		cout << "\033c";
	}
	return 0;
}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值