⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 书籍管理系统.txt

📁 不错的书籍管理系统
💻 TXT
📖 第 1 页 / 共 2 页
字号:
                      break;
                     }
                     q=q->next;
                    }while(q!=NULL);
                   if(x==0)
                    {printf("%s\n","未找到");
                    }
                   else/*找到了书*/
                    {
                     q=head->next;
                         
                     /*打印出书的序号,以便删除*/
                     while(q!=NULL)
                      {if(strcmp(q->bookname,p->bookname)==0)
                       {printf("第%d本书:\n",k);/*在%d的地方输出k的值*/
                        printf("书名:");
                        printf("%s\n",q->bookname);
                        printf("书目编号:");
                        printf("%d\n",q->booknumber);
                        printf("序号:");
                        printf("%d\n",q->queuenumber);
                        printf("\n");
                        k++;
                       }
                        q=q->next;
 /*打印出书的序号,以便删除*/
                     while(q!=NULL)
                      {if(strcmp(q->bookname,p->bookname)==0)
                       {printf("第%d本书:\n",k);/*在%d的地方输出k的值*/
                        printf("书名:");
                        printf("%s\n",q->bookname);
                        printf("书目编号:");
                        printf("%d\n",q->booknumber);
                        printf("序号:");
                        printf("%d\n",q->queuenumber);
                        printf("\n");
                        k++;
                       }
                        q=q->next;
                      }            /*显示库存*/
                    printf("请输入要删除的书目编号");
                    scanf("%d",&p->booknumber);
                    printf("请输入要删除的书的序号");
                    scanf("%d",&p->queuenumber);
                    
                    q=head->next;
                    /*因为第一个数据不好在循环里比较,所以这里提前比较一次*/

                    
                  if((q->booknumber==p->booknumber)&&(q->queuenumber==p->queue
number))
                     {
                      head->next=q->next;
                      printf("%s\n","删除完成");
                      return;
                     }

                    /*这里开始第二个数据的比较*/
                    while(q->next!=NULL)
                     {
                      
                  if((strcmp(q->next->bookname,p->bookname)==0)&&(q->next->que
uenumber==p->queuenumber))
                      {/*q->next->bookname是下一个数据的书名,比较下一个数据的书
名是便于删除数据*/
                       q->next=q->next->next;
                       printf("删除完成");
                       printf("\n");
                       return;
                      }
                      printf("查找中......");
                      printf("\n");
                      q=q->next;
                     }
                    printf("查找完成,书的序号没有找到");
                    printf("%\n");
                    
                   }
                   }
                  /*此函数在删除同书目的书籍的时候,如果删除序号较小的书,序号
较大的书的序号应依次减一*/
                  /*因为时间不足,并且这段算法要进行数据的重新排序,所以并没有完
成此功能*/
                   

                  void displaydata(void)        /*显示数据库内容*/
                   {int x=1;
                    database q;
                    q=(database)malloc(sizeof(database));
                    if(head->next==NULL)
                    {/*如果第一个数据为空,则没有书*/
                     printf("%s\n","没有书籍数据");
                    }
                    q=head->next;
                    do
                    {if(q==NULL)
                     {break;}
                         printf("第");printf("%d",x);printf("本书");
                      printf("书名:");
                      printf("%s\n",q->bookname);
                      printf("书目编号:");
                      printf("%d\n",q->booknumber);
                      printf("作者:");
                      printf("%s\n",q->bookauthor);
                      printf("书的序号");
                      printf("%d\n",q->queuenumber);
                      printf("\n");
                      x=x+1;
                      q=q->next;
                     }while(q!=NULL);
                   }
                  void findbookname(void)         /*通过书名查找*/
                   {database p,q;
                    p=(database)malloc(sizeof(database));
                    q=(database)malloc(sizeof(database));
                    q=head->next;
                    printf("请输入要查找的书名");
                    scanf("%s",&p->bookname);
                    do
                    {if(q==NULL)
                     {printf("没有书籍数据");
                      break;
                     }
                     if(strcmp(p->bookname,q->bookname)==0)
                     {printf("书名:");
                      printf("%s\n",q->bookname);
                      printf("书目编号:");
                        printf("%d\n",q->booknumber);
                      printf("作者:");
                      printf(q->bookauthor);
                      printf("书的序号:");
                      printf("%d\n",q->queuenumber);
                     }
                     q=q->next;
                    }while(q!=NULL);
                    printf("%s\n","查找完毕");
                   }

                  /*这几个查找的算法都是相同的,逐个比较就可以了*/
                  void findbooknumber(void)         /*通过书目编号查找*/
                   {database p,q;
                    p=(database)malloc(sizeof(database));
                    q=(database)malloc(sizeof(database));
                    q=head->next;
                    printf("请输入要查找的书目编号");
                    scanf("%d",&p->booknumber);
                    do
                    {if(q==NULL)
                     {printf("没有书籍数据");
                      break;
                      }
                     if(q->booknumber==p->booknumber)
                     {printf("书名:");
                      printf("%s\n",q->bookname);
                      printf("书目编号:");
                        printf("%d\n",q->booknumber);
                      printf("作者:");
                      printf(q->bookauthor);
                      printf("书的序号:");
                      printf("%d\n",q->queuenumber);
                     }
                     q=q->next;
                    }while(q!=NULL);
                     printf("%s\n","查找完毕");
                     free(p);
                   }
                   
                  void findbookauthor(void)        /*通过作者查找*/
                   {database p,q;
                    p=(database)malloc(sizeof(database));
                    q=(database)malloc(sizeof(database));
                    q=head->next;
                    printf("请输入要查找的作者");
                    scanf("%s",&p->bookauthor);
                    do
                    {if(q==NULL)
                     {break;
                      printf("没有书籍数据");
                     }
                     if(strcmp(q->bookauthor,p->bookauthor)==0)
                     {printf("书名:");
                      printf("%s\n",q->bookname);
                      printf("书目编号:");
                        printf("%d\n",q->booknumber);
                      printf("作者:");
                      printf(q->bookauthor);
                      printf("书的序号:");
                      printf("%d\n",q->queuenumber);
                     }
                     q=q->next;
                    }while(q!=NULL);
                   }
                   

                  void displaymenu(void)
                   {  printf("%s\n","   ************************");
                     printf("%s\n","   *  **图书馆管理程序**  *");
                     printf("%s\n","   *    输入新书,请按1    *");
                     printf("%s\n","   *    删除书籍,请按2    *");
                     printf("%s\n","   *    显示书目,请按3    *");
                     printf("%s\n","   *    查找书名,请按4    *");
                     printf("%s\n","   *    查找书号,请按5    *");
                     printf("%s\n","   *    查找作者,请按6    *");
                     printf("%s\n","   *    保存退出,请按0    *");
                     printf("%s\n","   *    保存数据,请按s    *");
                     printf("%s\n","   ************************");
                   }
                  void main()
                   {/*现在开始初始化程序*/
                    char c= x ;
                    char m;/*这个m有特殊的用处,下面解释.*/
                    initdatabase();/*调用初始数据结构函数*/
                    displaymenu();/*调用菜单显示函数*/
                    while(c== x )
                    {printf("如果要显示菜单请按D");
                     printf("\n");/*输出换行符*/
                     c=getchar();/*取一个字符到c中*/
                     switch(c) 
                     {case  1  :  inputdata();c= x ;break;/*这里每一句后都有个
break不要忘了*/
                      case  2 :   deldata();c= x ;break;
                      case  3  :  displaydata();c= x ;break;
                      case  4  :  findbookname();c= x ;break;
                      case  5  :  findbooknumber();c= x ;break;
                      case  6  :  findbookauthor();c= x ;break;
                      case  d  :  displaymenu();c= x ;break;
                      case  s  :  putfile();c= x ;break;
                      case  0  :  break;         
                  /*如果选到这个,c的值就是0,就会在while的时候退出循环*/
                      default : c= x ;
                     }/*switch*/
                     m=c;/*用m保存c的值,以便循环上去的时候while语句比较*/
                     c=getchar();/*因为getchar()会把最后的回车符读进去,而这个是
不需要的*/
                        /*所以再用一次getchar()把回车符读进来*/
                     c=m;/*因为c变成了回车符,所以这里要恢复成原来c的值*/
                    }/*while*/
                     putfile();/*保存数据到文件中*/
                     printf("%s\n","程序已经退出,谢谢使用");
                  }/*main*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -