C++音乐播放系统
C++音乐播放系统
- 音乐的好处
- c++发出声音
- 乐谱与赫兹对照
- 把歌打到c++上

学习c++的同学们都知道,c++是一个一本正经的编程语言,因该没有人用它来做游戏、做病毒、做…做…做音乐播放系统吧!!
音乐的好处
-
提升情绪:音乐能够影响我们的情绪。快节奏的音乐能够增加兴奋和活力,而慢节奏的音乐则能够帮助放松和减压。选择适合自己心情的音乐,可以帮助我们调整情绪状态。
-
减轻压力:听音乐可以帮助释放压力。研究发现,愉悦的音乐能够降低我们的应激反应,减轻紧张和焦虑感。
-
提高认知能力:学习音乐可以促进大脑的发育和认知能力的提高。音乐的学习过程需要我们使用多个感官和认知技能,如记忆、注意力和空间感知等。
-
增强专注力:音乐可以帮助我们集中注意力。一些研究表明,在进行需要专注的任务时,背景音乐可以提高工作效率和注意力的集中程度。
-
促进社交:音乐有助于建立社交联系。参与音乐活动,如合唱团、乐队或音乐课程,能够与他人分享共同的兴趣爱好,增强社交关系。
-
增强记忆力:音乐与记忆有很强的联系。通过将信息与音乐进行关联,能够帮助记忆和提高记忆力。
-
提高创造力:音乐可以激发创造力。音乐的创作和演奏过程中,我们可以发挥自己的想象力和创造力,表达自己的情感和思想。
既然音乐这么有用,我忍不住用c++做一个音乐播放系统
c++发出声音
c++是一种功能强大、灵活且高效的编程语言,适用于各种应用场景。它在计算机科学和软件工程领域有着广泛的应用,是一门值得学习和掌握的编程语言。它提供了丰富的特性和工具,使得开发人员能够编写高质量、可维护和高性能的代码。然而,由于其复杂性和灵活性,学习和掌握c++可能需要一定的时间和经验。
c++如何在不加入任何特殊库的情况下发出声音呢?
方法十分的简单:
#include <Windows.h>
int main() {Beep(440, 1000); // 发出440Hz的声音,持续1秒钟return 0;
}
Beep函数!!
Beep函数的作用很简单,就是发出不同高低、不同长短的嗡鸣声。但要想让这个东西形成音乐,好像还差点东西。。。
乐谱与赫兹对照
我在网上经过20分钟的查找,找到了一个十分可靠的赫兹与C调的对照表:

因此我们可以做三个数组,分别代表低音、中音以及高音,再将这些数据打上去,得到了下面是三个数组
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++上
这里属于暴力打代码,我就把代码放在下面了~~
#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;
}
另外想要循环播放也很简单,只要加个循环就行了~~
相关文章:
C++音乐播放系统
C音乐播放系统 音乐的好处c发出声音乐谱与赫兹对照把歌打到c上 学习c的同学们都知道,c是一个一本正经的编程语言,因该没有人用它来做游戏、做病毒、做…做…做音乐播放系统吧!! 音乐的好处 提升情绪:音乐能够影响我们…...
Django笔记之log日志记录详解
以下是一个简单的 logging 模块示例,可以先预览一下,接下来会详细介绍各个模块的具体功能: LOGGING {version: 1,disable_existing_loggers: False,formatters: {verbose: {format: %(levelname)s %(message)s,}},handlers: {file_1: {leve…...
vue局部打印多页面pdf
技术背景 html打印程pdf,使用的官方提供的window.print()打印的样式 media print {} 方法一 const printContent this.$refs.bodyright;var textInput printContent.getElementsByTagName("input");for (var i 0; i < textInput.length; i) {textInput[i].se…...
指定或降低Rust 工具链的版本
要更改 Rust 工具链的版本,您可以使用以下命令之一: rustup default stable:使用 stable 版本的 Rust 工具链作为默认版本。rustup default beta:使用 beta 版本的 Rust 工具链作为默认版本。rustup default nightly:使…...
数据驱动成功:商城小程序分析与改进
在当今数字化时代,商城小程序成为了企业与消费者之间互动的重要途径。然而,一个成功的商城小程序不仅仅是一个购物平台,更需要通过数据分析不断进行改进和优化,以提升用户体验和营销效果。本文将深入探讨如何利用数据驱动的方式进…...
基于GUI的卷积神经网络和长短期神经网络的语音识别系统,卷积神经网的原理,长短期神经网络的原理
目录 背影 卷积神经网络CNN的原理 卷积神经网络CNN的定义 卷积神经网络CNN的神经元 卷积神经网络CNN的激活函数 卷积神经网络CNN的传递函数 长短期神经网络的原理 基于GUI的卷积神经网络和长短期神经网络的语音识别系统 代码下载链接:基于MATLABGUI编程的卷积神经网络和长短期…...
Docker环境安装elasticsearch和kibana
一、安装elasticsearch 创建es-network,让es、kibana在同一个网段: docker network create --driverbridge --subnet192.168.1.10/24 es-network运行elasticsearch docker run -d \ --name elasticsearch \ # 容器名 --hostname elasticsearch # 主机…...
【剖析STL】vector
vector的介绍及使用 1.1 vector的介绍 cplusplus.com/reference/vector/vector/ vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素 进行访问,和数组一样高效。但是…...
Redis、Memcache和MongoDB的区别
>>Memcached Memcached的优点: Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key、value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右)。适用于最大程度…...
2023中大ACM游记
游记 中午快十二点时才到了广州六中,在附近吃了塔斯汀汉堡,味道还不错。 十二点半才卡点到了考场,本以为来晚了,但老师说比赛时间延迟,十二点五十才开场。 三个人用一台电脑,这种比赛方式还是第一次遇到…...
记一次线上OOM事故
OOM 问题 linux内核有个机制叫OOM killer(Out-Of-Memory killer),当系统需要申请内存却申请不到时,OOM killer会检查当前进程中占用内存最大者,将其杀掉,腾出内存保障系统正常运行。 一般而言,一个应用的内存逐渐增加&…...
Learning to Super-resolve Dynamic Scenes for Neuromorphic Spike Camera论文笔记
摘要 脉冲相机使用了“integrate and fire”机制来生成连续的脉冲流,以极高的时间分辨率来记录动态光照强度。但是极高的时间分辨率导致了受限的空间分辨率,致使重建出的图像无法很好保留原始场景的细节。为了解决这个问题,这篇文章提出了Sp…...
怎么使用手机远程控制Win10电脑?
可以使用手机远程控制电脑吗? “近期,我将出差一段时间。问题是,我希望能够从很远的地方浏览家里电脑上的一些东西,但我不会一直随身携带笨重的笔记本电脑。我可以手机远程访问Windows电脑吗? ” 当然&am…...
W6100-EVB-PICO 做UDP Client 进行数据回环测试(八)
前言 上一章我们用开发板作为UDP Server进行数据回环测试,本章我们让我们的开发板作为UDP Client进行数据回环测试。 连接方式 使开发板和我们的电脑处于同一网段: 开发板通过交叉线直连主机开发板和主机都接在路由器LAN口 测试工具 网路调试工具&a…...
Typora 相对路径保存图片以及 Gitee 无法显示图片
目录 Typora 相对路径保存图片 Gitee 无法显示图片 Typora 相对路径保存图片 Step1:修改 Typora 的偏好设置 自动在当前目录创建名为 "./${filename}.assets" 的文件夹粘贴图片到 md 中时,图片会自动另存到 "./${filename}.assets&qu…...
深入探索:Kali Linux 网络安全之旅
目录 前言 访问官方网站 导航到下载页面 启动后界面操作 前言 "Kali" 可能指的是 Kali Linux,它是一种基于 Debian 的 Linux 发行版,专门用于渗透测试、网络安全评估、数字取证和相关的安全任务。Kali Linux 旨在提供一系列用于测试网络和…...
Python 实现语音转文本
Python 实现语音转文本 Python可以使用多种方式来实现语音转文本,下面介绍其中两种。 方法一:使用Google Speech API Google Speech API 是 Google 在 2012 年推出的一个 API,可以用于实现语音转文本。使用 Google Speech API 需要安装 Sp…...
使用DSA、ECDSA、Ed25519 和 rfc6979_rust实现高安全性的数字签名
第一部分:背景和DSA简介 在数字世界中,确保数据的真实性和完整性是至关重要的。一个有效的方法是使用数字签名。在这篇文章中,我们将探讨四种流行的加密签名算法:DSA、ECDSA、Ed25519 和 rfc6979_rust。我们将重点讲解它们的基础…...
“深入探索JVM内部机制:解密Java虚拟机的奥秘“
标题:深入探索JVM内部机制:解密Java虚拟机的奥秘 摘要:本文将深入探索Java虚拟机(JVM)的内部机制,介绍JVM的基本原理、运行时数据区域以及垃圾回收机制,并通过示例代码解释这些概念。 正文&am…...
css3新增属性
文章目录 css3新增属性box-shadowborder-radius设置椭圆 position: sticky;渐变背景线性渐变可重复的渐变背景 径向渐变可重复的渐变背景 过渡分属性 动画关键帧与transition的关系demo 变形平移使用 旋转使用 其他使用立体效果perspective元素位于3D空间还是平面中 缩放变形的…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
