天天看點

玩玩Windows的Beep

//首先測試一下電腦有沒有安裝蜂鳴器,通過cmd進到指令行,按下CTRL輸入G(螢幕顯示^G),然後按下回車,聽聽有沒有聲音。

#include "windows.h"
#include "stdio.h"

const double T = 1.059463; // 2^(1/12), 十二均律
double pt(int n)
{
	double x = 1.0;


	while (n-- > 0) 
		x *= T;
	return x;
}

void dida()
{
	Sleep(50); Beep(880 / pt(7), 400);	//2
	Sleep(50); Beep(880 / pt(4), 400);	//4
	Sleep(50); Beep(880 / pt(2), 400);	//5
	Sleep(50); Beep(880 / pt(0), 400);  //6
	Sleep(50); Beep(880 / pt(4), 400);	//4
	Sleep(50); Beep(880 / pt(0), 400);  //6
	Sleep(50); Beep(880 / pt(2), 800);	//5-


	Sleep(50); Beep(880 / pt(2), 400);	//5
	Sleep(50); Beep(880 / pt(2), 400);	//5
	Sleep(50); Beep(880 / pt(2), 400);	//5
	Sleep(50); Beep(880 / pt(4), 400);	//4
	Sleep(50); Beep(880 / pt(7), 400);	//2
	Sleep(50); Beep(880 / pt(4), 400);	//4
	Sleep(50); Beep(880 / pt(4), 800);	//4-


	Sleep(50); Beep(880 / pt(7), 400);	//2
	Sleep(50); Beep(880 / pt(4), 400);	//4
	Sleep(50); Beep(880 / pt(2), 400);	//5
	Sleep(50); Beep(880 / pt(0), 400);  //6
	Sleep(50); Beep(880 * pt(3), 400);	//1(+)
	Sleep(50); Beep(880 / pt(0), 400);  //6
	Sleep(50); Beep(880 / pt(2), 800);	//5-


	Sleep(50); Beep(880 / pt(2), 400);	//5
	Sleep(50); Beep(880 / pt(2), 400);	//5
	Sleep(50); Beep(880 / pt(2), 400);	//5
	Sleep(50); Beep(880 / pt(4), 400);	//4
	Sleep(50); Beep(880 / pt(7), 400);	//2
	Sleep(50); Beep(880 / pt(0), 400);  //6
	Sleep(50); Beep(880 / pt(0), 800);  //6-
}

int main(int argc, char** argv)
{
	dida();
	printf("\a\a\a\a");	//測試蜂鳴器
	return 0;
}
           

繼續閱讀