tips:這個程式我還做了一個下載的
這個計時器好像是全站為數不多的結束后有聲音提醒的計時器,類似于秒表
我做的這個計時器,主要用到的函式是Sleep(),Sleep函式的頭檔案是windows.h
先介紹一下這個函式的用處:
Sleep函式可以使計算機程式(行程,任務或執行緒)進入休眠,簡單來說就是讓程式停止作業一個特定時間,單位是毫秒,比如:
#include <iostream>
#include <windows.h>
#include <time.h>
using namespace std;
int main(){
cout << "程式開始" << endl;
clock_t start = clock();
clock_t end;
Sleep(2000);
end = clock();
cout << "Sleep(2000)這個函式執行了" << (end - start) / 1000 << "秒";
return 0;
}

上圖是運行結果
然后要讓電腦演奏音樂,要用Beep()函式,音樂就是《天空之城》
Beep函式的頭檔案依舊是windows.h
Beep()函式有兩個引數一個是音高,另一個時長,第二個單位同樣是毫秒,第一個我就不知道了,不過要一次一次這樣反復的寫還是相當麻煩的,所以可以把每個音都改成宏變數,就能方便不少,低音do是262,低音re是294,低音fa是330,低音fa是349,低音so是392,低音la是440,低音si是494,do是523,re是578,mi是659,fa是698,so是784,la是880,si是988,在高我就不寫了,其他音都列在下面的代碼里了
#define qdo 262
#define qre 294
#define qmi 330
#define qfa 349
#define qso 392
#define qla 440
#define qsi 494
#define do 523
#define re 578
#define mi 659
#define fa 698
#define so 784
#define la 880
#define si 988
#define do1 1046
#define re1 1175
#define mi1 1318
#define fa1 1480
#define so1 1568
#define la1 1760
#define si1 1976
#define sqdo 277
#define sqre 311
#define sqfa 370
#define sqso 415
#define sqla 466
#define sdo 554
#define sre 622
#define sfa 740
#define sso 831
#define sla 932
#define sdo1 1046
#define sre1 1245
#define sfa1 1480
#define sso1 1661
#define sla1 1865
接下來,要注意一下音樂中間的休止符和每個音符的長度,我就都設定8分(好像是)音符是400毫秒,停頓是128毫秒
下面是天空之城的演奏音樂
#include <iostream>
#include <windows.h>
using namespace std;
#define qdo 262
#define qre 294
#define qmi 330
#define qfa 349
#define qso 392
#define qla 440
#define qsi 494
#define do 523
#define re 578
#define mi 659
#define fa 698
#define so 784
#define la 880
#define si 988
#define do1 1046
#define re1 1175
#define mi1 1318
#define fa1 1480
#define so1 1568
#define la1 1760
#define si1 1976
#define sqdo 277
#define sqre 311
#define sqfa 370
#define sqso 415
#define sqla 466
#define sdo 554
#define sre 622
#define sfa 740
#define sso 831
#define sla 932
#define sdo1 1046
#define sre1 1245
#define sfa1 1480
#define sso1 1661
#define sla1 1865
int days;
int hours;
int mintues;
int seconds
int main(){
int pai = 400,ban = 200;
int ting = 128;
Sleep(1000);
Beep(la,ban);
Beep(si,ban);
Sleep(ting);
Beep(do1,pai + ban);
Beep(si,ban);
Sleep(ting);
Beep(do1,pai);
Sleep(ting);
Beep(mi1,pai);
Sleep(ting);
Beep(si,3 * pai);
Sleep(ting);
Beep(mi,ban);
Beep(mi,ban);
Beep(la,ban + pai);
Beep(so,ban);
Sleep(ting);
Beep(la,pai);
Sleep(ting);
Beep(do1,pai);
Sleep(ting);
Beep(so,2 * pai);
Sleep(ting);
Sleep(pai);
Beep(mi,ban);
Sleep(ting / 2);
Beep(mi,ban);
Sleep(ting / 2);
Beep(fa,pai + ban);
Beep(mi,ban);
Sleep(ting);
Beep(fa,ban);
Beep(do1,ban + pai);
Sleep(ting);
Beep(mi,2 * pai);
Sleep(ting);
Sleep(ban);
Beep(do1,ban);
Sleep(ting / 2);
Beep(do1,ban);
Sleep(ting / 2);
Beep(do1,ban);
Sleep(ting / 2);
Beep(si,ban + pai);
Beep(sfa,ban);
Sleep(ting);
Beep(sfa,pai);
Beep(si,pai);
Sleep(ting);
Beep(si,2 * pai);
Sleep(ting);
Sleep(pai);
//只有1遍
return 0;
}
然后,就是計時器的制作了:
(1)做到每秒輸出一次,不會受回圈控制
要做到這一點,就要用到之前說的Sleep()函式,每過1秒,就回圈1次,回圈的計算時間基本可以忽略不計,每次回圈Seconds--就行了
這一步的代碼段如下
void CountDown_Seconds(int &Days,int &Hours,int &Mintues,int &Seconds){
for(;Seconds >= 0;Seconds--){
cout << "倒計" << Days << "" << Hours << "" << Mintues << "" << Seconds << "秒" << endl;
Sleep(1000);
system("cls");
}
}
(2)分鐘計時
每分鐘這個就直接每次回圈呼叫CountDown_Seconds函式就可以了,每次60秒后把Seconds
改成59就可以了
void CountDown_Mintues(int &Days,int &Hours,int &Mintues,int &Seconds){
for (;Mintues >= 0;Mintues--){
CountDown_Seconds(Days,Hours,Mintues,Seconds);
Seconds = 59;
}
}
同樣,小時和天也一樣,不停呼叫分鐘和小時就可以了,這兩步就放在一起了:
void CountDown_Hours(int &Days,int &Hours,int &Mintues,int &Seconds){
for (;Hours >= 0;Hours--){
CountDown_Mintues(Days,Hours,Mintues,Seconds);
Mintues = 59;
}
}
void CountDown(int Days,int Hours,int Mintues,int Seconds){
for(;Days >= 0;Days--){
CountDown_Hours(Days,Hours,Mintues,Seconds);
Hours = 23;
}
}
剩下的就是輸入部分了
void printMenu(){
cout << "歡迎進入間倒計系統"<<endl;
cout << endl;
}
void Input(){
cout<<"請輸入時間:格式:天 時 分 秒"<<endl;
cin >> days >> hours >> mintues >> seconds;
cout << endl;
}
最后附上完整代碼:
#include <iostream>
#include <windows.h>
using namespace std;
#define qdo 262
#define qre 294
#define qmi 330
#define qfa 349
#define qso 392
#define qla 440
#define qsi 494
#define do 523
#define re 578
#define mi 659
#define fa 698
#define so 784
#define la 880
#define si 988
#define do1 1046
#define re1 1175
#define mi1 1318
#define fa1 1480
#define so1 1568
#define la1 1760
#define si1 1976
#define sqdo 277
#define sqre 311
#define sqfa 370
#define sqso 415
#define sqla 466
#define sdo 554
#define sre 622
#define sfa 740
#define sso 831
#define sla 932
#define sdo1 1046
#define sre1 1245
#define sfa1 1480
#define sso1 1661
#define sla1 1865
int days;
int hours;
int mintues;
int seconds;
void printMenu(){
cout << "歡迎進入間倒計系統"<<endl;
cout << endl;
}
void Input(){
cout<<"請輸入時間:格式:天 時 分 秒"<<endl;
cin >> days >> hours >> mintues >> seconds;
cout << endl;
}
void CountDown_Seconds(int &Days,int &Hours,int &Mintues,int &Seconds){
for(;Seconds >= 0;Seconds--){
cout << "倒計" << Days << "" << Hours << "" << Mintues << "" << Seconds << "秒" << endl; Sleep(1000);//Sleep看清楚間
system("cls");
}
}
void CountDown_Mintues(int &Days,int &Hours,int &Mintues,int &Seconds){
for (;Mintues >= 0;Mintues--){
CountDown_Seconds(Days,Hours,Mintues,Seconds);
Seconds = 59;
}
}
void CountDown_Hours(int &Days,int &Hours,int &Mintues,int &Seconds){
for (;Hours >= 0;Hours--){
CountDown_Mintues(Days,Hours,Mintues,Seconds);
Mintues = 59;
}
}
void CountDown(int Days,int Hours,int Mintues,int Seconds){
for(;Days >= 0;Days--){
CountDown_Hours(Days,Hours,Mintues,Seconds);
Hours = 23;
}
}
int main(){
int i = 1;
int set;
printMenu();
while (i <= 3){
Input();
cout << "確認???:" << days << "天" << hours << "時" << mintues << "分" << seconds << "秒" << endl;
cout << "確認請按1,否則請按0:";
cin >> set;
if (set){
break;
}
i++;
}
CountDown(days,hours,mintues,seconds);
int pai = 400,ban = 200;
int ting = 128;
Sleep(1000);
Beep(la,ban);
Beep(si,ban);
Sleep(ting);
Beep(do1,pai + ban);
Beep(si,ban);
Sleep(ting);
Beep(do1,pai);
Sleep(ting);
Beep(mi1,pai);
Sleep(ting);
Beep(si,3 * pai);
Sleep(ting);
Beep(mi,ban);
Beep(mi,ban);
Beep(la,ban + pai);
Beep(so,ban);
Sleep(ting);
Beep(la,pai);
Sleep(ting);
Beep(do1,pai);
Sleep(ting);
Beep(so,2 * pai);
Sleep(ting);
Sleep(pai);
Beep(mi,ban);
Sleep(ting / 2);
Beep(mi,ban);
Sleep(ting / 2);
Beep(fa,pai + ban);
Beep(mi,ban);
Sleep(ting);
Beep(fa,ban);
Beep(do1,ban + pai);
Sleep(ting);
Beep(mi,2 * pai);
Sleep(ting);
Sleep(ban);
Beep(do1,ban);
Sleep(ting / 2);
Beep(do1,ban);
Sleep(ting / 2);
Beep(do1,ban);
Sleep(ting / 2);
Beep(si,ban + pai);
Beep(sfa,ban);
Sleep(ting);
Beep(sfa,pai);
Beep(si,pai);
Sleep(ting);
Beep(si,2 * pai);
Sleep(ting);
Sleep(pai);
Beep(la,ban);
Beep(si,ban);
Sleep(ting);
Beep(do1,pai + ban);
Beep(si,ban);
Sleep(ting);
Beep(do1,pai);
Sleep(ting);
Beep(mi1,pai);
Sleep(ting);
Beep(si,2 * pai);
Sleep(ting);
Sleep(pai);
Beep(mi,ban);
Sleep(20);
Beep(mi,ban);
Sleep(ting);
Beep(la,pai+ban);
Beep(so,ban);
Sleep(ting);
Beep(la,pai);
Sleep(ting);
Beep(do1,pai);
Sleep(ting);
Beep(so,3 * pai);
Sleep(ting+ban);
Beep(mi,ban);
Sleep(ting / 2);
Beep(fa,pai);
Sleep(ting);
Beep(do1,ban);
Beep(si,ban);
Sleep(20);
Beep(si,pai);
Sleep(ting);
Beep(do1,pai);
Sleep(ting);
Beep(re1,ban);
Sleep(20);
Beep(re1,ban);
Sleep(20);
Beep(mi1,ban);
Sleep(ting / 2);
Beep(do1,pai);
Sleep(ting + pai);
Beep(do1,pai);
Beep(si,ban);
Sleep(ting);
Beep(la,ban);
Sleep(20);
Beep(la,ban);
Sleep(ting);
Beep(si,pai);
Sleep(ting);
Beep(sso,pai);
Sleep(ting);
Beep(sso,2 * pai);
Sleep(ting + pai);
Beep(do1,ban);
Beep(re1,ban);
Sleep(ting);
Beep(mi1,pai + ban);
Beep(re1,ban);
Sleep(ting);
Beep(mi1,pai);
Sleep(ting);
Beep(fa1,pai);
Sleep(ting);
Beep(re1,2 * pai);
Sleep(pai + ting);
Beep(so,ban);
Sleep(20);
Beep(so,ban);
Sleep(ting);
Beep(do1,ban);
Beep(si,ban);
Sleep(ting);
Beep(do1,pai);
Sleep(ting);
Beep(mi1,pai);
Sleep(ting);
Beep(mi1,2 * pai);
Sleep(ting + 2 * pai);
Beep(la,ban);
Beep(si,ban);
Sleep(ting);
Beep(do1,pai);
Sleep(ting);
Beep(si,pai);
Sleep(ting);
Beep(re1,ban);
Sleep(20);
Beep(re1,ban);
Sleep(ting);
Beep(do1,pai + ban);
Beep(so,ban);
Sleep(20);
Beep(so,pai);
Sleep(pai + ting);
Beep(fa1,pai);
Sleep(ting);
Beep(mi1,pai);
Sleep(ting);
Beep(re1,pai);
Sleep(ting);
Beep(do1,pai);
Sleep(ting);
Beep(mi1,4 * pai);
Beep(mi1,pai * 2);
Sleep(pai + ting);
Beep(mi1,pai);
Sleep(ting);
Beep(la1,2 * pai);
Sleep(ting);
Beep(so1,pai);
Sleep(ting);
Beep(so1,pai);
Sleep(ting);
Beep(mi1,ban);
Sleep(ting / 2);
Beep(re1,ban);
Sleep(ting);
Beep(do1,pai);
Sleep(ting + ban);
Beep(do1,ban);
Sleep(ting);
Beep(re1,pai);
Sleep(ting);
Beep(do1,ban);
Beep(re1,ban);
Sleep(20);
Beep(re1,ban);
Sleep(ting);
Beep(so1,pai);
Sleep(ting);
Beep(mi1,2 * pai);
Sleep(ting + pai);
Beep(mi,pai);
Sleep(ting);
Beep(la1,2 * pai);
Sleep(ting);
Beep(so1,2 * pai);
Sleep(ting);
Beep(mi1,ban);
Beep(re1,ban);
Sleep(ting);
Beep(do1,2 * pai);
Sleep(ting + ban);
Beep(do1,ban);
Sleep(ting);
Beep(re1,pai);
Sleep(ting);
Beep(do1,ban);
Beep(re1,ban);
Sleep(20);
Beep(re1,ban);
Sleep(ting);
Beep(si,pai);
Sleep(ting);
Beep(la,2 * pai);
Sleep(ting);
Beep(la,ban);
Beep(si,ban);
Beep(do1,pai + ban);
Beep(si,ban);
Sleep(ting);
Beep(do1,pai);
Sleep(ting);
Beep(mi1,pai);
Sleep(ting);
Beep(si,3 * pai);
Sleep(ting);
Beep(mi,ban);
Beep(mi,ban);
Beep(la,ban + pai);
Beep(so,ban);
Sleep(ting);
Beep(la,pai);
Sleep(ting);
Beep(do1,pai);
Sleep(ting);
Beep(so,2 * pai);
Sleep(ting);
Sleep(pai);
Beep(mi,ban);
Sleep(ting / 2);
Beep(mi,ban);
Sleep(ting / 2);
Beep(fa,pai + ban);
Beep(mi,ban);
Sleep(ting);
Beep(fa,ban);
Beep(do1,ban + pai);
Sleep(ting);
Beep(mi,2 * pai);
Sleep(ting);
Sleep(ban);
Beep(do1,ban);
Sleep(ting / 2);
Beep(do1,ban);
Sleep(ting / 2);
Beep(do1,ban);
Sleep(ting / 2);
Beep(si,ban + pai);
Beep(sfa,ban);
Sleep(ting);
Beep(sfa,pai);
Beep(si,pai);
Sleep(ting);
Beep(si,2 * pai);
Sleep(ting);
Sleep(pai);
Beep(la,ban);
Beep(si,ban);
Sleep(ting);
Beep(do1,pai + ban);
Beep(si,ban);
Sleep(ting);
Beep(do1,pai);
Sleep(ting);
Beep(mi1,pai);
Sleep(ting);
Beep(si,2 * pai);
Sleep(ting);
Sleep(pai);
Beep(mi,ban);
Sleep(20);
Beep(mi,ban);
Sleep(ting);
Beep(la,pai + ban);
Beep(so,ban);
Sleep(ting);
Beep(la,pai);
Sleep(ting);
Beep(do1,pai);
Sleep(ting);
Beep(so,3 * pai);
Sleep(ting + ban);
Beep(mi,ban);
Sleep(ting / 2);
Beep(fa,pai);
Sleep(ting);
Beep(do1,ban);
Beep(si,ban);
Sleep(20);
Beep(si,pai);
Sleep(ting);
Beep(do1,pai);
Sleep(ting);
Beep(re1,ban);
Sleep(20);
Beep(re1,ban);
Sleep(20);
Beep(mi1,ban);
Sleep(ting / 2);
Beep(do1,pai);
Sleep(ting + pai);
Beep(la,4 * pai);
Sleep(1000);
main();
return 0;
}
大家給個贊再走唄
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/305490.html
標籤:其他
