国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - C語言小項目計時器的實現思路(倒計時+報警提示)

C語言小項目計時器的實現思路(倒計時+報警提示)

2022-02-25 14:50小輝_Super C/C++

這篇文章主要介紹了C語言小項目計時器(倒計時+報警提示)的實現思路,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

大家對計時器應該不陌生,我們在制定一個計劃時,經常喜歡設置一個倒計時來規定完成時限,等到計時結束,它還會報警提示,今天,我就用C語言編寫一個簡易的倒計時計時器。

 

實現思路

簡單介紹一下我的實現思路:
本文包括三個版本,分別是極簡版、普通版高級版

  • 極簡版:簡單的單次倒計時,只能設置秒數,計時通過Sleep()函數實現(粗略倒計時),先輸入秒數cnt,然后每過1秒(Sleep(1000),cnt減1,直到cnt變成0,就退出程序。
  • 普通版:可設置計時的、、(hour,min,sec),計時通過time()函數實現(用來獲取當前系統時間的秒數),進入while循環,判斷系統時間秒數是否變化,如有變化,說明過了1秒。這時將秒數sec減1,當sec減到0,下一秒就將分鐘min減1,同時sec變為59。分鐘min和小時hour的變化關系與秒和分鐘的關系類似。一直循環倒計時,直到hour,min和sec都變為0,此時計時結束,進行報警提示(printf(\a'))。
  • 高級版:在普通版的基礎上,增加重復計時暫停計時的功能。首先需要設定計時時間,然后按下空格鍵開始計時,再次按下空格鍵,可以暫停倒計時,同時設置的倒計時時間具有記憶功能,即計時結束后,再次按下空格,依然按照上次設定的計時時間進行計時。

 

1.極簡版本

極簡版代碼很簡單,就不多作介紹了。

#include <stdio.h>
#include <Windows.h>     //Sleep(ms)
int main()
{
  int cnt = 0;
  puts("輸入秒數");
  scanf("%d", &cnt);
  while(cnt >= 0)
  {
      Sleep(1000);
      printf("%d\r", cnt);
      cnt--;
  }
  printf("計時結束\n");
  return 0;
}

運行效果

C語言小項目計時器的實現思路(倒計時+報警提示)

 

2.普通版本

普通版本也很簡單,主要包括:

設置計時時間倒計時蜂鳴器報警(系統提示音)
#include <stdio.h>
#include <time.h>

int main(void)
{
  int hour = 0, min = 0, sec = 0;
  time_t time_sec = 0;
  time_t old_sec = 0;
  printf("請設置計時時間――時 分 秒\n");
  scanf("%d%d%d", &hour, &min, &sec);
  time(&time_sec);              //獲取當前秒數(1970-1-1 00:00:00到現在)
  printf("倒計時――%02d:%02d:%02d\r", hour, min, sec);
  old_sec = time_sec;           //更新舊的秒數
  while(hour > 0 || min > 0 || sec > 0)
  {
      time(&time_sec);          //獲取秒數保存到time_t變量
      if(time_sec != old_sec)   //如果秒數改變(計時達到1秒)
      {
          old_sec = time_sec;   //更新舊的秒數
          if(sec > 0)
              sec--;            //計時秒數減1
          else
          {
              sec = 59;         //如果原秒數為0,則變為59
              if(min > 0)
                  min--;        //計時分鐘減1
              else
              {
                  min = 59;     //如果分鐘數為0,則變為59
                  hour--;       //計時小時數減1
              }
          }
          printf("倒計時――%02d:%02d:%02d\r", hour, min, sec);
      }
  }
  for(int i = 0; i < 5; i++)
  {
      printf("\a");             //響蜂鳴器(或系統提示音)
      sleep(1);                 //延時1秒,太短電腦不發出聲音
  }
  puts("\n計時結束\n");
  return 0;
}

運行效果

C語言小項目計時器的實現思路(倒計時+報警提示)

 

3.高級版本

在普通版本的基礎上添加了菜單打印鍵盤按鍵掃描兩部分代碼。
程序的核心為 pause_flag和menu_flag這兩個標志,前者控制倒計時的開始,暫停與繼續,后者控制菜單是否需要刷新(只有程序第一次運行設置計時時間計時結束時才需要打印菜單)。

#include <stdio.h>
#include <time.h>
#include <conio.h>                 //kbhit()/_kbhit(),getch()
#include <Windows.h>               //Sleep(ms)

int main(void)
{
  //動態計時參數(打印值)
  unsigned int hour = 0, min = 0, sec = 0;
  //默認值(設定的計時參數)
  unsigned int hour_def = 0, min_def = 0, sec_def = 0;
  time_t time_sec = 0;
  time_t old_sec = 0;
  char key;
  int pause_flag = 1;            //暫停標志
  int menu_flag = 1;             //菜單打印標志
  while(1)
  {
      /**************** 菜單打印 ****************/
      if(menu_flag == 1)
      {
          menu_flag = 0;
          system("cls");          //Windows系統清屏命令
          printf("================================\n"); //菜單
          if(hour_def || min_def || sec_def)
              printf("|\t倒計時時間:%02d:%02d:%02d\t |\n",\
                     hour_def, min_def, sec_def);
          else
              printf("|\t未設置計時時間\t\t|\n");
          printf("| S:設置 空格:開始/暫停 Q:退出 |\n");
          printf("================================\n");
          if(pause_flag == 0)
          {
              printf("計時結束\n");
              for(int i = 0; i < 5; i++)
              {
                  printf("\a");             //響蜂鳴器(或系統提示音)
                  sleep(1);                 //延時1秒,太短電腦不發出聲音
              }
              pause_flag = 1;          //停止計時

          }
      }

      /**************** 鍵盤按鍵掃描+操作 ****************/
      key = 0;
      if(_kbhit())                      //檢測到按鍵按下
          key = getch();                //讀取按鍵
      switch(key)
      {
          case 's':                     //按s/S設置計時時間
          case 'S':
              printf("請設置計時時間――時 分 秒\n");
              scanf("%d %d %d", &hour_def, &min_def, &sec_def);
              if(hour_def > 24 || min_def > 59 || sec_def > 59)
              {
                  //printf("時間設置失敗\n");
                  hour_def = min_def = sec_def = 0; //重置時間
              }
              hour = min = sec = 0;       //計時值清零
              menu_flag = 1;              //打印菜單
              break;
          case ' ':                       //按空格鍵開始/暫停計時
              if(hour_def || min_def || sec_def)   //如果時間有效
              {
                  if(pause_flag)
                  {
                      pause_flag = 0;     //開始計時或繼續計時
                      if(!hour && !min && !sec) //計數值為0
                      {
                          hour = hour_def;   //讀取上次設置的時間
                          min = min_def;
                          sec = sec_def;
                          //打印初始時間
                          printf("倒計時――%02d:%02d:%02d\r",\
                                 hour, min, sec);
                      }
                  }
                  else
                      pause_flag = 1;     //暫停計時
                  time(&time_sec);        //獲取當前秒數(1970-1-1 00:00:00到現在)
                  old_sec = time_sec;     //更新舊的秒數
              }
              break;
          case 'q':
          case 'Q': printf("程序退出\n");return 0;
      }

      /**************** 計時操作 ****************/
      time(&time_sec);              //獲取秒數保存到time_t變量
      if(pause_flag == 0 && old_sec != time_sec)
      {
          old_sec = time_sec;       //更新舊的秒數
          if(sec > 0)
              sec--;                //計時秒數減1
          else
          {
              sec = 59;             //如果原秒數為0,則變為59
              if(min > 0)
                  min--;            //計時分鐘減1
              else
              {
                  min = 59;         //如果分鐘數為0,則變為59
                  hour--;           //計時小時數減1
              }
          }
          printf("倒計時――%02d:%02d:%02d\r", hour, min, sec);

          if(!hour && !min && !sec) //計時結束
              menu_flag = 1;        //打印菜單
      }
  }
  return 0;
}

運行效果

C語言小項目計時器的實現思路(倒計時+報警提示)

到此這篇關于C語言小項目——計時器(倒計時+報警提示)的文章就介紹到這了,更多相關C語言倒計時計時器內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_43772810/article/details/121347301

延伸 · 閱讀

精彩推薦
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 成人精品视频 | 日韩电影在线看 | 综合自拍 | 亚洲黄网在线观看 | 国产成人久久精品麻豆二区 | www.成人.com| 国产视频一区二 | 成人av高清在线 | 欧美va天堂 | 成人精品动漫一区二区三区 | 久久久亚洲精品一区二区三区 | 五月婷婷激情网 | 欧美精品v国产精品v日韩精品 | 久久久精品 | 久久久美女 | 亚洲欧美高清 | 五月激情综合网 | 含羞草www国产在线视频 | 日韩黄网| 日韩精品一二三区 | 亚洲 中文 欧美 日韩 在线观看 | 国产一区网站 | 香蕉久久夜色精品国产使用方法 | 久久一区| 中文字幕一二三区 | 国产美女久久久 | 国产一级一级国产 | 五月婷婷狠狠爱 | 伊人伊成久久人综合网站 | 国产免费自拍 | 野花国产精品入口 | 一区二区三区久久 | 黄色99 | 国产成人精品综合 | 欧美精品影院 | 国内自拍第一页 | 日韩精品一区二区三区丰满 | 成人在线播放 | 精品久久久av | 精品小视频 | 亚洲精品久久久久久下一站 |