博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
调用bios喇叭发声
阅读量:5234 次
发布时间:2019-06-14

本文共 2052 字,大约阅读时间需要 6 分钟。

话不多说,上代码:

 

#include 
#include
#include
using namespace std;const int DO = 261;const int RE = 293;const int MI = 329;const int FA = 349;const int SO = 392;const int LA = 440;const int TI = 493;const int DO_ = 130;const int RE_ = 147;const int MI_ = 165;const int FA_ = 174;const int SO_ = 186;const int LA_ = 220;const int TI_ = 247;int frequency(char note){ static map
table; if(table.size() == 0){ table['1'] = DO; table['2'] = RE; table['3'] = MI; table['4'] = FA; table['5'] = SO; table['6'] = LA; table['7'] = TI; table['c'] = DO_; table['d'] = RE_; table['e'] = MI_; table['f'] = FA_; table['g'] = SO_; table['a'] = LA_; table['b'] = TI_; } return table.find(note) -> second;}class music{ private: string notes; int tenuto; public: music(string &song , int tenuto_) { notes = song; tenuto = tenuto_; play(notes.end(),tenuto);} void play(string::iterator it,int duration );};void music::play(string::iterator it, int duration){ char note = *it; if( it == notes.begin() ) return; if( note == '-') play( it - 1, duration + tenuto); else { if( isalnum(note) ) { play( it - 1, 0); Beep(frequency(note), tenuto + duration); } else play( it - 1, duration); } } string bee = "\ 5 3 3 - | 4 2 2 - | 1 2 3 4 | 5 5 5 - | \ 5 3 3 - | 4 2 2 - | 1 3 5 5 | 3 3 3 - | \ 2 2 2 2 | 2 3 4 - | 3 3 3 3 | 3 4 5 - | \ 5 3 3 - | 4 2 2 - | 1 3 5 5 | 1 3 1 - | \ "; string happynewyear = "\ 1 1 1 - g - | 3 3 3 - 1 - | 1 3 5 - 5 - | \ 4 3 2 - - - | 2 3 4 - 4 - | 3 2 3 - 1 - | \ 1 3 2 - g - | b 2 1 - - - | \ "; int main() { music m(bee, 300); music m2(happynewyear, 200); return 0; }

 

转载于:https://www.cnblogs.com/wangyaning/p/7854025.html

你可能感兴趣的文章
ARTS打卡第3周
查看>>
linux后台运行和关闭SSH运行,查看后台任务
查看>>
cookies相关概念
查看>>
CAN总线波形中ACK位电平为什么会偏高?
查看>>
MyBatis课程2
查看>>
桥接模式-Bridge(Java实现)
查看>>
svn客户端清空账号信息的两种方法
查看>>
springboot添加servlet的两种方法
查看>>
java的Array和List相互转换
查看>>
layui父页面执行子页面方法
查看>>
如何破解域管理员密码
查看>>
Windows Server 2008 R2忘记管理员密码后的解决方法
查看>>
IE11兼容IE8的设置
查看>>
windows server 2008 R2 怎么集成USB3.0驱动
查看>>
Foxmail:导入联系人
查看>>
vue:axios二次封装,接口统一存放
查看>>
vue中router与route的区别
查看>>
js 时间对象方法
查看>>
网络请求返回HTTP状态码(404,400,500)
查看>>
Spring的JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate
查看>>