在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例C/C++语言基础 → C语言-钢琴源码

C语言-钢琴源码

C/C++语言基础

下载此实例
  • 开发语言:C/C++
  • 实例大小:8.15KB
  • 下载次数:13
  • 浏览次数:118
  • 发布时间:2021-06-10
  • 实例类别:C/C++语言基础
  • 发 布 人:wanggx_aaa
  • 文件格式:.zip
  • 所需积分:2
 相关标签: 钢琴

实例介绍

【实例简介】小钢琴

实现的功能有:

1.弹钢琴

2.建立乐谱

3.查看乐谱

4.自动演奏

【实例截图】

from clipboard


from clipboard


【核心代码】#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<io.h>
#include <MMSystem.h>
#pragma comment(lib,"winmm.lib")

#define qdo 262 
#define qre 294
#define qmi 330     //q前缀为低音,1后缀为高音,s前缀为半音阶 
#define qfa 349
#define qso 392
#define qla 440
#define qsi 494
#define do 523
#define re 578
#define mi 659
#define fa 698
#define so 784
#define la 880
#define si 988
#define do1 1046
#define re1 1175
#define mi1 1318
#define fa1 1480
#define so1 1568
#define la1 1760
#define si1 1976
#define sqdo 277
#define sqre 311
#define sqfa 370
#define sqso 415
#define sqla 466
#define sdo 554
#define sre 622
#define sfa 740
#define sso 831
#define sla 932
#define sdo1 1046
#define sre1 1245
#define sfa1 1480
#define sso1 1661
#define sla1 1865
char arr[550];
char name[550];
char yuepu[20][30];
void menu();
void printPiano();
void printPiano1();
void Write(char *a,char *filename);
void color(int x);
void show();
void powerprint(char * word, int x, int y, int color_num);
static void SetPos( int  x ,  int  y );
int cnt = 0;
int k =0;

//声音函数 
void sound(char a){
char key;
switch(a){
case 'q':Beep(qdo,550);printPiano(1);break;
case 'w':Beep(qre,550);printPiano(2);break;
case 'e':Beep(qmi,550);printPiano(3);break;
case 'r':Beep(qfa,550);printPiano(4);break;
case 't':Beep(qso,550);printPiano(5);break;
case 'y':Beep(qla,550);printPiano(6);break;
case 'u':Beep(qsi,550);printPiano(7);break;
case 'a':Beep(do,550);printPiano(8);break;
case 's':Beep(re,550);printPiano(9);break;
case 'd':Beep(mi,550);printPiano(10);break;
case 'f':Beep(fa,550);printPiano(11);break;
case 'g':Beep(so,550);printPiano(12);break;
case 'h':Beep(la,550);printPiano(13);break;
case 'j':Beep(si,550);printPiano(14);break;
case 'z':Beep(do1,550);printPiano(15);break;
case 'x':Beep(re1,550);printPiano(16);break;
case 'c':Beep(mi1,550);printPiano(17);break;
case 'v':Beep(fa1,550);printPiano(18);break;
case 'b':Beep(so1,550);printPiano(19);break;
case 'n':Beep(la1,550);printPiano(20);break;
case 'm':Beep(si,550);printPiano(21);break;
}
}
//钢琴函数 
void PlayPiano(){
char a;
printPiano(0);
while(1){
a = getche();
if(a == 0x1B)
goto P;
sound(a);
if(a == '0')
break;
}
system("cls");
P:menu();
return;
}
//打印钢琴动画 
void printPiano(int i){
        system("cls");
printf("            ╪╪╪╪╪╪╧╧╧╧╧╧╧╧╪╪╪\n");
printf("                 开始游戏\n");
printf("            ╪╪╪╪╪╪╧╧╧╧╧╧╧╧╪╪╪\n");
switch(i){
case 0:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | | | | | | | | | | | | | | | | | | | | | \n");
    printf("  | | | | | | | | | | | | | | | | | | | | | |\n");
    printf("  | | | | | | | | | | | | | | | | | | | | | |\n");
    printf("  | | | | | | | | | | | | | | | | | | | | | |\n");
    printf("  -------------------------------------------\n");
    break;
   case 1:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  |■| | | | | | | | | | | | | | | | | | | | | \n");
    printf("  |■| | | | | | | | | | | | | | | | | | | | |\n");
    printf("  |■| | | | | | | | | | | | | | | | | | | | |\n");
    printf("  |■| | | | | | | | | | | | | | | | | | | | |\n");
    printf("  -----------------------------------------\n");
    break;
    case 2:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | |■| | | | | | | | | | | | | | | | | | | |\n");
    printf("  | |■| | | | | | | | | | | | | | | | | | | |\n");
    printf("  | |■| | | | | | | | | | | | | | | | | | | |\n");
    printf("  | |■| | | | | | | | | | | | | | | | | | | |\n");
    printf("  -----------------------------------------\n");
    break;
    case 4:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | | |■| | | | | | | | | | | | | | | | | |\n");
    printf("  | | | |■| | | | | | | | | | | | | | | | | |\n");
    printf("  | | | |■| | | | | | | | | | | | | | | | | |\n");
    printf("  | | | |■| | | | | | | | | | | | | | | | | |\n");
    printf("  -----------------------------------------\n");
    break;
    case 3:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | |■| | | | | | | | | | | | | | | | | | |\n");
    printf("  | | |■| | | | | | | | | | | | | | | | | | |\n");
    printf("  | | |■| | | | | | | | | | | | | | | | | | |\n");
    printf("  | | |■| | | | | | | | | | | | | | | | | | |\n");
    printf("  -----------------------------------------\n");
    break;
    case 5:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | | | |■| | | | | | | | | | | | | | | | |\n");
    printf("  | | | | |■| | | | | | | | | | | | | | | | |\n");
    printf("  | | | | |■| | | | | | | | | | | | | | | | |\n");
    printf("  | | | | |■| | | | | | | | | | | | | | | | |\n");
    printf("  -----------------------------------------\n");
    break;
    case 6:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | | | | |■| | | | | | | | | | | | | | | |\n");
    printf("  | | | | | |■| | | | | | | | | | | | | | | |\n");
    printf("  | | | | | |■| | | | | | | | | | | | | | | |\n");
    printf("  | | | | | |■| | | | | | | | | | | | | | | |\n");
    printf("  -----------------------------------------\n");
    break;
    case 7:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | | | | | |■| | | | | | | | | | | | | | |\n");
    printf("  | | | | | | |■| | | | | | | | | | | | | | |\n");
    printf("  | | | | | | |■| | | | | | | | | | | | | | |\n");
    printf("  | | | | | | |■| | | | | | | | | | | | | | |\n");
    printf("  -----------------------------------------\n");
    break;
    case 8:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | | | | | | |■| | | | | | | | | | | | | |\n");
    printf("  | | | | | | | |■| | | | | | | | | | | | | |\n");
    printf("  | | | | | | | |■| | | | | | | | | | | | | |\n");
    printf("  | | | | | | | |■| | | | | | | | | | | | | |\n");
    printf("  -----------------------------------------\n");
    break;
    case 9:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | | | | | | | |■| | | | | | | | | | | | |\n");
    printf("  | | | | | | | | |■| | | | | | | | | | | | |\n");
    printf("  | | | | | | | | |■| | | | | | | | | | | | |\n");
    printf("  | | | | | | | | |■| | | | | | | | | | | | |\n");
    printf("  -----------------------------------------\n");
    break;
    case 10:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | | | | | | | | |■| | | | | | | | | | | |\n");
    printf("  | | | | | | | | | |■| | | | | | | | | | | |\n");
    printf("  | | | | | | | | | |■| | | | | | | | | | | |\n");
    printf("  | | | | | | | | | |■| | | | | | | | | | | |\n");
    printf("  -----------------------------------------\n");
    break;
    case 11:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | | | | | | | | | |■| | | | | | | | | | |\n");
    printf("  | | | | | | | | | | |■| | | | | | | | | | |\n");
    printf("  | | | | | | | | | | |■| | | | | | | | | | |\n");
    printf("  | | | | | | | | | | |■| | | | | | | | | | |\n");
    printf("  -----------------------------------------\n");
    break;
    case 12:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | | | | | | | | | | |■| | | | | | | | | |\n");
    printf("  | | | | | | | | | | | |■| | | | | | | | | |\n");
    printf("  | | | | | | | | | | | |■| | | | | | | | | |\n");
    printf("  | | | | | | | | | | | |■| | | | | | | | | |\n");
    printf("  -----------------------------------------\n");
    break;
    case 13:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | | | | | | | | | | | |■| | | | | | | | |\n");
    printf("  | | | | | | | | | | | | |■| | | | | | | | |\n");
    printf("  | | | | | | | | | | | | |■| | | | | | | | |\n");
    printf("  | | | | | | | | | | | | |■| | | | | | | | |\n");
    printf("  -----------------------------------------\n");
    break;
    case 14:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | | | | | | | | | | | | |■| | | | | | | |\n");
    printf("  | | | | | | | | | | | | | |■| | | | | | | |\n");
    printf("  | | | | | | | | | | | | | |■| | | | | | | |\n");
    printf("  | | | | | | | | | | | | | |■| | | | | | | |\n");
    printf("  -----------------------------------------\n");
    break;
    case 15:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | | | | | | | | | | | | | |■| | | | | | |\n");
    printf("  | | | | | | | | | | | | | | |■| | | | | | |\n");
    printf("  | | | | | | | | | | | | | | |■| | | | | | |\n");
    printf("  | | | | | | | | | | | | | | |■| | | | | | |\n");
    printf("  -----------------------------------------\n");
    break;
    case 16:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | | | | | | | | | | | | | | |■| | | | | |\n");
    printf("  | | | | | | | | | | | | | | | |■| | | | | |\n");
    printf("  | | | | | | | | | | | | | | | |■| | | | | |\n");
    printf("  | | | | | | | | | | | | | | | |■| | | | | |\n");
    printf("  -----------------------------------------\n");
    break;
    case 17:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | | | | | | | | | | | | | | | |■| | | | |\n");
    printf("  | | | | | | | | | | | | | | | | |■| | | | |\n");
    printf("  | | | | | | | | | | | | | | | | |■| | | | |\n");
    printf("  | | | | | | | | | | | | | | | | |■| | | | |\n");
    printf("  -----------------------------------------\n");
    break;
    case 18:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | | | | | | | | | | | | | | | | |■| | | |\n");
    printf("  | | | | | | | | | | | | | | | | | |■| | | |\n");
    printf("  | | | | | | | | | | | | | | | | | |■| | | |\n");
    printf("  | | | | | | | | | | | | | | | | | |■| | | |\n");
    printf("  -----------------------------------------\n");
    break;
    case 19:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | | | | | | | | | | | | | | | | | |■| | |\n");
    printf("  | | | | | | | | | | | | | | | | | | |■| | |\n");
    printf("  | | | | | | | | | | | | | | | | | | |■| | |\n");
    printf("  | | | | | | | | | | | | | | | | | | |■| | |\n");
    printf("  -----------------------------------------\n");
    break;
    case 20:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | | | | | | | | | | | | | | | | | | |■| |\n");
    printf("  | | | | | | | | | | | | | | | | | | | |■| |\n");
    printf("  | | | | | | | | | | | | | | | | | | | |■| |\n");
    printf("  | | | | | | | | | | | | | | | | | | | |■| |\n");
    printf("  -----------------------------------------\n");
    break;
    case 21:printf("\n\n\n\n\n");
    printf("  □□□□□□□□□□□□□□□□□□□□□□\n");
    printf("  | | | | | | | | | | | | | | | | | | | | |■|\n");
    printf("  | | | | | | | | | | | | | | | | | | | | |■|\n");
    printf("  | | | | | | | | | | | | | | | | | | | | |■|\n");
    printf("  | | | | | | | | | | | | | | | | | | | | |■|\n");
    printf("  -----------------------------------------\n");
    break;
}
printf("\n\n\n\n\n\n                            输入0返回主菜单\n");
}
//打印主菜单 
int printMenu()
{
    printf("          ╪╪╪╪╪╪╧╧╧╧╧╧╧╧╧╧╧╪╪╪╪╪╪\n");
    printf("          ╔═══╧╧  C语言钢琴 ╧╧══╗\n");
    printf("          ║※1.弹钢琴           ║\n");
    printf("          ║※2.建立乐谱        ║\n");
    printf("          ║※3.查看乐谱        ║\n");
printf("          ║※4.自动演奏        ║\n");
    printf("          ║※0.退出系统        ║\n");
    printf("          ╚═════════════════════╝\n");
    return 0;
}
//延时动画 
void crossing(){
system("cls");
printf("Loading.");
Sleep(400);
system("cls");
printf("Loading..");
Sleep(400);
system("cls");
printf("Loading...");
Sleep(400);
system("cls");
printf("Loading....");
Sleep(400);
system("cls");
}
//查找文件 
void find(){
cnt = 0;

long file;
struct _finddata_t find;
_chdir("d:\\install\\");
if ((file = _findfirst("*.*", &find)) == -1L)
{
printf("空白!\n");
exit(0);
}

while (_findnext(file, &find) == 0)
{
if(strcmp(find.name,"C语言大作业.c")!=0&&strcmp(find.name,"C语言大作业.exe")!=0&&strcmp(find.name,"..")!=0){
strcpy(yuepu[cnt],find.name);
cnt ;
}
}
_findclose(file);
}
//打印乐谱 
void printYue(int k){
printf("目录:\n");
if(k < 0)
k = 0;
color(11);
int i;
for(i = 0; i <cnt; i ){
if(i == k){
color(14);
printf("      ->《%s》\n",yuepu[i]);
color(11);
}else{
printf("        《%s》\n",yuepu[i]);
}
}
}
void show(){
system("cls");
char show_name[500];
color(14);
printf("        《%s》\n",yuepu[k]);
color(11);
FILE *B;
B = fopen(yuepu[k],"r");
fscanf(B,"%s",show_name);
fclose(B);
printf("%s\n",show_name);
}
void menu(){
system("title C语言钢琴");//设置cmd窗口标题
    system("mode con cols=48 lines=25");//窗口宽度高度
    system("color 0B");
    system("date /T");
    system("TIME /T");
printMenu();
char c;
c = getche();
switch(c){
case '1':
system("cls");
printf("            ╪╪╪╪╪╪╧╧╧╧╧╧╧╧╪╪╪\n");
printf("                 开始游戏\n");
printf("            ╪╪╪╪╪╪╧╧╧╧╧╧╧╧╪╪╪\n");
printf("输入0返回主菜单\n");
PlayPiano();
break;
case '2':
system("cls");
printf("\n请输入你的乐谱名字,以Enter键结束...\n");
scanf("%s",name);
//scanf("%s",name);
printf("\n\n请输入乐谱内容,以Enter键结束\n");
scanf("%s",arr);
Write(arr,name);
crossing();
printf("存储成功!\n");
system("pause");
    play:menu();
break; 
case '3'://打开乐谱 
crossing();//加载进程 
find();//寻找文件名称并存储 
printYue(k);//打印目录 
int ch;
//进行选择 
            while((ch = getch())!= 13){
            if(ch == 0x1B)
goto LOOP;
            switch (ch){
            case 0xE0:
                switch(ch = getch()){
                    case 72: {
                system("cls");
                printYue(--k);
                break;
                    }
                    case 80: {
                    system("cls");
                printYue( k);
                break;
                    }
                    default : break;
                    }
                   break;
                   default : break;
               }
            }
// move(choose);
show();
system("pause");
k = 0;
LOOP: menu();
break;
    case '0':
    break;
    default:
system("cls");
printf("请输入正确的编号!\n\n\n\n\n\n");
system("pause");
menu(); 
}
}
void Write(char *a,char *filename){
FILE *P;
P = fopen(filename,"w");
fprintf(P,"%s",a);
fclose(P);
}
void goto_xy(int x, int y)//移动光标 
{
    HANDLE hOut;
    hOut = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos = { x,y };
    SetConsoleCursorPosition(hOut, pos);
}

void color(int x) //设置字体颜色

{

if(x>=0 && x<=15)

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x);

else

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);

}
void powerprint(char * word, int x, int y, int color_num) 
{
    goto_xy(x, y);
    color(color_num);
    printf("%s", word);
    color(7);
}
static void SetPos( int  x ,  int  y )
{
        COORD  point = {  x ,  y  }; //光标要设置的位置x,y
        HANDLE  HOutput = GetStdHandle( STD_OUTPUT_HANDLE ); //使用GetStdHandle(STD_OUTPUT_HANDLE)来获取标准输出的句柄
       SetConsoleCursorPosition(HOutput, point); //设置光标位置
}
int main(){
menu();
return 0; 


标签: 钢琴

实例下载地址

C语言-钢琴源码

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警