什么是番茄工作法?
意大利人弗朗西斯科·西里洛发现,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;
}