qq_33316199 2017-04-14 07:47 采纳率: 0%
浏览 829

图书管理系统修改功能的代码有些没有运行,求纠错

#include "record.h"

//按书名查找图书
void find_name(BOOK *head)
{
BOOK *p;
char name[20];
int a=0;
printf("请输入你要查找的图书书名:\n");
gets(name);
p=head;
while(p!=NULL)
{
if(strcmp(p->BookName,name)==0){
a=1;
break;
}
p=p->next;
}

if(a==0){
    printf("你查找的图书不存在!");
    return;
}
else{
    printf("                               你要查找的图书信息如下\n"); 
        printf("\t================================================================================\n"); 
            printf("主编\t出版社\t出版年\t版次\tISBN书号\t书名\t定价\t拥有本数\t借出本数\t现余本数\t\n");
       while(p!=NULL){ 
            if(strcmp(p->BookName,name)==0){
            printf("%s\t%s\t%s\t%s\t%s\t%s\t%d\t%d\t%d\t%d\n",p->Editor,p->Publisher,p->PublishYear,p->Edit,p->ISBNnum,p->BookName,p->Price,p->OwnNum,p->LoanNum,p->LeftNum);
            }
            p=p->next;
       }
                printf("\t================================================================================\n"); 
}
return;

}

//修改图书信息
BOOK *modify(BOOK *top)
{
char str[5];
char temp[5];
int cn=0;
char input[30],choose[2];
int flage=1;

BOOK *p;
p=top->next;
if(count==0)
{   
    printf("没有可供修改的记录");
    return(top);
}
else
    {   
        find_name(p);
        printf("确定要修改这本书的信息:\n");
        gets(temp);
        if(temp[0]=='y'||temp[0]=='Y')
        {
            printf("需要修改的类型:\n");
            printf("1.主编\n");
            printf("2.出版社\n");
            printf("3.出版年\n");
            printf("4.版次\n");
            printf("5.ISBN书号\n");
            printf("6.定价\n");
            printf("7.拥有本数\n");
            printf("8.借出本数\n");
            printf("9.现余本数\n");
        }
        gets(choose);

        while(1)
    {
        cn = atoi(choose);
       if(cn<1|| cn>9 )
       {
           printf("\n输入错误,重选1-9:");
           gets(choose);
       }
       else    break;
        }

        switch(cn){

        case 1:
                printf("需要修改的主编:");
                break;
        case 2:
                printf("需要修改的出版社:");
                break;
        case 3:
                printf("需要修改的出版年:");
                break;
        case 4:
                printf("需要修改的版次:");
                break;
        case 5:
                printf("需要修改的ISBN书号:");
                break;
        case 6:
                printf("需要修改的定价:");
                break;
        case 7:
                printf("需要修改的拥有本数");
                break;
        case 8:
                printf("需要修改的借出本数:");
                break;
        case 9:
                printf("需要修改的现余本数:");
                break;
        }
        gets(input);

        while(p!=NULL)
        {
            if((cn==1&&strcmp(input,p->Editor)==0)
                    ||(cn==2&&strcmp(input,p->Publisher)==0)
                    ||(cn==3&&strcmp(input,p->PublishYear)==0)
                    ||(cn==4&&strcmp(input,p->Edit)==0)
                    ||(cn==5&&strcmp(input,p->ISBNnum)==0)
                    ||(cn==6&&(int)input==p->Price)
                    ||(cn==7&&(int)input==p->OwnNum)
                    ||(cn==8&&(int)input==p->LoanNum)
                    ||(cn==9&&(int)input==p->LeftNum)){
            switch(cn){
                case 1:
                    printf("请重新输入主编:");
                    scanf("%s",&p->Editor);
                    if(strcmp(p->Editor,"0")==0)
                    break;
                case 2:
                    printf("请重新输入出版社:");
                    scanf("%s",&p->Publisher);
                    if(strcmp(p->Publisher,"0")==0)
                    break;

                case 3:
                    printf("请重新输入出版年");
                    scanf("%s",&p->PublishYear);
                    if(strcmp(p->PublishYear,"0")==0)
                    break;
                case 4:
                    printf("请重新输入版次");
                    scanf("%s",&p->Edit);
                    if(strcmp(p->Edit,"0")==0)
                    break;
                case 5:
                    printf("请重新输入ISBN书号");
                    scanf("%s",&p->ISBNnum);
                    if(strcmp(p->ISBNnum,"0")==0)
                    break;
                case 6:
                    printf("请重新输入定价");
                    scanf("%d",&p->Price);
                case 7:
                    printf("请重新输入拥有本数");
                    scanf("%d",&p->OwnNum);
                case 8: 
                    printf("请重新输入借出本数");
                    scanf("%d",&p->LoanNum);
                case 9:
                    printf("请重新输入现余本数");
                    scanf("%d",&p->LeftNum);
                default:
                    break;
            }
            printf("修改成功!");
            flage=0;
            break;
            p=p->next;
        }
        if(flage!=0)
        {
            printf("没有找到该书籍\n");
            flage=1;
            break;
        }
continue;




        }

            display(p);
        }

}

  • 写回答

1条回答 默认 最新

  • shen_wei 2017-04-14 09:33
    关注
      case 1:
          {
              printf("请重新输入主编:");
              scanf("%s",&p->Editor);
              if(strcmp(p->Editor,"0")==0)
              {
    
              }          
          }
           break;
    

    代码要规范。。。。规范了就能发现错误。。。

    评论

报告相同问题?

悬赏问题

  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥15 对于这个问题的算法代码
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题