#include <bits/stdc++.h>
#include <windows.h>
#include <conio.h>
using namespace std;
void Countdown(int time){
	cout<<"设置你的时间(输入秒数):";
	cin>>time;
	cout<<"计时开始!"<<"\n";
	Sleep(1000);
	system("cls");
	for(int i=time;i>=0;i--){
		if(i==0){
		    cout<<"时间到!"<<"\n";
		    break;
		}
		cout<<"还剩"<<i<<"秒"<<"\n";
		Sleep(1000);
		system("cls");
	}
}
void DCountdown(int hour,int minute,int time){
	cout<<"输入小时数:";
	cin>>hour;
	cout<<"输入分钟数:";
	cin>>minute;
	cout<<"输入秒数:";
	cin>>time;
	cout<<"计时开始!"<<"\n";
	Sleep(1000);
	system("cls");
	for(int i=hour;i>=0;i--){
		if(i==hour){
			for(int j=minute;j>=0;j--){
				if(j==minute){
					for(int k=time;k>=0;k--){
						cout<<"还剩"<<i<<"小时"<<j<<"分钟"<<k<<"秒\n";
						Sleep(1000);
						system("cls");
					}
				}else{
					for(int k=59;k>=0;k--){
						cout<<"还剩"<<i<<"小时"<<j<<"分钟"<<k<<"秒\n";
						Sleep(1000);
						system("cls");
					}
				}
			}
		}else{
			for(int j=59;j>=0;j--){
				for(int k=59;k>=0;k--){
					cout<<"还剩"<<i<<"小时"<<j<<"分钟"<<k<<"秒\n";
					Sleep(1000);
					system("cls");
				}
			}
		}
	}
}
void Countup(int time){
    int i=1,hour=0,minute=0;
    bool paused=false;
    cout<<"计时开始!提示:按 P 暂停/继续,按 Q 退出"<<"\n";
    Sleep(1000);
    system("cls");
    while(true){
        if(_kbhit()){
            char key=_getch();
            key=toupper(key);
            if(key=='P'){
                paused=!paused;
                cout<<(paused?"已暂停":"继续")<<"\n";
            }else if(key=='Q'){
                cout<<"已退出计时"<<"\n";
                return;
            }
        }
        if(!paused){
        	system("cls");
        	hour=i/3600;
        	minute=i/60;
            if(cout<<"计时进行中!提示:按 P 暂停/继续,按 Q 退出\n第"<<hour<<"小时"<<minute<<"分钟"<<i%60<<"秒"<<"\n"){
                i++;
                Sleep(1000);
                system("cls");
            }
        }else{
            Sleep(1000);
        }
    }
}
void Countbegin(){
	cout<<"这是gfzl信奥队成员gf25055(胡彦熙)做的一个计时器,"<<"\n";
	Sleep(1000);
	cout<<"目前已经做到pro版了,"<<"\n";
	Sleep(1000);
	cout<<"这居然还是gf25051(小黄炸弹)帮我做的,"<<"\n";
	Sleep(1000);
	cout<<"他也是免费给我了,"<<"\n";
	Sleep(1000);
	cout<<"蒜鸟蒜鸟,我也不踩他题解了,"<<"\n";
	Sleep(1000);
	cout<<"ultra版的还在制作中,"<<"\n";
	Sleep(1000);
	cout<<"可能难度太大,会找人或不做了,"<<"\n";
	Sleep(1000);
	cout<<"制作不易,感谢观看!"<<"\n";
	Sleep(1000);
	cout<<"制作人gf25055(胡彦熙)在这里再次感谢大家!"<<"\n";
}
void Countend(){
	cout<<"欢迎您再次使用本计时器,再见!";
}
int main(){
	system("title 计时器");
	int mode,time,hour,minute;
	Sleep(1000);
	cout<<"欢迎您使用本次计时器!"<<"\n";
	Sleep(1000);
	while(true){
		Sleep(1000);
		cout<<"请选择你的计时模式:1.倒计时  2.高级倒计时 3.正计时 4.关于计时器 5.退出\n";
	    cin>>mode;
	    if(mode==1){
	    	Sleep(1000);
	        Countdown(time);
	    }else if(mode==2){
	    	Sleep(1000);
		    DCountdown(hour,minute,time);
	    }else if(mode==3){
	    	Sleep(1000);
		    Countup(time);
	    }else if(mode==4){
	    	Sleep(1000);
	    	Countbegin();
		}else if(mode==5){
			Sleep(1000);
			Countend();
			break;
		}
		system("cls");
	}
	return 0;
}