基本信息
源码名称:C语言-钢琴源码
源码大小:8.15KB
文件格式:.zip
开发语言:C/C++
更新时间:2021-06-10
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
#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;
}
小钢琴
实现的功能有:
1.弹钢琴
2.建立乐谱
3.查看乐谱
4.自动演奏
#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;
}