课程设计---图书登记管理系统

来源:互联网 发布:linux查看mysql的密码 编辑:程序博客网 时间:2024/04/28 05:23

图书登记管理系统应该具有下列功能:
(1)、 通过键盘输入某本图书的信息;
(2) 、给定图书编号,显示该本图书的信息;
(3) 、给定作者姓名,显示所有该作者编写的图书信息;
(4) 、给定出版社,显示该出版社的所有图书信息;
(5) 、给定图书编号,删除该本图书的信息;
(6) 、提供一些统计各类信息的功能。

#include "stdio.h"  #include "stdlib.h"  #include "string.h"  typedef struct book  {      int book_id;          //图书编号      char book_name[20];   //图书名字      char name[20];        //作者姓名      char press[20];       //出版社      struct book *next;  }book;  book *head=NULL;  int length;   //链表的长度  void create()  {      book *p1,*p2;      length=0;      p1=(book *)malloc(sizeof(book));      p1->book_id=-1;      if(head==NULL)          head=p1;      printf("请输入图书的编号、名字、作者姓名、出版社信息:\n");      while(1)  //图书编号为0的时候退出      {          p2=(book *)malloc(sizeof(book));          scanf("%d %s %s %s",&p2->book_id,p2->book_name,p2->name,p2->press); //输入图书信息          if(p2->book_id==0)          {              printf("图书信息输入完成!\n");              break;          }          length++; //链表的长度          p1->next=p2;          p2->next=NULL;          p1=p1->next;      }      return ;  }  void display()  {      book *p=head->next;      printf("链表中所有的图书信息如下:\n");      while(p!=NULL)      {          printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press);          p=p->next;      }      return ;  }  void search()  {      int num,x,flag1=0,flag2=0;      char name[20],press[20];      book *p=head->next;      printf("1、根据图书编号进行查找\n");      printf("2、根据作者姓名进行查找\n");      printf("3、根据出版社进行查找\n");      printf("请选择功能:");      scanf("%d",&x);      if(x==1)      {          printf("需要查找的图书编号为:");          scanf("%d",&num);          while(p!=NULL)          {              if(p->book_id==num)              {                  printf("图书编号为%d的图书的信息如下:\n",num);                  printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press);                  return;              }                 p=p->next;          }          if(p==NULL)              printf("无此记录!\n");      }      else if(x==2)      {          printf("需要查找的作者姓名为:");          scanf("%s",name);          while(p!=NULL)          {              if(strcmp(p->name,name)==0)              {                  if(flag1==0)                      printf("作者%s编写的图书信息如下:\n",name);                  flag1=1;                  printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press);              }              p=p->next;          }          if(flag1==0)              printf("图书馆没有作者%s编写的图书!\n",name);      }      else if(x==3)      {          printf("需要查找的出版社为:");          scanf("%s",press);          while(p!=NULL)          {              if(strcmp(p->press,press)==0)              {                  if(flag2==0)                      printf("出版社为%s编写的图书信息如下:\n",press);                  flag2=1;                  printf("%d %s %s %s\n",p->book_id,p->book_name,p->name,p->press);              }              p=p->next;          }          if(flag2==0)              printf("图书馆没有出版社%s编写的图书!\n",press);      }      return ;  }  void Delete()  {      int num;      book *p,*q;      q=head,p=head->next;      printf("请输入要删除的图书编号:\n");      scanf("%d",&num);      while(p!=NULL)      {          if(p->book_id==num)          {              q->next=p->next;              free(p);              length--;              printf("删除成功!\n");              return ;          }          p=p->next;          q=q->next;      }      if(p==NULL)      {          printf("找不到要删除的图书编号!\n");          return ;      }  }  void menu()  {      printf("________________________________________________________________\n");      printf("|               图书登记管理系统                               |\n");      printf("|               0、 退出系统                                   |\n");      printf("|               1、 输入图书信息                               |\n");      printf("|               2、 显示图书信息                               |\n");      printf("|               3、 查询图书信息                               |\n");      printf("|               4、 删除图书信息                               |\n");      printf("________________________________________________________________\n");      return ;  }  int main(void)  {      int a;      menu();      while(1)      {          printf("请选择相应的功能:");          scanf("%d",&a);          switch(a)          {          case 0:              return 0;          case 1:              create();              menu();              break;          case 2:              if(head)              {                  display();                  menu();              }              else              {                  printf("图书信息为空,请先输入图书信息!\n");                  menu();              }              break;          case 3:              if(head)              {                  search();                  menu();              }              else              {                  printf("图书信息为空,请先输入图书信息!\n");                  menu();              }              break;          case 4:              if(head)              {                  Delete();                  menu();              }              else              {                  printf("图书信息为空,请先输入图书信息!\n");                  menu();              }              break;          default:              break;          }      }      system("pause");      return 0;  }  
阅读全文
0 0