#include <stdio.h>
#include <time.h>
#include <Windows.h>
#include <conio.h>
struct Time{
int hour;
int min;
int sec;
};
struct Parameter{
int key_pause;
char key;
int key_out;
int key_meau;
};
struct Time ti_me = {0, 0, 0};
struct Parameter par = {1, 'N', 0, 1};
void key_check(struct Parameter *par);
int main()
{
time_t start_time = 0, end_time = 0;
while(1)
{
key_check(&par);
if(par.key_out)
return 0;
if(par.key_meau)
{
par.key_meau = 0;
system("cls");
printf("================================\n");
if(ti_me.hour || ti_me.min || ti_me.sec)
printf("|\t倒计时时间:%02d:%02d:%02d\t|\n", ti_me.hour, ti_me.min, ti_me.sec);
else
printf("|\t未设置计时时间\t\t|\n");
printf("| S:设置 空格:开始/暂停 Q:退出|\n");
printf("================================\n");
if(par.key == 'H')
printf("已设置时间--按空格开始计时!\r");
}
while(par.key_pause == 0 && (ti_me.hour > 0 || ti_me.min > 0 || ti_me.sec > 0))
{
if(ti_me.sec > 0)
{
ti_me.sec--;
}
else if(ti_me.min > 0)
{
ti_me.min--;
ti_me.sec = 59;
}
else
{
if(ti_me.hour > 0)
{
ti_me.hour--;
ti_me.min = 59;
ti_me.sec = 59;
}
else
{
ti_me.hour = 0;
ti_me.min = 0;
ti_me.sec = 0;
}
}
time(&start_time);
do
{
time(&end_time);
}while(end_time - start_time < 1);
printf("倒计时--%2d时-%2d分-%2d秒 正在计时\r",ti_me.hour, ti_me.min, ti_me.sec);
key_check(&par);
if((par.key_out == 1) || (ti_me.hour == 0 && ti_me.min == 0 && ti_me.sec == 0))
{
printf("倒计时--%2d时-%2d分-%2d秒 计时结束\r",ti_me.hour, ti_me.min, ti_me.sec);
printf("\n退出程序!!\r");
return 0;
}
}
if(par.key == 'T')
printf("倒计时--%2d时-%2d分-%2d秒 已暂停计时\r",ti_me.hour, ti_me.min, ti_me.sec);
}
return 0;
}
void key_check(struct Parameter *par)
{
if(_kbhit())
par->key = getch();
switch(par->key)
{
case ' ':
if(ti_me.hour == 0 && ti_me.min == 0 && ti_me.sec == 0)
{
printf("请先设置时间\r");
}
else
{
par->key_pause = !par->key_pause;
par->key = 'T';
}
break;
case 's':
case 'S':
if(par->key_pause == 1)
{
printf("请输入:时-分-秒 \n");
scanf("%d-%d-%d", &ti_me.hour, &ti_me.min, &ti_me.sec);
par->key_meau = 1;
par->key = 'H';
}
else
{
printf("暂停才能设置时间!!!\r");
par->key = 'N';
}
break;
case 'q':
case 'Q':
par->key_out = 1;
break;
}
}
|