2条回答 默认 最新
- qq_37122166 2016-12-21 02:13关注
源代码如下
#include
#include
#include
#include
int i=0;
struct system
{
char author[20];
char singer[20];
char time[20];
char name[20];
} dan[100];void enter()
{
int j;
char c[2];
FILE *fp;
if((fp=fopen("data.txt","w"))==NULL)
{
printf("Can not open the file!\n");
exit(0);
}
for(j=0;j<i;j++)
{
fwrite(&dan[j],sizeof(struct system),1,fp);
}
while(1)
{
printf("Please input the author:\n");
scanf("%s",dan[i].author);
printf("Please input the song's name:\n");
scanf("%s",dan[i].name);
printf("Please input the singer:\n");
scanf("%s",dan[i].singer);
printf("Please input the outday:\n");
scanf("%s",dan[i].time);
if(fwrite(&dan[i++],sizeof(struct system),1,fp)!=1)
printf("File write error\n");
else printf("Successful!\n");
printf("Is there any more?( Yes[y]/No[n]) \n");
scanf("%s",c);
if(strcmp(c,"n")==0)break;
}
fclose(fp);
}void delete()
{
int j,v,c;
char w[20];
FILE *fp;
printf("Please input the song'name which you want to delete:");
scanf("%s",w);fp=fopen("data.txt","rb");
for(j=0;j<100;j++)
{
if(fread(&dan[j],sizeof(struct system),1,fp)!=1) break;
}
v=j;
for(j=0;j<v;j++)
{
if(strcmp(w,dan[j].name)==0)
c=j;
}
fclose(fp);fp=fopen("data.txt","wb");
for(j=0;j<v;j++)
{
if(j!=c)
fwrite(&dan[j],sizeof(struct system),1,fp);
}
fclose(fp);
printf("Delete OK!\n");
i--;
}void browse()
{
int j;
FILE *fp;
fp=fopen("data.txt","rb");
for(j=0;j<100;j++)
{
if(fread(&dan[j],sizeof(struct system),1,fp)==1)
{
printf("Name:%s\n",dan[j].name);
printf("Author:%s\n",dan[j].author);
printf("Singer:%s\n",dan[j].singer);
printf("Outday:%s\n",dan[j].time);
printf("---------------------------------\n");
}
else break;
}
fclose(fp);
}void search()
{
int flag,j,x;
char w[20];
FILE *fp;
char v[20];
printf("(1)By author\n");
printf("(2)By singer\n");
printf("(3)By name\n");
printf("Please choose which you want to search:\n");
scanf("%d",&x);
if(x==3)
{
flag=0;
printf("Please input the song's name:");
scanf("%s",&w);
fp=fopen("data.txt","rb");
for(j=0;j<100;j++)
{
if(fread(&dan[j],sizeof(struct system),1,fp)!=1) break;
if(strcmp(dan[j].name,w)==0)
{
printf("Name:%s\n",dan[j].name);
printf("Author:%s\n",dan[j].author);
printf("Singer:%s\n",dan[j].singer);
printf("Outday:%s\n",dan[j].time);
printf("---------------------------------\n");
flag=1;
}
}
if(flag==0)
printf("Cannot find the song!\n");
fclose(fp);
}
else if(x==2)
{
flag=0;
printf("Please input the singer:");
scanf("%s",&v);
fp=fopen("data.txt","rb");
for(j=0;j<100;j++)
{
if(fread(&dan[j],sizeof(struct system),1,fp)!=1) break;
if(strcmp(dan[j].singer,v)==0)
{
printf("Name:%s\n",dan[j].name);
printf("Author:%s\n",dan[j].author);
printf("Singer:%s\n",dan[j].singer);
printf("Outday:%s\n",dan[j].time);
printf("---------------------------------\n");
flag=1;
}
}
if(flag==0)
printf("Cannot find the song!\n");
fclose(fp);
}
else if(x==1)
{
flag=0;
printf("Please input the author:");
scanf("%s",w);
fp=fopen("data.txt","rb");
for(j=0;j<100;j++)
{
if(fread(&dan[j],sizeof(struct system),1,fp)!=1) break;
if(strcmp(dan[j].author,w)==0)
{
printf("Name:%s\n",dan[j].name);
printf("Author:%s\n",dan[j].author);
printf("Singer:%s\n",dan[j].singer);
printf("Outday:%s\n",dan[j].time);
printf("---------------------------------\n");
flag=1;
}
}
if(flag==0)
printf("Cannot find the song!\n");
fclose(fp);
}
else printf("Error!\n");
}
main()
{
int a;while(1)
{
printf("\t\tWelcome to the song'system!------by flea\n");
printf("\t\t******************^o^ MENU ^o^*******************\n\n");
printf("\t\t\t(1).Enter\n");
printf("\t\t\t(2).Delete\n");
printf("\t\t\t(3).Browse\n");
printf("\t\t\t(4).Search\n");
printf("\t\t\t(0).exit\n");
printf("\t\t*************************************************\n");
printf("\n\t\t\tPlease choose the number(0-4):");
scanf("%d",&a);
if(a==0) break;
switch(a)
{
case 1:enter();break;
case 2:delete();break;
case 3:browse();break;
case 4:search();break;
}
}
}解决 无用评论 打赏 举报
悬赏问题
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 对于相关问题的求解与代码
- ¥15 ubuntu子系统密码忘记
- ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料
- ¥15 使用R语言marginaleffects包进行边际效应图绘制