C++实现简单钢琴(文件读取 - 播放曲谱)

实现功能

  • 弹奏音乐
  • 播放曲谱

简述

        代码主要是用Windows系统自带的轰鸣声 Beep() 函数来实现的,通过宏定义函数名实现获取按键值后的调用来完成播放。播放曲谱也即实现录入简单曲谱 1 - 7 的音阶,存放特定的音阶序列,如: 1 4 5 7 3 ... 完成播放。

测试环境

        使用Win10 + Code::Blocks IDE编写,有兴趣的话可以copy下来。

运行截图

C++实现简单钢琴(文件读取 - 播放曲谱)_第1张图片

 代码

#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

你可能感兴趣的:(C++,c++)