KTV点歌系统

/*模拟 KTV 点歌系统。用户可按歌名查找某首歌曲或按歌手名查找其所有歌曲,点歌后显示所点歌曲歌词。
管理员可添加和删除歌曲,每个歌曲的歌词用一个单独的文件存储。*/

//该系统成功运行的前提是创建两个文件夹,1、sier  2、song

//该系统成功运行的前提是创建两个文件夹,1、sier  2、song

//该系统成功运行的前提是创建两个文件夹,1、sier  2、song

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>

int maker(int i,char a[])//函数功能:加文件路径和后缀。i 为类型:1 是歌曲文件;2 是歌手文件; a 为歌曲或歌手的名称
{
char x[100];
int n,j;
if(i==1)
{
strcpy(x,a);
strcpy(a,"song//");
strcpy(&a[6],x);
n=strlen(a);
strcpy(&a[n],".txt");
}
else
{
strcpy(x,a);
strcpy(a,"sier//");
strcpy(&a[6],x);
n=strlen(a);
strcpy(&a[n],".txt");
}
}

int add() //管理员添加歌曲功能
{
FILE *fp1,*fp2;
int k=0;
char sier[80],song[80],f1[100];
printf("请输入添加的歌手名:");
scanf("%s",sier);
maker(2,sier);
fp1=fopen(sier,"a");
printf("请输入添加歌曲:");
scanf("%s",song);
fputs(song,fp1);
fputs(" ",fp1);
fclose(fp1);
maker(1,song);
fp1=fopen(song,"w");
printf("请输入歌词,结束输入1 ");
scanf("%s",f1);
do
{
fputs(f1,fp1);
fputs(" ",fp1);
scanf("%s",f1);
}while(f1[0]!='1'&&f1!='');
fclose(fp1);
}

int del() //管理员删除歌曲的功能
{
FILE *fp,*copy;
char song[100],sier[100],f1[100],f2[100];
printf("请输入删除的歌手名:");
scanf("%s",sier);
maker(2,sier);
if((fp=fopen(sier,"r"))==NULL)
{
printf("不存在此歌手 ");
return 0;
}
copy=fopen("copy.txt","w");
for(;;)
{
if(fgets(f1,500,fp)==NULL)break;
fputs(f1,copy);
}
fclose(fp);
fclose(copy);
printf("请输入删除的歌曲:");
scanf("%s",song);
strcpy(f2,song);
strcat(song," ");
fp=fopen(sier,"w");
copy=fopen("copy.txt","r");
for(;;)
{
if(fgets(f1,500,copy)==NULL)break;
if(strcmp(f1,song)==0)continue;
fputs(f1,fp);
printf("a ");
}
fclose(fp);
fclose(copy);
maker(1,f2);
DeleteFile(f2);
}

void manager() //管理员函数
{
int n;
printf("************************************************* ");
printf(" KTV 管理员系统 添加歌曲请输入1 删除歌曲输入2 ");
printf(" 输入3退出 ");
printf("************************************************* ");
scanf("%d",&n);
if(n==1)add();
else if(n==2)del();
else exit(0);
}


int user() //用户函数
{
FILE *fp1,*fp2;
int a;
char filename1[10],filename2[10],f1[80],f2[80];
printf("************************************************* ");
printf(" KTV 点歌系统 歌名点歌请输入1 歌手点歌请输入 2 ");
printf(" 输入3退出 ");
printf("************************************************* ");
scanf("%d",&a);
if(a==1)
{
printf("请输入歌曲名:");
scanf("%s",filename1);
maker(a,filename1);
if((fp1=fopen(filename1,"r"))==NULL)
{
printf("不存在这首歌曲请联系管理员 ");
return 0;
}
printf("############################################# ");
printf(" 正在播放 ");
while(fgets(f1,81,fp1)!=NULL)
{
printf("%s",f1);
}
printf("############################################# ");
fclose(fp1);
}
else if(a==2)
{
printf("请输入歌手名:");
scanf("%s",filename2);
maker(a,filename2);
if((fp2=fopen(filename2,"r"))==NULL)
{
printf("不存在歌手请联系管理员 ");
return 0;
}
printf("歌手全部歌曲如下: ");
while(fgets(f2,81,fp2)!=NULL)
{
printf("%s",f2);
}
fclose(fp2);
printf(" ");
printf("请输入歌曲名:" );
scanf("%s",filename1);
maker(1,filename1);
if((fp1=fopen(filename1,"r"))==NULL)
{
printf("不存在这首歌请联系管理员 ");
return 0 ;
}
printf("############################################# ");
printf(" 正在播放 ");
while(fgets(f1,81,fp1)!=NULL)
{
printf("%s",f1);
}
printf("############################################# ");
fclose(fp1);
}
else exit(0);

}


int main()
{
int n;
printf("*************************************************** ");
printf(" 管理员请输入1 ; 用户请输入 2 ");
printf("*************************************************** ");
scanf("%d",&n);
if(n==1)while(1) manager();
else while(1)user();
}

原文地址:https://www.cnblogs.com/yayizi/p/4509391.html