資源簡介
基于C語言的模擬KTV系統(tǒng),兩種身份登錄,管理員與用戶,可以實現(xiàn)歌曲添加和刪除,另有按歌手和按歌曲點歌功能。
代碼片段和文件信息
//模擬KTV點歌系統(tǒng)??
#include?
#include?
#include?
#define?maxsize?1000??
?
int?path(int?ichar?a[])??//加文件路徑和后綴,i為類型:1是歌曲文件,2是歌手文件;a為歌曲或歌手名??
{?
????char?x[100];?
????int?nj;?
????if(i==1){?
????????strcpy(xa);?
????????strcpy(a“song//“);?
????????strcpy(&a[6]x);?
????????n=strlen(a);?
????????strcpy(&a[n]“.txt“);?
????}??
????else{?
????????strcpy(xa);?
????????strcpy(a“singer//“);?
????????strcpy(&a[6]x);?
????????n=strlen(a);?
????????strcpy(&a[n]“.txt“);?
????}?
?????
}??
?
//按歌曲名查找?
int?pickSong_name(){?
????FILE?*fp1;?
????int?a=1;?
????char?filename1[10]f1[80];?
//????char?name[20];?
//????char?lyric[50][50];?
????printf(“請輸入歌曲名:\n“);?
????scanf(“%s“filename1);?
????path(afilename1);?
????if((fp1=fopen(filename1“r“))==NULL){?
????????printf(“該歌曲不存在\n“);?
????????return?0;?
????}?
????printf(“正在播放\n“);?
????while(fgets(f181fp1)!=NULL){?
????????printf(“%s“f1);?
????}?
????fclose(fp1);?
????return?0;?
}?
????
int??pickSong_singer(){?
????FILE?*fp2*fp1;?
????int?a=2;?
????char?filename1[10]filename2[10]f2[80]f1[80];?
//????char?singer[20];?
????printf(“請輸入歌手名:“);??
????scanf(“%s“filename2);?
????path(afilename2);?
????if((fp2=fopen(filename2“r“))==NULL){?
????????printf(“該歌手不存在\n“);?
????????return?0;?
????}?
????printf(“歌手全部歌曲如下:\n“);?
????while(fgets(f281fp2)!=NULL){?
????????printf(“%s“f2);?
????}?
????fclose(fp2);?
????printf(“\n“);?
????printf(“請輸入歌曲名:“);?
????scanf(“%s“filename1)?;?
????path(1filename1);?
????if((fp1=fopen(filename1“r“))==NULL){?
????????printf(“該歌曲不存在\n“);?
????????return?0;?
????}?
????printf(“正在播放\n“);?
????while(fgets(f181fp1)!=NULL){?
????????printf(“%s“f1);?
????}?
????fclose(fp1);?
????return?0;?
}?
void?addSongs()?
{?
????FILE?*fp*fp1;?
????char?name[100]?song[100]?singer[100]?words[100];?
????char?ch?=?‘n‘;?
????int?num;?
????int?i;?
????printf(“請輸入所添加歌曲數(shù)目:\n“);?
????scanf(“%d“&num);?
????for?(i?=?0;i?????{?
????????printf(“請輸入第%d首歌的信息:\n“i?+?1);?
????????printf(“請輸入歌手名:\n“);?
????????scanf(“%s“singer);?
????????path(2singer);?
????????fp?=?fopen(singer“a“);?
????????printf(“請輸入歌曲名:\n“);?
????????scanf(“%s“name);?
????????while?(1)?
????????{?
????????????if?(fgets(song100fp)?==?NULL)?
????????????{?
????????????????break;?
????????????}?
????????????if?(strcmp(namesong)?==?0)?
????????????{?
????????????????printf(“添加失敗,歌曲已存在。\n“);?
????????????????printf(“是否重新添加歌曲\n“);?
????????????????printf(“按y為是,按其余任意鍵為否:\n“);?
????????????????scanf(“?%c“&ch);?
????????????????if?(ch?==?‘y‘)?
????????????????{?
????????????????????i--;?
????????????????}?
????????????????break;?
????????????}?
????????}?
????????fputs(namefp);?
????????fputs(“\n“fp);?
????????fclose(fp);?
????????path(1name);?
????????fp1?=?fopen(name“w“);?
????????printf(“請輸入歌詞,\n“);?
????????printf(“按一次回車確定輸入,結(jié)束輸入按1\n“);?
????????scanf(“%s“words);?
????????do?
????????{?
????????????fputs(wordsfp);?
????????????fputs(“\n“fp);?
????????????scanf(“%s“words);?
????????
評論
共有 條評論