C++音乐播放系统

C++音乐播放系统

学习c++的同学们都知道,c++是一个一本正经的编程语言,因该没有人用它来做游戏、做病毒、做...做...做音乐播放系统吧!!

音乐的好处

  • 提升情绪:音乐能够影响我们的情绪。快节奏的音乐能够增加兴奋和活力,而慢节奏的音乐则能够帮助放松和减压。选择适合自己心情的音乐,可以帮助我们调整情绪状态。

  • 减轻压力:听音乐可以帮助释放压力。研究发现,愉悦的音乐能够降低我们的应激反应,减轻紧张和焦虑感。

  • 提高认知能力:学习音乐可以促进大脑的发育和认知能力的提高。音乐的学习过程需要我们使用多个感官和认知技能,如记忆、注意力和空间感知等。

  • 增强专注力:音乐可以帮助我们集中注意力。一些研究表明,在进行需要专注的任务时,背景音乐可以提高工作效率和注意力的集中程度。

  • 促进社交:音乐有助于建立社交联系。参与音乐活动,如合唱团、乐队或音乐课程,能够与他人分享共同的兴趣爱好,增强社交关系。

  • 增强记忆力:音乐与记忆有很强的联系。通过将信息与音乐进行关联,能够帮助记忆和提高记忆力。

  • 提高创造力:音乐可以激发创造力。音乐的创作和演奏过程中,我们可以发挥自己的想象力和创造力,表达自己的情感和思想。

既然音乐这么有用,我忍不住用c++做一个音乐播放系统

c++发出声音

c++是一种功能强大、灵活且高效的编程语言,适用于各种应用场景。它在计算机科学和软件工程领域有着广泛的应用,是一门值得学习和掌握的编程语言。它提供了丰富的特性和工具,使得开发人员能够编写高质量、可维护和高性能的代码。然而,由于其复杂性和灵活性,学习和掌握c++可能需要一定的时间和经验。

c++如何在不加入任何特殊库的情况下发出声音呢?

方法十分的简单:

cpp 复制代码
#include <Windows.h>
int main() {
    Beep(440, 1000); // 发出440Hz的声音,持续1秒钟
    return 0;
}

Beep函数!!

Beep函数的作用很简单,就是发出不同高低、不同长短的嗡鸣声。但要想让这个东西形成音乐,好像还差点东西。。。

乐谱与赫兹对照

我在网上经过20分钟的查找,找到了一个十分可靠的赫兹与C调的对照表:

因此我们可以做三个数组,分别代表低音、中音以及高音,再将这些数据打上去,得到了下面是三个数组

cpp 复制代码
int s1[2][10]={{0,262,294,330,349,392,440,494},
			   {0,277,311,-99,370,415,466,-99}};

int s2[2][10]={{0,523,587,659,698,784,880,988},
			   {0,554,622,-99,740,831,932,-99}};

int s3[2][10]={{0,1046,1175,1318,1397,1568,1760,1976},
			   {0,1109,1245,-999,1480,1661,1865,-999}};

这样在进行Beep操作就简单多了~~

把歌打到c++上

这里属于暴力打代码,我就把代码放在下面了~~

cpp 复制代码
#include <bits/stdc++.h>
#include <windows.h>
using namespace std;
int s1[2][10]={{0,262,294,330,349,392,440,494},
			   {0,277,311,-99,370,415,466,-99}};
			   
int s2[2][10]={{0,523,587,659,698,784,880,988},
			   {0,554,622,-99,740,831,932,-99}};
			   
int s3[2][10]={{0,1046,1175,1318,1397,1568,1760,1976},
			   {0,1109,1245,-999,1480,1661,1865,-999}};
 
void cppmusic()
{
	Beep(s2[0][3],400);
	Beep(s2[0][3],400);
	Beep(s2[0][3],800);
	
	Beep(s2[0][3],400);
	Beep(s2[0][3],400);
	Beep(s2[0][3],800);
	
	Beep(s2[0][3],400);
	Beep(s2[0][5],400);
	Beep(s2[0][1],600);
	Beep(s2[0][2],200);
	Beep(s2[0][3],1600);
	
	Beep(s2[0][4],400);
	Beep(s2[0][4],400);
	Beep(s2[0][4],600);
	Beep(s2[0][4],200);
	Beep(s2[0][4],400);
	Beep(s2[0][3],400);
	Beep(s2[0][3],400);
	Beep(s2[0][3],200);
	Beep(s2[0][3],200);
	
	Beep(s2[0][3],400);
	Beep(s2[0][2],400);
	Beep(s2[0][2],400);
	Beep(s2[0][1],400);
	Beep(s2[0][2],800);
	Beep(s2[0][5],800);
	
	Beep(s2[0][3],400);
	Beep(s2[0][3],400);
	Beep(s2[0][3],800);
	
	Beep(s2[0][3],400);
	Beep(s2[0][3],400);
	Beep(s2[0][3],800);
	
	Beep(s2[0][3],400);
	Beep(s2[0][5],400);
	Beep(s2[0][1],600);
	Beep(s2[0][2],200);
	Beep(s2[0][3],1600);
	
	Beep(s2[0][4],400);
	Beep(s2[0][4],400);
	Beep(s2[0][4],600);
	Beep(s2[0][4],200);
	Beep(s2[0][4],400);
	Beep(s2[0][3],400);
	Beep(s2[0][3],400);
	Beep(s2[0][3],200);
	Beep(s2[0][3],200);
	
	Beep(s2[0][5],400);
	Beep(s2[0][5],400);
	Beep(s2[0][4],400);
	Beep(s2[0][2],400);
	Beep(s2[0][1],1200);
}
 
int main()
{
	cppmusic();
	return 0;
}

另外想要循环播放也很简单,只要加个循环就行了~~

相关推荐
呜喵王阿尔萨斯2 分钟前
C/C++ const -- 多义混乱
c语言·开发语言·c++
__log2 分钟前
幂等性设计:从“重复提交“到“稳如磐石“的系统防护
java·开发语言·spring boot
spider_xcxc3 分钟前
Helm 部署 K8s 集群完整笔记
java·开发语言·kubernetes
海清河晏1114 分钟前
Qt实战:从零构建美化登录界面
开发语言·c++·qt
一只小灿灿14 分钟前
C++ 各类特殊符号、运算符
开发语言·c++
Fu_Lin_18 分钟前
《Qt嵌入式从零基础到精通》前言与阅读指南
开发语言·qt
名字还没想好☜21 分钟前
Go 的 select 实战:超时、非阻塞收发与优雅退出的三个套路
开发语言·数据库·golang·go·并发
geovindu22 分钟前
java: Backtracking Algorithm
java·开发语言·windows·后端·算法·回溯算法
晚风叙码42 分钟前
C++ vector底层模拟实现与迭代器失效深度剖析
c++·算法