大一上最喜欢的一个作品 。刚开始只是一个能自动发出小星星音乐的小程序XD

效果图:

代码如下:

/*This is a small piano.这是一个小钢琴哦~*/
#include<stdio.h>
#include<conio.h>    //非缓冲输入
#include<stdlib.h>
#include<Windows.h>
#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  1976void 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语言][自制]相关推荐

  1. C语言编译键盘钢琴,键盘小钢琴[C语言][自制]

    大一上最喜欢的一个做品 .刚开始只是一个能自动发出小星星音乐的小程序XD小程序 效果图:ui 代码以下:spa /*This is a small piano.这是一个小钢琴哦~*/ #include ...

  2. C语言编译键盘钢琴,键盘小钢琴[C语言][自持]

    键盘小钢琴[C语言][自制] 大一上最喜欢的一个作品 .刚开始只是一个能自动发出小星星音乐的小程序XD 效果图: 代码如下: /*This is a small piano.这是一个小钢琴哦~*/ # ...

  3. C语言自制简易钢琴块

    C语言自制简易钢琴块 在网上无聊时找的如何用C语言编译器做钢琴块这个小游戏,没事可以自己看看,从中学到一些新东西. // Piano piece.cpp: 定义控制台应用程序的入口点. //autho ...

  4. C语言自制小游戏:三子棋(井字棋)智能下棋补充

    目录 一.前期准备 二.逻辑与程序实现 1.连珠 ①横向连珠 ②纵向连珠 ③斜向连珠 ④函数完善 2.堵棋 ①横向堵棋 ②纵向堵棋 ③斜向堵棋 3.整理函数 ①整理AI_Computer函数 ②修改C ...

  5. 控制台推箱子小游戏C语言

    自己开发的C语言控制台推箱子小游戏,基于二维数组实现,功能不多但是游戏整体较为完整,因为技术有限,所以代码暂未优化且整体显得较为臃肿,整体架构简单,代码全自主设计编写,仅作交流学习,还望大佬多多指点. ...

  6. 电子琴仿真c语言程序,矩阵键盘模拟电子琴C语言程序设计

    原标题:矩阵键盘模拟电子琴C语言程序设计 //24c08地址为0xa0 #include #define uchar unsigned char unsigned char code table[]= ...

  7. Android UI设计之十一自定义ViewGroup,打造通用的关闭键盘小控件ImeObser

    2019独角兽企业重金招聘Python工程师标准>>> 转载请注明出处:http://blog.csdn.net/llew2011/article/details/51598682 ...

  8. 微信小程序开发语言(微信小程序开发教程)详细步骤

    微信小程序开发语言 开发微信小程序用什么语言 1.微信小程序开发所需要的语言比较特别,首先介绍一下需要使用到的文件类型大致分为:WXML(WeiXin Mark Language 微信标记语言).WX ...

  9. 微信小程序开发语言的选择

    微信使用的开发语言和文件很「特殊」. 小程序所使用的程序文件类型大致分为以下几种: ①WXML(WeiXin Mark Language,微信标记语言) ②WXSS(WeiXin Style Shee ...

最新文章

  1. 一些简单网络命令用法
  2. python 常见内置函数setattr、getattr、delattr、setitem、getitem、delitem
  3. python关于二手房的课程论文_python之数据清理-以二手房信息为例
  4. mAP提升40%!YOLO3改进版—— Poly-YOLO:更快,更精确的检测和实例分割
  5. Java 面试之 JVM
  6. android适配器封装,Android万能适配器(一)封装ViewHolder
  7. Spring自动装配(autowire)篇
  8. 从零开始,CentOS6安装ghost博客
  9. Map-Reduce
  10. [C语言循环应用]--打印字符金字塔
  11. 2015 CCPC 这次,我为自己鼓掌
  12. 金蝶k3服务器系统要求,金蝶k3要求服务器配置
  13. 《那些年啊,那些事——一个程序员的奋斗史》——101
  14. js实现粘贴板js插件clipboard.js实现一键复制粘贴功能
  15. 软件测试常用术语总结
  16. 如何掌控自己的时间和生活(how to get control of your time and your life)读书笔记
  17. 在OpenWRT上运行Sakura Frp
  18. fitnesse 新手入门
  19. GNSS-INS组合导航:KF-GINS(二)
  20. 转]60个英文阅读网站强力推荐

热门文章

  1. 【神搜递归】统计问题
  2. Altium Designer学习笔记——如何使用模板图纸
  3. AWS EMR内置Ranger插件使用的IAM Role及其设计策略
  4. 数据库中clob类型对应java,java 操作数据库clob类型大字段
  5. GeekPwn2019国际安全极客大赛
  6. C语言移位运算 左移长度大于数据类型字节数的情况
  7. 如何创建品牌百科词条?
  8. 惠普ENVY13笔记本怎么U盘重装Win10系统教学
  9. ETERM放大软件 机票实时查询接口 底层开发接口
  10. 并行算法设计与性能优化 刘文志 第4章 串行代码性能优化