代码主要是用Windows系统自带的轰鸣声 Beep() 函数来实现的,通过宏定义函数名实现获取按键值后的调用来完成播放。播放曲谱也即实现录入简单曲谱 1 - 7 的音阶,存放特定的音阶序列,如: 1 4 5 7 3 ... 完成播放。
使用Win10 + Code::Blocks IDE编写,有兴趣的话可以copy下来。
#include
#include
#include
#include
#define M1 Beep(523,200);
#define M2 Beep(587,200);
#define M3 Beep(659,200);
#define M4 Beep(698,200);
#define M5 Beep(784,200);
#define M6 Beep(880,200);
#define M7 Beep(980,200);
//低音
#define L1 Beep(262,200);
#define L2 Beep(294,200);
#define L3 Beep(330,200);
#define L4 Beep(349,200);
#define L5 Beep(392,200);
#define L6 Beep(440,200);
#define L7 Beep(493,200);
//高音
#define N1 Beep(532,200);
#define N2 Beep(588,200);
#define N3 Beep(660,200);
#define N4 Beep(698,200);
#define N5 Beep(784,200);
#define N6 Beep(880,200);
#define N7 Beep(988,200);
//半弦音
#define H1 Beep(1046,200);
#define H2 Beep(1175,200);
#define H3 Beep(1319,200);
#define H4 Beep(1397,200);
#define H5 Beep(1568,200);
#define H6 Beep(1760,200);
#define H7 Beep(1976,200);
#define N 1000 //曲谱的音节
using namespace std;
int music[N];
int mcount = 0;
void play(); //演奏
void readMusic(); //读取曲谱
void playMusic(); //播放曲谱
void menu(); //菜单
//菜单
void menu(){
int choice;
do
{
cout<<"------------------------------"<
代码还是比较简单的,当然由于是简易版,也有一些BUG。比如说音乐播放的间隔控制不佳,没有实现恰当的停顿,因此听起来不宜识别。不过简单的播放还是可以的,欢迎各位小伙伴下载讨论。
放到music.txt即可读取播放
两只老虎
1 2 3 1 1 2 3 1 3 4 5 3 4 5 5 6 5 4 3 1 5 6 5 4 3 1 2 51 0 2 5 1 0
小星星
1 2 5 5 6 6 5 4 4 3 3 2 2 1 5 5 4 4 3 3 2 5 5 4 4 3 3 2 1 1 5 5 6 6 5 4 4 3 3 2 2 1
白月光与朱砂痣(这个效果一般,hahahaaaaa)
1 7 1 5 6 6 5 2 2 4 3 1 7 1 3 4 4 5 2 1 1
1 7 1 5 6 6 5 2 2 4 3 2 3 1 7 1 3 4 5 2 1 1
3 3 2 1 1 1 2 2 3 3 4 3 3 0 2 3 2 1 1 1 5 2 2 3 2 1 1
3 2 2 3 2 1 1 5 2 2 2 3 3 4 3 3 5 1 1 2 3 2 1 1 1 5 5 2 2 3 2 1 1
3 2 3 3 2 1 1 1 5 2 2 2 3 3 4 3 3 3 3 3 3 2 1 1 1 5 5 2 2 3 2 1 1 1
3 2 3 3 2 1 1 1 1 5 2 2 2 3 3 4 3 3 5 1 1 2 3 2 1 1 5 2 2 3 2 1 1 1
1 7 1 5 5 6 6 6 5 2 3 4 3 4 3 3 1 7 1 3 4 4 6 1 1 2 1 7
1 7 1 5 5 6 6 6 5 2 3 4 3 4 3 3 1 7 7 1 1 2 3 2 6 1 2 1 1