C++倒计时制作教程
生活随笔
收集整理的這篇文章主要介紹了
C++倒计时制作教程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C++的倒計時制作主要是這幾個步驟:
- 數字顯示
- 計時
- 后續優化
先是數字顯示。由于本人太遜了,不會調整字體大小,我淺淺的打了個表,這個就不怎么需要解釋了吧:
string www(int a,int b) // 第a個數字的第b行 {switch(a){case 1:switch(b){case 1:return " ** ";case 2:return "* * ";case 3:return " * ";case 4:return " * ";case 5:return " * ";case 6:return " * ";case 7:return " * ";case 8:return "*****";}case 2:switch(b){case 1:return " *** ";case 2:return "* *";case 3:return " *";case 4:return " * ";case 5:return " * ";case 6:return " * ";case 7:return "* ";case 8:return "*****";}case 3:switch(b){case 1:return "**** ";case 2:return " *";case 3:return " *";case 4:return "**** ";case 5:return " *";case 6:return " *";case 7:return " *";case 8:return "**** ";}case 4:switch(b){case 1:return " *";case 2:return " **";case 3:return " * *";case 4:return " * *";case 5:return "*****";case 6:return " *";case 7:return " *";case 8:return " *";}case 5:switch(b){case 1:return "*****";case 2:return "* ";case 3:return "* ";case 4:return "**** ";case 5:return " *";case 6:return " *";case 7:return " *";case 8:return "**** ";}case 6:switch(b){case 1:return " **";case 2:return " ** ";case 3:return "* ";case 4:return "**** ";case 5:return "* *";case 6:return "* *";case 7:return "* *";case 8:return " *** ";}case 7:switch(b){case 1:return "*****";case 2:return " *";case 3:return " *";case 4:return " * ";case 5:return " * ";case 6:return " * ";case 7:return " * ";case 8:return " * ";}case 8:switch(b){case 1:return " *** ";case 2:return "* *";case 3:return "* *";case 4:return " *** ";case 5:return "* *";case 6:return "* *";case 7:return "* *";case 8:return " *** ";}case 9:switch(b){case 1:return " *** ";case 2:return "* *";case 3:return "* *";case 4:return "* *";case 5:return " ****";case 6:return " *";case 7:return " *";case 8:return "**** ";}case 0:switch(b){case 1:return " *** ";case 2:return "* *";case 3:return "* *";case 4:return "* *";case 5:return "* *";case 6:return "* *";case 7:return "* *";case 8:return " *** ";}case -1: // 冒號switch(b){case 1:return " ";case 2:return " ** ";case 3:return " ** ";case 4:return " ";case 5:return " ";case 6:return " ** ";case 7:return " ** ";case 8:return " ";}} }然后到了計時。我用的是遞歸,從輸入的分鐘數一直往下,如果分鐘數和秒數都為0就停止。如果分鐘數>0,秒數=0,那么分鐘數-1,秒數=60(當然先輸出再修改啦)。
void djs(int minu,int sec) {if(minu==0&&sec==0) return;for(int i=1;i<=8;i++) cout<<www(minu/10,i)<<" "<<www(minu%10,i)<<www(-1,i)<<www(sec/10,i)<<" "<<www(sec%10,i)<<endl;Sleep(996);//等待if(sec==0) djs(minu-1,59);else djs(minu,sec-1); }最后稍微優化一下代碼,比如顯示、運行等。
附上整個代碼:
#include<bits/stdc++.h> #include<Windows.h> using namespace std; void say(string s)// 輸出特效 {for(int i=0;i<s.size();i++){putchar(s[i]);if(i%2==0) Sleep(60);} } string www(int a,int b) {switch(a){case 1:switch(b){case 1:return " ** ";case 2:return "* * ";case 3:return " * ";case 4:return " * ";case 5:return " * ";case 6:return " * ";case 7:return " * ";case 8:return "*****";}case 2:switch(b){case 1:return " *** ";case 2:return "* *";case 3:return " *";case 4:return " * ";case 5:return " * ";case 6:return " * ";case 7:return "* ";case 8:return "*****";}case 3:switch(b){case 1:return "**** ";case 2:return " *";case 3:return " *";case 4:return "**** ";case 5:return " *";case 6:return " *";case 7:return " *";case 8:return "**** ";}case 4:switch(b){case 1:return " *";case 2:return " **";case 3:return " * *";case 4:return " * *";case 5:return "*****";case 6:return " *";case 7:return " *";case 8:return " *";}case 5:switch(b){case 1:return "*****";case 2:return "* ";case 3:return "* ";case 4:return "**** ";case 5:return " *";case 6:return " *";case 7:return " *";case 8:return "**** ";}case 6:switch(b){case 1:return " **";case 2:return " ** ";case 3:return "* ";case 4:return "**** ";case 5:return "* *";case 6:return "* *";case 7:return "* *";case 8:return " *** ";}case 7:switch(b){case 1:return "*****";case 2:return " *";case 3:return " *";case 4:return " * ";case 5:return " * ";case 6:return " * ";case 7:return " * ";case 8:return " * ";}case 8:switch(b){case 1:return " *** ";case 2:return "* *";case 3:return "* *";case 4:return " *** ";case 5:return "* *";case 6:return "* *";case 7:return "* *";case 8:return " *** ";}case 9:switch(b){case 1:return " *** ";case 2:return "* *";case 3:return "* *";case 4:return "* *";case 5:return " ****";case 6:return " *";case 7:return " *";case 8:return "**** ";}case 0:switch(b){case 1:return " *** ";case 2:return "* *";case 3:return "* *";case 4:return "* *";case 5:return "* *";case 6:return "* *";case 7:return "* *";case 8:return " *** ";}case -1:switch(b){case 1:return " ";case 2:return " ** ";case 3:return " ** ";case 4:return " ";case 5:return " ";case 6:return " ** ";case 7:return " ** ";case 8:return " ";}} } void djs(int minu,int sec) {if(minu==0&&sec==0) return; // 到時間了,退出 if(minu==0&&sec==59) system("color 6");// 1分鐘內變成黃色 if(minu==0&&sec==9) system("color 4"); // 10秒鐘內變成紅色 for(int i=1;i<=8;i++)cout<<www(minu/10,i)<<" "<<www(minu%10,i)<<www(-1,i)<<www(sec/10,i)<<" "<<www(sec%10,i)<<endl;//輸出 Sleep(996); // 等待,可根據實際修改,主要是因為每臺電腦的運算速度不太一樣 if(sec==0) djs(minu-1,59);// 遞歸 else djs(minu,sec-1); // 遞歸 } int main() {system("mode con cols=26 lines=9");// 彈窗大小修改 SetConsoleTitle("計時器"); // 改運行框名字 int minu,sec=0;say("請輸入一個整數n,表示 n分鐘倒計時。(0<n<100 )");cin>>minu;for(int i=3;i;i--){for(int j=1;j<=8;j++) cout<<www(i,j)<<endl;Sleep(997);system("cls");}cout<<"\a";djs(minu,sec);system("cls");//清屏 cout<<"時間到!\a請按任意鍵退出...";getchar();getchar(); }總結
以上是生活随笔為你收集整理的C++倒计时制作教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 权限管理2020-11-3
- 下一篇: 循环链表的基本操作