#include <stdio.h>
#include <string.h>
#include<stdlib.h >
#include <conio.h>
#include<math.h>
#define I 20
#define R 340
#define N 500
struct song
{
char name[20];
char author[20];
char singer[20];
char data[20];
}so[N]; //定义结构体
void menu();
void input(int i);
void save(int n);
void enter();
void browse();
void delet();
void search();
void back(); //声明调用函数
void showChord();
void showSong1();
void showSong2();
void showSong3();
void getChord();
void input(int i)
{
printf("歌名:");
scanf("%s",so[i].name);
printf("作者:");
scanf("%s",so[i].author);
printf("演唱者:");
scanf("%s",so[i].singer);
printf("发行日期:");
scanf("%s",so[i].data);
}
void save(int n)
{
FILE*fp;
int i;
fp=fopen("song.txt","w");
if(fp==NULL)
{
printf("ERROR:can not open this file \n");
return;
}
for(i=0;i<n;i++)
{
fprintf(fp,"%s %s %s %s\n",so[i].name,so[i].author,so[i].singer,so[i].data);
}
fclose(fp);
}
void back()
{
int n;
printf("\n\n\n\n\n是否返回主菜单?\n\n1.返回主菜单 2.退出\n\n\n\n\n");
scanf("%d",&n);
if(n==1)
menu();
return;
}
void showChordC(){
printf("\n");
printf("\t\t\t\t\t\t\tx x x x o x\n");
printf("\t\t\t\t\t\t\tx x o x x x\n");
printf("\t\t\t\t\t\t\tx o x x x x \n");
printf("\t\t\t\t\t\t\tx x x x x x \n");
printf("\t\t\t\t\t\t\tx x x x x x \n");
printf("\t\t\t\t\t\t\tx x x x x x \n");
printf("\t\t\t\t\t\t\tx x x x x x \n");
printf("\t\t\t\t\t\t\t 和 弦 C\n");
}
void showChordAm(){
printf("\t\t\t\t\t\t\tx x x x x x \n");
printf("\t\t\t\t\t\t\tx x x x o x\n");
printf("\t\t\t\t\t\t\tx x o o x x\n");
printf("\t\t\t\t\t\t\tx x x x x x \n");
printf("\t\t\t\t\t\t\tx x x x x x \n");
printf("\t\t\t\t\t\t\tx x x x x x \n");
printf("\t\t\t\t\t\t\tx x x x x x \n");
printf("\t\t\t\t\t\t\t 和 弦 Am\n");
}
void showChordEm(){
printf("\t\t\t\t\t\t\tx x x x x x\n");
printf("\t\t\t\t\t\t\tx o o x x x\n");
printf("\t\t\t\t\t\t\tx x x x x x\n");
printf("\t\t\t\t\t\t\tx x x x x x\n");
printf("\t\t\t\t\t\t\tx x x x x x\n");
printf("\t\t\t\t\t\t\tx x x x x x\n");
printf("\t\t\t\t\t\t\tx x x x x x\n");
printf("\t\t\t\t\t\t\t 和 弦 Em\n");
}
void showChordF(){
printf("\n");
printf("\t\t\t\t\t\t\to o o o o o <----食指大横按\n");
printf("\t\t\t\t\t\t\tx x x o x x\n");
printf("\t\t\t\t\t\t\tx o o x x x\n");
printf("\t\t\t\t\t\t\tx x x x x x\n");
printf("\t\t\t\t\t\t\tx x x x x x\n");
printf("\t\t\t\t\t\t\tx x x x x x\n");
printf("\t\t\t\t\t\t\tx x x x x x\n");
printf("\t\t\t\t\t\t\t 中\n");
printf("\t\t\t\t\t\t\t 无小指\n");
printf("\t\t\t\t\t\t\t 名指\n");
printf("\t\t\t\t\t\t\t 指\n");
printf("\t\t\t\t\t\t\t和 弦 F\n");
}
void showChordG(){
printf("\t\t\t\t\t\t\tx x x x x x\n");
printf("\t\t\t\t\t\t\tx o x x x x\n");
printf("\t\t\t\t\t\t\to x x x x o\n");
printf("\t\t\t\t\t\t\tx x x x x x\n");
printf("\t\t\t\t\t\t\tx x x x x x\n");
printf("\t\t\t\t\t\t\tx x x x x x\n");
printf("\t\t\t\t\t\t\tx x x x x x\n");
printf("\t\t\t\t\t\t\t无中 小\n");
printf("\t\t\t\t\t\t\t名指 指\n");
printf("\t\t\t\t\t\t\t指 \n");
printf("\t\t\t\t\t\t\t 和 弦 G \n");
}
void docreateSong(){
}
void showSong1(){
printf("《如果我老了》\n");
printf(" ------大冰\n");
printf(" 如果我老了不能谈恋爱 你还会爱我吗\n");
printf( " 如果我老了不能歌唱 你还会爱我吗\n");
printf( " 陪我到丽江晒晒太阳 听我诉说伤心往事\n");
printf( " 数你的白发 数我的皱纹 今生今世共度一生\n");
printf(" 如果我老了不能谈恋爱 你还会爱我吗\n");
printf( " 如果我老了不能歌唱 你还会爱我吗\n");
printf( " 陪我到丽江晒晒太阳 听我诉说伤心往事\n");
printf( " 数你的白发 数我的皱纹 今生今世共度一生\n");
}
void showSong2(){
printf("country road ,take me home\n");
printf("------英文民谣民谣民谣 \n");
printf("Country roads take me home To the place I belong \n");
printf("Take me home country roads Country roads take me home \n");
printf(" To the place I belong West Virginia \n");
printf("Mountain Momma Take me home country roads \n");
}
void showSong3(){
printf("你是我的孤独\n");
printf("------民谣 \n");
printf("云儿是太阳的孤独 陪伴一世却不能在一起 \n ");
printf("太阳是月亮的孤独 一直都想念却从来看不见 \n");
printf("落叶是风的孤独 让它落下却无法带它离开 \n ");
printf("风是扇子的孤独 想让它留下来却送它远去 \n ");
printf("你是我的孤独 能陪伴一世的孤独 \n ");
printf("你是我的孤独 孤独你远去的孤独 \n ");
}
void showChord(){
printf("和弦图示:\n");
printf("\n\n\t\t\t\t *******************************************\n");
printf("\n");
printf(" ");
printf("\n");
printf(" ");
printf("\n");
printf(" ");
printf("\n");
showChordC();
printf(" ");
printf("\n");
printf(" ");
printf("\n");
printf(" ");
printf("\n");
printf("\n\n\t\t\t\t *******************************************\n");
printf(" ");
printf("\n");
printf(" ");
printf("\n");
printf(" ");
printf("\n");
showChordG();
printf(" ");
printf("\n");
printf(" ");
printf("\n");
printf(" ");
printf("\n");
printf("\n\n\t\t\t\t *******************************************\n");
printf(" ");
printf("\n");
printf(" ");
printf("\n");
printf(" ");
printf("\n");
showChordAm();
printf(" ");
printf("\n");
printf(" ");
printf("\n");
printf(" ");
printf("\n");
printf("\n\n\t\t\t\t *******************************************\n");
printf(" ");
printf("\n");
printf(" ");
printf("\n");
printf(" ");
printf("\n");
showChordEm();
printf(" ");
printf("\n");
printf(" ");
printf("\n");
printf(" ");
printf("\n");
printf("\n\n\t\t\t\t *******************************************\n");
printf(" ");
printf("\n");
printf(" ");
printf("\n");
printf(" ");
printf("\n");
showChordF();
printf(" ");
printf("\n");
printf(" ");
printf("\n");
printf(" ");
printf("\n");
printf("\n\n\t\t\t\t *******************************************\n");
printf(" ");
printf("\n");
printf(" ");
printf("\n");
printf(" ");
printf("\n");
back();
}
void getChord(){
printf("请输入要查找的和弦符号:\n");
char a;
scanf("%c",&a);
switch(a){
case 'C' :showChordC();
break;
case 'G': showChordG();
break;
case 'F': showChordF();
break;
case 'A': showChordAm();
break;
case 'E': showChordEm();
break;
default : printf("没有你要找的和弦!");
break;
back();
}
}
void getSong(){
printf("请输入要查找的歌曲序号:\n");
printf("1.《如果我老了》");
printf("2.《Courntry Road》");
printf("3.《你是我的孤独》");
char sName;
scanf("%c",&sName);
switch(sName){
case '1': showSong1();
break;
case '2': showSong2();
break;
case '3': showSong3();
break;
default: system("CLS");
printf("没有你要找的歌曲!!");
break;
}
}
void browse()
{
FILE*fp;
int i;
if((fp=fopen("song.txt","r"))==NULL)
{
printf("无法打开此文件\n");
exit(0);
}
system("cls");
printf("\n\n\n歌曲名 作者 演唱者 发布日期\n\n");
for(i=0;!feof(fp) && i<N;i++) //从文件中读并输出到屏幕上直到结尾
{
fscanf(fp,"%s%s%s%s",so[i].name,so[i].author,so[i].singer,so[i].data);
printf("%s %s %s %s\n",so[i].name,so[i].author,so[i].singer,so[i].data);
}
fclose(fp);
back();
}
void enter()
{
int i,n;
system("cls");
printf("\n\n\n\n你想输入几首歌?\n\n");
scanf("%d",&n);
printf("开始输入歌曲!\n\n");
printf("*****************************\n");
for(i=0;i<n;i++) //依次输入数据
{
printf("\n请输入第%d首歌信息\n",i+1);
input(i); //调用输入函数
}
if(i!=0)
{
save(n); //调用储存函数
printf("\n存储成功!\n");
}
back();
}
void delet()
{
char s[20];
int i,n,j;
FILE*fp;
fp=fopen("song.txt","r");
if(fp==NULL)
{
printf("无法打开此文件\n");
exit(0);
}
system("cls");
printf("\n\n\n\n所有歌曲记录如下:\n");
for(i=0;!feof(fp);i++)
{
fscanf(fp,"%s%s%s%s",so[i].name,so[i].author,so[i].singer,so[i].data);
printf("%s %s %s %s\n",so[i].name,so[i].author,so[i].singer,so[i].data);
}
j=i-1;
printf("\n请输入你要删除的歌曲名字:\n");
scanf("%s",s);
printf("%s\n共有歌曲%d首\n",s,j);
for(i=0;i<j;i++)
{
if(strcmp(s,so[i].name)==0)
n=i;
}
printf("删除第%d首",n+1);
fclose(fp);
fp=fopen("song.txt","w");
for(i=0;i<j;i++)
{
if(i!=n)
fprintf(fp,"%s %s %s %s\n",so[i].name,so[i].author,so[i].singer,so[i].data);
}
fclose(fp);
printf("删除成功!");
back();
return ;
}
void search()
{
FILE*fp;int n=100,k;int ch;int i;char c[20];
if((fp=fopen("song.txt","r"))==NULL)
{
printf("无法打开此文件");
exit(0);
}
system("cls");
for(i=0;!feof(fp)&&i<N;i++)
{
fscanf(fp,"%s%s%s%s",so[i].name,so[i].author,so[i].singer,so[i].data);
/*printf("%s %s %s %s\n",so[i].name,so[i].author,so[i].singer,so[i].data);*/
}
n=i-1;
printf("\n\n\n\n你想用什么方式查询\n\n1.歌名 2.时间 3.歌手\n");
scanf("%d",&ch);
switch(ch)
{
case 1:
printf("请输入歌名\n");
scanf("%s",c);
for(i=0;i<n;i++)
{
if(strcmp(c,so[i].name)==0)
break;
}
break;
case 2:
printf("请输入时间\n");
scanf("%s",&c);
for(i=0;i<n;i++)
{
if(strcmp(c,so[i].data)==0)break;
}break;
case 3:
printf("请输入歌手\n");
scanf("%s",c);
for(i=0;i<n;i++)
{
if(strcmp(c,so[i].singer)==0)
break;
}
break;
}
k=i;
if(k==n)
printf("并没有这首歌\n");
else
{
printf("这是第%d首歌:\n",k+1);
printf("歌名 作者 歌手 时间\n");
printf("%s %s %s %s\n",so[k].name,so[k].author,so[k].singer,so[k].data);
}
fclose(fp);
back();
}
//歌曲部分的Menu
void menu()
{
int n;
system("cls");
printf("\n\n\n\n\n\n\n\t\t\t\t ***************音乐资源管理系统***************\n\n\n");
printf("\t\t\t\t\t\t 1.存入歌曲。\n");
printf("\t\t\t\t\t\t 2.浏览所有曲目。\n");
printf("\t\t\t\t\t\t 3.删除歌曲。\n");
printf("\t\t\t\t\t\t 4.分类查询歌曲。\n");
printf("\t\t\t\t\t\t 5.浏览所有和弦图解。\n");
printf("\t\t\t\t\t\t 6.查询和弦和弦图解。\n");
printf("\t\t\t\t\t\t 7.退出。\n");
printf("\n\n\t\t\t\t *******************************************\n");
printf("\n\n\t\t\t\t请输入一个数字(1-5)选择一项功能:");
scanf("%d",&n);
printf("%d",n);
if(n>0&&n<6) //选择语句,调用函数
{
switch(n)
{
case 1:enter();break;
case 2:browse();break;
case 3:delet();break;
case 4:search();break;
case 5:showChord();break;
case 6:getChord();break;
case 7:exit(0);
}
}
else
{
printf("\a\a\a\a");
menu();
}
return;
}
void heart(){
int i,j,e;
int a;
long time;
system("title c语言研究中心www.dotcpp.com");
for(i=1,a=I;i<I/2;i++,a--)
{
for(j=(int) ( I-sqrt(I*I-(a-i)*(a-i)) );j>0;j--)
printf(" ");
for(e=1;e<=2*sqrt(I*I-(a-i)*(a-i));e++)
printf("\3");
for(j=(int)
( 2*( I-sqrt(I*I-(a-i)*(a-i)) ) );j>0;j--)
printf(" ");
for(e=1;e<=2*sqrt(I*I-(a-i)*(a-i));e++)
printf("\3");
printf("\n"); }
for(i=1;i<80;i++)
{
if(i==25)
{
printf("欢迎使用guitar progress system!");
i+=30;
}
printf("\3");
}
printf("\n");
for(i=1;i<=R/2;i++)
{
if(i%2||i%3)
continue;
for(j=(int) ( R-sqrt(R*R-i*i) );j>0;j--)
printf(" ");
for(e=1;e<=2*( sqrt(R*R-i*i) - (R-2*I) );e++)
printf("\3");
printf("\n");
}
for(time=0;time<999999999;time++){
system("color a");
for(time=0;time<999999999;time++);
showSong1();
printf("\n");
printf("\n");
printf("\n");
printf("\n");
system("color b");
for(time=0;time<999999999;time++);
system("color c");
showSong2();
printf("\n");printf("\n");printf("\n");printf("\n");
for(time=0;time<999999999;time++);
system("color d");
printf("\n");printf("\n");printf("\n");printf("\n");
for(time=0;time<999999999;time++);
system("color e"); printf("\n");printf("\n");printf("\n");printf("\n");
system("CLS");
}
}
int main()
{
void getChord();
// heart();
system("color e"); //改变界面颜色
// menu();
exit(0);
return 0;
}