qq_37122166 2016-12-21 02:10 采纳率: 0%
浏览 850

歌曲信息管理系统的程序错误 哪位大神帮忙看一下

看不懂哪里错了……希望有个大神指点一下 ps本人对C语言一窍不通图片说明

  • 写回答

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包进行边际效应图绘制