大一上最喜欢的一个做品

。刚开始只是一个能自动发出小星星音乐的小程序XD小程序

效果图:ui

代码以下:spa

/*This is a small piano.这是一个小钢琴哦~*/

#include

#include //非缓冲输入

#include

#include

#pragma warning(disable:4996) //to use getche() in VS needs it

#define TICK 450

#define DOH 523

#define RAY 587

#define MI 659

#define FA 698

#define SOH 784

#define LA 880

#define TEE 980

#define DOHH 1060

#define RAYH 1175

#define MIH 1318

#define FAH 1397

#define SOHH 1568

#define LAH 1760

#define TEEH 1976

void welcome(void);

void display(void);

void playmusic1(void); //play music with color

void playmusic2(void); //play music without color

void thanks(void);

void choose1(void); //choose a type

void choose2(void); //choose a song

void song1(void);

void song2(void);

char a;

int choice,choice2;

int main(void)

{

welcome();

if (choice == 2)

{

printf("Enter numbers to play music:('p' to quit)\n");

while (1)

{

playmusic1();

if (a == 'p')

break;

}

}

else

{

printf("Please choose the song you want to play:\n"

"1.Castle In The Sky(天空之城)\n2.星の在り処(星之所在)\n");

choose2();

}

thanks();

return 0;

}

void welcome(void)

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);

printf("1-DOH 2-RAY 3-MI 数字1到7,字母Q\n"

"4-FA 5-SOH 6-LA WERTYU分别对应音阶\n"

"7-TEE Q-DOHH W-RAYH\n"

"E-MIH R-FAH T-SOH\n"

"Y-LAH U-TEEH\n");

display();

choose1();

}

void display(void)

{

int i;

for (i = 0; i < 80; i++)

printf("=");

}

void choose1(void)

{

printf("Choose a game type:\n1.play songs(弹奏模式)\t2.free play(自由模式)\n");

while ((scanf("%d", &choice)) != 1)

{

while (getchar() != '\n');

printf("Please enter a number ~");

}

display();

}

void choose2(void)

{

while ((scanf("%d", &choice2)) != 1)

{

while (getchar() != '\n')

printf("Please enter a number ~");

}

display();

if (choice2 == 1)

song1();

else song2();

printf("Enter numbers to play music:('p' to quit)\n");

while (1)

{

playmusic2();

if (a == 'p')

break;

}

}

void playmusic1(void) //发声并设置颜色

{

a = getch();

switch (a)

{

case '1':Beep(DOH, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 30); printf("DOH "); break;

case '2':Beep(RAY, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 60); printf("RAY "); break;

case '3':Beep(MI, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 90); printf("MI "); break;

case '4':Beep(FA, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 120); printf("FA "); break;

case '5':Beep(SOH, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 150); printf("SOH "); break;

case '6':Beep(LA, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 180); printf("LA "); break;

case '7':Beep(TEE, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 210); printf("TEE "); break;

case 'q':Beep(DOHH, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 30); printf("DOHH "); break;

case 'w':Beep(RAYH, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 60); printf("RAYH "); break;

case 'e':Beep(MIH, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 90); printf("MIH "); break;

case 'r':Beep(FAH, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 120); printf("FA "); break;

case 't':Beep(SOHH, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 150); printf("SOH "); break;

case 'y':Beep(LAH, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 180); printf("LA "); break;

case 'u':Beep(TEEH, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 210); printf("TEE "); break;

case '\n':break;

default :break;

}

}

void playmusic2(void) //发声

{

a = getch();

switch (a)

{

case '1':Beep(DOH, TICK); break;

case '2':Beep(RAY, TICK); break;

case '3':Beep(MI, TICK); break;

case '4':Beep(FA, TICK); break;

case '5':Beep(SOH, TICK); break;

case '6':Beep(LA, TICK); break;

case '7':Beep(TEE, TICK); break;

case 'q':Beep(DOHH, TICK); break;

case 'w':Beep(RAYH, TICK); break;

case 'e':Beep(MIH, TICK); break;

case 'r':Beep(FAH, TICK); break;

case 't':Beep(SOHH, TICK); break;

case 'y':Beep(LAH, TICK); break;

case 'u':Beep(TEEH, TICK); break;

case '\n':break;

default:break;

}

}

void thanks(void)

{

putchar('\n');

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);

display();

printf("Thanks for playing~~~\n");

system("pause");

}

void song1(void) //天空之城

{

printf("67Q7QE7 3656Q5 3434Q3 \n");

}

void song2(void) //星之所在

{

printf("Q7QE7 656Q5 434Q75 67QEW Q7QE75 67QWE REWQ7E\n");

}

C语言编译键盘钢琴,键盘小钢琴[C语言][自制]相关推荐

  1. c语言编译开头,#includestdio.h,为什么C语言代码开头都有这一行?

    作者 闫小林 白天搬砖,晚上做梦.我有故事,你有酒么? #include是在程序编译之前要进行处理的的内容,因此也称为预处理命令. 先介绍下include,include是一个计算机专业术语,指C/C ...

  2. golang语言编译的二进制可执行文件为什么比 C 语言大(转载)

    最近一位朋友问我"为什么同样的hello world 入门程序"为什么golang编译出来的二进制文件,比 C 大,而且大很多.我做了个测试,来分析这个问题.C 语言的hello ...

  3. c语言编译时检查逻辑错误吗,C语言陷阱与技巧20节,自定义“编译时”assert方法,在代码编译阶段检查“逻辑”错误...

    在C语言程序开发中,程序员写代码时应该考虑的"面面俱到",这样才能写出功能稳定的程序.例如,在实现 open() 函数时,先完成它的功能固然是重要的,但是程序员还需要考虑各种&qu ...

  4. 单片机c语言编译软件6,eUIDE下载-单片机c语言编译器 v1.07.32.23 官方版 - 安下载...

    eUIDE是一款专业的单片机c语言编译器,EM78系列集成开发环境是面向项目的ELAN EM78系列微控制器的开发工具,它包括UICE开发在线仿真器和eUIDE软件工具:eUIDE是基于PC端的UIC ...

  5. c语言有啥简单的小程序,c语言-简单小程序-简单算法

    <c语言-简单小程序-简单算法>由会员分享,可在线阅读,更多相关<c语言-简单小程序-简单算法(19页珍藏版)>请在人人文库网上搜索. 1.以下小程序都在 TC2.0 中运行通 ...

  6. c语言编译自顶向下程序设计,广东工业大学C语言程序设计考试试卷(3份)

    内容简介: 广东工业大学C语言程序设计考试试卷(06,A) 一.判断题(正确打"√",错误打"×")(每题1分,共10分) 1.C程序是以函数为单位进行编译的. ...

  7. c语言编译如何去掉warning,16种C语言编译警告(Warning)类型的解决方法

    当编译程序发现程序中某个地方有疑问,可能有问题时就会给出一个警告信息.警告信息可能意味着程序中隐含的大错误,也可能确实没有问题.对于警告的正确处理方式应该是:尽可能地消除之.对于编译程序给出的每个警告 ...

  8. c语言编译 创建卡号信息表,C语言超市会员信息管理系统源程序

    #include                   //编译预处理指令,引入头文件 #include #include #include #define MAX 10                 ...

  9. C语言编译发现注释错误,在对C语言程序进行编译时,可以发现注释行中的拼写错误。...

    对中些设括哪备都包水压试验. 各适条件用于什么,语言程译品的在产主要种计算有几方法. 门客南王汉淮编著文的汉代学及其集体刘安一书是西术散,序进行编现注"女奔月"等及寓就是天&quo ...

  10. C语言编译能否被七整除,求c语言高手输出1000以内既能被5整除又能被7整除

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:求c语言高手 输出1000以内既能被5整除又能被7整除的数,要求五个数回答:int main(){int num =0;for(in ...

最新文章

  1. python个人博客源码_我的使用Sanic的个人博客源码开源了!
  2. dedecms系统列表页调用tag标签同时带上链接的方法
  3. node项目发送邮件失败
  4. SQL优化技巧--远程连接对象引起的CTE性能问题
  5. Texture Inspection 纹理检验halcon算子,持续更新
  6. 百万记录级MySQL数据库及Discuz!论坛优化
  7. 测试用例集-9.QQ登录功能测试用例
  8. redmine全记录(更新)
  9. Usaco2012-2013 金组 题解 (暂缺Hill walk以及Figue eight)
  10. linux下文本处理
  11. 利用用户自己的server、tomcat下的解决iOS7.1企业应用无法安装应用程序 由于证书无效的问题...
  12. 非常好用的php单文件在线文件管理器微网盘系统 万维景盛优化版
  13. 斜齿轮重合度计算公式_斜齿轮重合度计算
  14. mysql注入转义绕过_SQL注入防御绕过
  15. scara机器人dh参数表_SCARA机器人驱动方式及参数初定
  16. python数据平滑处理,numpy之数据平滑处理
  17. Opengl es2.0 学习笔记(九)颜色混合
  18. android自定义view设置背景颜色,Android View的几种背景颜色设置
  19. java工程师怎么接私单_Java开发者如何接私活?
  20. 文章还需自己写,论文抄袭误国家

热门文章

  1. discuz怎么改php头部,Discuz教程:修改论坛头部左方的logo图片链接
  2. 中小企业如何差异化“生意表达”,成为最了不起的小企业?
  3. KIW-AL10(全网通)线刷+卡刷 {救砖| 降级| 回官} 实用教程
  4. 【miscellaneous】华为智能视频监控系统设计解决方案
  5. activity间数据传递实例_人品计算器
  6. android程序崩溃后重启
  7. 签名文件及使用360加固保生成渠道包
  8. 苹果手机数据转移到新手机_手机通讯录怎么转移到新手机?找对方法就可以了...
  9. 滴滴、美团、饿了么 无锡“外卖大战”,岂止是疯狂!然而…
  10. 基于Beacon技术的智慧校园解决方案