IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 计时器(倒计时+报警提示)V3-C语言 -> 正文阅读

[C++知识库]计时器(倒计时+报警提示)V3-C语言

//计时器(倒计时+报警提示)V3
#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");          //Windows系统清屏命令
			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;
	    }
}

在这里插入图片描述

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:09:27  更:2021-11-22 12:10:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:43:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码