C语言课程设计( 三 )


back();
}
else
{
printf("\n\n歌名 歌手 作词 作曲 发行日期\n");
printf("****************************************\n");
printf("%s %s %s %s %s\n",so[k].name, so[k].singer, so[k].authors, so[k].compose, so[k].time);
back();
}
}
//修改函数
void modify()
{
char name[20];
char singer[20];
char authors[20];
char compose[20];
char time[20];
FILE *fp = fopen("E:\\zxx\\zxx.txt","r");
int n, i, c, j = 0;
system("cls"); //修改信息时首先展示全部的歌曲信息
printf("\n\n所有歌曲记录如下:\n");
printf("\n\n歌名 歌手 作词 作曲 发行日期\n");
printf("****************************************\n");
for(i = 0; !feof(fp); i++)
{
fscanf(fp,"%s %s %s %s %s", so[i].name, so[i].singer, so[i].authors, so[i].compose, so[i].time);
if(feof(fp)) break;
printf("%s %s %s %s %s\n", so[i].name, so[i].singer, so[i].authors, so[i].compose, so[i].time);
}
n = i;
fclose(fp);
printf("\n请输入要修改信息的歌名:\n");
scanf("%s", name);
system("cls");
for(i = 0; i < n; i++)
if(strcmp(so[i].name, name) == 0)
{
j = 1;
printf("\n原始信息为:\n");
printf("\n歌名 歌手 作词 作曲 发行日期\n");
printf("****************************************\n");
printf("%s %s %s %s %s\n", so[i].name, so[i].singer, so[i].authors, so[i].compose, so[i].time);
printf("\n需要进行修改的选项:\n\n1.歌曲名 2.演唱者 3.作词 4.作曲 5.发行日期\n");
printf("\n请输入你需要修改的那一项的序号:\n");
scanf("%d", &c);
if(c > 5 || c < 1)
{
printf("\n选择错误 , 请重新选择!\n\a");
back();
}
break;
}
fp = fopen("E:\\zxx\\zxx.txt","w");
if(j == 0)
{
printf("\n对不起 , 没有此歌!\n\a");
for(i = 0; i < n; i++) //没有这首歌时 , 全部信息直接写入文件
{
fprintf(fp, "%s %s %s %s %s", so[i].name, so[i].singer, so[i].authors, so[i].compose, so[i].time);
fprintf(fp, "\n");
}
}
else //当有此歌时修改相应的数据
{
j = i;
for(i = 0; i < n; i++)
if(i != j) //未修改的数据写入文件
fprintf(fp,"%s %s %s %s %s \n", so[i].name, so[i].singer, so[i].authors, so[i].compose, so[i].time);
else //新修改的数据写入文件
switch(c)
{
case 1:
printf("\n歌曲名改为:\n");
scanf("%s", name);
fprintf(fp,"%s %s %s %s %s \n", name, so[i].singer, so[i].authors, so[i].compose, so[i].time);
break;
case 2:
printf("演唱者改为:");
scanf("%s", singer);
fprintf(fp,"%s %s %s %s %s \n", name, so[i].singer, so[i].authors, so[i].compose, so[i].time);
break;
case 3:
printf("作词改为:");
scanf("%s",authors);
fprintf(fp,"%s %s %s %s %s \n", name, so[i].singer, so[i].authors, so[i].compose, so[i].time);
break;
case 4:
printf("作曲改为:");
scanf("%s",compose);
fprintf(fp,"%s %s %s %s %s \n", name, so[i].singer, so[i].authors, so[i].compose, so[i].time);
break;
case 5:
printf("发行时间改为:");
scanf("%s",time);
fprintf(fp,"%s %s %s %s %s \n", name, so[i].singer, so[i].authors, so[i].compose, so[i].time);
break;
default:
break;
}
printf("\n修改成功!\n\a");
}
fclose(fp);
back();
}
//删除函数
void delete()
{
char s[20];
int i, n, j, k = 0;
FILE *fp = fopen("E:\\zxx\\zxx.txt","r");

特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。