最终版C语言课设----音乐资源管理系统

#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;
}


 

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值