{
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;
}
fclose(fp); //关闭文件
n = i - 1; //歌曲数量的记录
struct song tmp;
switch(a) //根据用户选择对歌曲进行排序显示
{
case 1:
for(j = 0; j < n; j++)
for(k = 0; k < n; k++)
if(strcmp(so[k].name, so[k+1].name) > 0) //根据歌曲名字排序
{
tmp = so[k];
so[k] = so[k+1];
so[k+1] = tmp;
}
printf("\n\n歌名 歌手 作词 作曲 发行日期\n");
printf("****************************************\n");
for(i = 0; i <= n; i++)
printf("%s %s %s %s %s\n", so[i].name, so[i].singer, so[i].authors, so[i].compose, so[i].time);
break;
case 2:
for(j = 0; j < n; j++)
for(k = 0; k < n; k++)
if(strcmp(so[k].singer, so[k+1].singer) > 0) //根据歌手名字排序
{
tmp = so[k];
so[k] = so[k+1];
so[k+1] = tmp;
}
printf("\n\n歌名 歌手 作词 作曲 发行日期\n");
printf("****************************************\n");
for(i = 0; i <= n; i++)
printf("%s %s %s %s %s\n", so[i].name, so[i].singer, so[i].authors, so[i].compose, so[i].time);
break;
default:
printf("\n输入错误!\a");
break;
}
back(); //返回函数
}
//录入函数
void create()
{
system("cls");
int n, a, i;
printf("\n 请选择录入方式: \n");
printf("**********************\n");
printf(" 1、 键盘录入歌曲信息 \n");
printf(" 2、 文件录入歌曲信息 \n");
scanf("%d", &a);
switch(a) //根据选择跳转到不同的录入函数
{
case 1:
printf("\n你想录入几首歌?\n");
scanf("%d", &n);
printf("\n开始录入歌曲信息!\n");
for(i = 0; i < n; i++)
{
printf("\n请输入第%d首歌曲信息:\n\n",i+1);
input1(i); //键盘录入函数
}
if(i != 0)
{
save(n); //保存函数
printf("\n存储成功!\a\n");
}
break;
case 2:
input2(); //文件录入函数
printf("\n存储成功!\a\n");
break;
default:
printf("\n输入错误!\a");
back();
break;
}
back();
}
//查找函数
void search()
{
system("cls");
FILE *fp;
int n = 100, k, ch, i, j = 0;
char c[20];
if((fp = fopen("E:\\zxx\\zxx.txt","r")) == NULL)
{
printf("\n\n无法打开此文件!\n\n\a");
back();
}
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;
}
fclose(fp);
n = i; //记录歌曲数量
printf("\n请选择查询的方式:\n");
printf("*****************\n");
printf("1、按歌名查询\n");
printf("2、按演唱者查询\n");
scanf("%d", &ch);
switch(ch)
{
case 1:
printf("\n请输入歌名:\n");
scanf("%s", c);
for(i = 0; i < n; i++) //strcmp函数匹配字符串查找歌曲
if(strcmp(c, so[i].name) == 0)
break;
break;
case 2:
printf("\n请输入演唱者:\n");
scanf("%s", c);
for(i = 0; i < n; i++)
if(strcmp(c, so[i].singer) == 0)
break;
break;
default:
j = 1;
printf("\n输入错误!\n\a");
back();
break;
}
k = i;
if(k == n && j == 0)
{
printf("\n\n没有这首歌曲的信息!\n\a");
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
