关于用c语言演奏《天空之城》那些事
前言
最近挖库存挖到了一个刚刚学习编程的时候用C语言写的生日祝福代码,其中用C语言代码用Beep函数控制蜂鸣器根据音调高低的不同演奏了一曲《天空之城》,满满都是怀念的感觉啊!
或许这没有什么技术难度,但是却是为了学习编程培养了浓厚的兴趣,记得当时我还用C语言实现了炫屏功能、琢磨出如何用C语言打印出十八种爱心和演奏了生日快乐歌等等,hahaha~还是挺好玩的。
关于用c语言演奏《天空之城》那些事
谱子:
琴谱:
代码谱:
谱子:
琴谱:
代码谱:
#include<iostream>
#include <windows.h>
#include<string>
#include<math.h>
#include<stdlib.h>
#include <cstdio>void Tiansing(){const int qdo=262;const int qre=294;const int qmi=330; //q前缀为低音,1后缀为高音,s前缀为半音阶const int qfa=349;const int qso=392;const int qla=440;const int qsi=494;const int d=523;const int re=578;const int mi=659;const int fa=698;const int so=784;const int la=880;const int si=988;const int do1=1046;const int re1=1175;const int mi1=1318;const int fa1=1480;const int so1=1568;const int la1=1760;const int si1=1976;const int sqdo=277;const int sqre=311;const int sqfa=370;const int sqso=415;const int sqla=466;const int sdo=554;const int sre=622;const int sfa=740;const int sso=831;const int sla=932;const int sdol=1046;const int sre1=1245;const int sfa1=1480;const int sso1=1661;const int sla1=1865;int pai=400,ban=200;int ting=128;Sleep(1000);Beep(la,ban);Beep(si,ban);Sleep(ting);Beep(do1,pai+ban);Beep(si,ban);Sleep(ting);Beep(do1,pai);Sleep(ting);Beep(mi1,pai);Sleep(ting);Beep(si,3*pai);Sleep(ting);Beep(mi,ban);Beep(mi,ban);Beep(la,ban+pai);Beep(so,ban);Sleep(ting);Beep(la,pai);Sleep(ting);Beep(do1,pai);Sleep(ting);Beep(so,2*pai);Sleep(ting);Sleep(pai);Beep(mi,ban);Sleep(ting/2);Beep(mi,ban);Sleep(ting/2);Beep(fa,pai+ban);Beep(mi,ban);Sleep(ting);Beep(fa,ban);Beep(do1,ban+pai);Sleep(ting);Beep(mi,2*pai);Sleep(ting);Sleep(ban);Beep(do1,ban);Sleep(ting/2);Beep(do1,ban);Sleep(ting/2);Beep(do1,ban);Sleep(ting/2);Beep(si,ban+pai);Beep(sfa,ban);Sleep(ting);Beep(sfa,pai);Beep(si,pai);Sleep(ting);Beep(si,2*pai);Sleep(ting);Sleep(pai);Beep(la,ban);Beep(si,ban);Sleep(ting);Beep(do1,pai+ban);Beep(si,ban);Sleep(ting);Beep(do1,pai);Sleep(ting);Beep(mi1,pai);Sleep(ting);Beep(si,2*pai);Sleep(ting);Sleep(pai);Beep(mi,ban);Sleep(20);Beep(mi,ban);Sleep(ting);Beep(la,pai+ban);Beep(so,ban);Sleep(ting);Beep(la,pai);Sleep(ting);Beep(do1,pai);Sleep(ting);Beep(so,3*pai);Sleep(ting+ban);Beep(mi,ban);Sleep(ting/2);Beep(fa,pai);Sleep(ting);Beep(do1,ban);Beep(si,ban);Sleep(20);Beep(si,pai);Sleep(ting);Beep(do1,pai);Sleep(ting);Beep(re1,ban);Sleep(20);Beep(re1,ban);Sleep(20);Beep(mi1,ban);Sleep(ting/2);Beep(do1,pai);Sleep(ting+pai);Beep(do1,pai);Beep(si,ban);Sleep(ting);Beep(la,ban);Sleep(20);Beep(la,ban);Sleep(ting);Beep(si,pai);Sleep(ting);Beep(sso,pai);Sleep(ting);Beep(sso,2*pai);Sleep(ting+pai);Beep(do1,ban);Beep(re1,ban);Sleep(ting);Beep(mi1,pai+ban);Beep(re1,ban);Sleep(ting);Beep(mi1,pai);Sleep(ting);Beep(fa1,pai);Sleep(ting);Beep(re1,2*pai);Sleep(pai+ting);Beep(so,ban);Sleep(20);Beep(so,ban);Sleep(ting);Beep(do1,ban);Beep(si,ban);Sleep(ting);Beep(do1,pai);Sleep(ting);Beep(mi1,pai);Sleep(ting);Beep(mi1,2*pai);Sleep(ting+2*pai);Beep(la,ban);Beep(si,ban);Sleep(ting);Beep(do1,pai);Sleep(ting);Beep(si,pai);Sleep(ting);Beep(re1,ban);Sleep(20);Beep(re1,ban);Sleep(ting);Beep(do1,pai+ban);Beep(so,ban);Sleep(20);Beep(so,pai);Sleep(pai+ting);Beep(fa1,pai);Sleep(ting);Beep(mi1,pai);Sleep(ting);Beep(re1,pai);Sleep(ting);Beep(do1,pai);Sleep(ting);Beep(mi1,4*pai);Beep(mi1,pai*2);Sleep(pai+ting);Beep(mi1,pai);Sleep(ting);Beep(la1,2*pai);Sleep(ting);Beep(so1,pai);Sleep(ting);Beep(so1,pai);Sleep(ting);Beep(mi1,ban);Sleep(ting/2);Beep(re1,ban);Sleep(ting);Beep(do1,pai);Sleep(ting+ban);Beep(do1,ban);Sleep(ting);Beep(re1,pai);Sleep(ting);Beep(do1,ban);Beep(re1,ban);Sleep(20);Beep(re1,ban);Sleep(ting);Beep(so1,pai);Sleep(ting);Beep(mi1,2*pai);Sleep(ting+pai);Beep(mi,pai);Sleep(ting);Beep(la1,2*pai);Sleep(ting);Beep(so1,2*pai);Sleep(ting);Beep(mi1,ban);Beep(re1,ban);Sleep(ting);Beep(do1,2*pai);Sleep(ting+ban);Beep(do1,ban);Sleep(ting);Beep(re1,pai);Sleep(ting);Beep(do1,ban);Beep(re1,ban);Sleep(20);Beep(re1,ban);Sleep(ting);Beep(si,pai);Sleep(ting);Beep(la,2*pai);Sleep(ting);Beep(la,ban);Beep(si,ban);Beep(do1,pai+ban);Beep(si,ban);Sleep(ting);Beep(do1,pai);Sleep(ting);Beep(mi1,pai);Sleep(ting);Beep(si,3*pai);Sleep(ting);Beep(mi,ban);Beep(mi,ban);Beep(la,ban+pai);Beep(so,ban);Sleep(ting);Beep(la,pai);Sleep(ting);Beep(do1,pai);Sleep(ting);Beep(so,2*pai);Sleep(ting);Sleep(pai);Beep(mi,ban);Sleep(ting/2);Beep(mi,ban);Sleep(ting/2);Beep(fa,pai+ban);Beep(mi,ban);Sleep(ting);Beep(fa,ban);Beep(do1,ban+pai);Sleep(ting);Beep(mi,2*pai);Sleep(ting);Sleep(ban);Beep(do1,ban);Sleep(ting/2);Beep(do1,ban);Sleep(ting/2);Beep(do1,ban);Sleep(ting/2);Beep(si,ban+pai);Beep(sfa,ban);Sleep(ting);Beep(sfa,pai);Beep(si,pai);Sleep(ting);Beep(si,2*pai);Sleep(ting);Sleep(pai);Beep(la,ban);Beep(si,ban);Sleep(ting);Beep(do1,pai+ban);Beep(si,ban);Sleep(ting);Beep(do1,pai);Sleep(ting);Beep(mi1,pai);Sleep(ting);Beep(si,2*pai);Sleep(ting);Sleep(pai);Beep(mi,ban);Sleep(20);Beep(mi,ban);Sleep(ting);Beep(la,pai+ban);Beep(so,ban);Sleep(ting);Beep(la,pai);Sleep(ting);Beep(do1,pai);Sleep(ting);Beep(so,3*pai);Sleep(ting+ban);Beep(mi,ban);Sleep(ting/2);Beep(fa,pai);Sleep(ting);Beep(do1,ban);Beep(si,ban);Sleep(20);Beep(si,pai);Sleep(ting);Beep(do1,pai);Sleep(ting);Beep(re1,ban);Sleep(20);Beep(re1,ban);Sleep(20);Beep(mi1,ban);Sleep(ting/2);Beep(do1,pai);Sleep(ting+pai);Beep(la,4*pai);Sleep(1000);}int mian(){Tiansing();return 0;
}
番外:
#include <stdio.h>
int main()
{
int n;
int b=20;
for(n=0;n<21;n++)
{
printf("\a\a");
printf("%d",b-n);
}
getchar();
return 0;
}
Question:
书上说\a这个字符可以使电脑发出声音,试了下果然,大约是是1秒钟滴2下,然后我就编了个类似于倒计时的小程序,但发现这根本行不通,数字刷一下出来完了,声音还是一下一下响(估计这个响的声音与输出bel字符是不相符的),而且程序老崩溃。请问这是怎么回事啊?怎么才能做到,响两声后,在输出b的值呢?
Reply:
你是想声音和数字都慢慢的出来吗?你的程序太短小,在一瞬间就执行完了,其实声音可能响了20下,但是是在一瞬间同时发出来的,你分辨不出来而已。可以包含windows头文件,调用sleep函数延迟发声和打印,就可以出现有节奏的效果。一次发声只需要打印一个'\a'就可以了。
#include <stdio.h>#include<windows.h> // 包含windows头文件int main(){int n;int b=20;for(n=0;n<21;n++){printf("\a");printf("%d\n", b - n);Sleep(500); // 延迟 500 毫秒}getchar();return 0;}
关于用c语言演奏《天空之城》那些事相关推荐
- C语言指针的那些事:第三篇(函数指针,指针函数,函数指针数组,指向函数指针数组的指针)
文章目录 1. 函数指针 1)函数指针的例题 2. 指针函数 3. 函数指针数组 1)函数指针数组的用途 4. 指向函数指针数组的指针 5. 一些后话 1. 函数指针 函数指针就是指向函数的指针:本质 ...
- 和在java和c语言中的那些事
一.在c语言中&和&&: 1.&:取地址符号 #include<stdio.h> main() {int a; scanf("%d",& ...
- 拾叁-关于R语言中括号的一些事,以及因子、向量转换的一些情
在R语言中,遇到什么事情,请别犹豫,立刻输入?somethingunknow(当然somethingunknow的意思是some thing unknow,例如你不懂函数ctree,你要输入?ctre ...
- Matlab演奏天空之城
Matlab--天空之城 主函数: Fs=8192; y1 = air_city(6,0.25,-1); y2 = air_city(7,0.25,-1); y=[y1,y2]; y1 = air_c ...
- 【C语言】利用Beep函数实现歌曲演奏(C语言演奏)
本程序使用了文件指针,字符串数组,Beep蜂鸣函数等完成. 不用依靠单片机,我们依然可以实现音乐的演奏,此程序设计较为简单,仅支持在四分音符以上,六拍以下的音乐使用,也可以自行更改曲谱的延长时间实现更 ...
- CAPL语言编译的那些事
CAPL是类似于C语言的面向过程语言,这是众所周知的.C或C++代码在执行前需要编译成机器语言,也就是二进制语言,如此能够更快速运行.CAPL程序也是一样的,需要编译后执行 在CAPL Browser ...
- matlab 天空之城,matlab演奏天空之城
%天空の城 fs = 44100; % sample rate dt = 1/fs; T16 = 0.125; t16 = 0:dt:T16; [temp k] = size(t16); t1 = l ...
- 精通python要多久-精通python 或者R语言大约需要多长时间?怎样算精通?
谢邀!这个问题其实蛮难回答的,因为我还不是精通人士. 要想精通一门语言,三件事是必备的: 1.爱它并全身心投入使用: 2.使用并用过很多次: 3.使用过程中,每次用追求一个大的变化: 要想精通pyth ...
- C语言 小游戏之贪吃蛇
还记得非常久曾经听群里人说做贪吃蛇什么的,那时候大一刚学了C语言,认为非常难,根本没什么思路. 前不久群里有些人又在谈论C语言贪吃蛇的事了,看着他们在做,我也打算做一个出来. 如今大三,经过了这一年半 ...
- 对c语言课程的心得体会,C语言课程设计心得体会
C语言课程设计心得体会 回想这三周C语言课程设计的过程,真是痛并快乐着. 从领到书的那一刻,我就很郁闷?<C语言程序设计>到底事学什么的,到底有什么用.刚开始上课时?还在迷茫这门课程是用来 ...
最新文章
- c语言编程软件出现问号,【C语言】if语句和问号表达式
- 上海公布公交卡成本 押金拟从30元调至20元
- 研究生申请:就一个字
- Asp.Net中几种相似数据绑定标记符号的解释及用法
- 网众linux安装教程,网众Linux搭建Samba教程
- 李飞飞斯坦福博士提出SLIDE模型
- 展讯召开2017全球合作伙伴大会,发布两款新平台及新战略
- 基本功 | Java即时编译器原理解析及实践
- centos命令行xkill
- mysql 事物gljbie,提升mysql性能几大参数丶章怀柔
- Java中stringbutter_java 中String和StringBuffer与StringBuilder的区别及使用方法
- Modbus-RTU入门篇
- shell学习(一)简单示例help用法
- 闽江师范高等专科学校计算机系成立时间,闽江师范高等专科学校2018届毕业典礼...
- Ubuntu下用Emacs编写D语言程序
- [转]NLP关键词提取方法总结及实现
- T007V-采购订单税码对应的税率所在后台表
- 闸门机制(Gate Mechanism)
- Linux命令手动清除缓存
- android 8.0 屏蔽首次开机弹出的‘即将完成 Android 更新’的弹窗