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

📄 新建 文本文档.txt

📁 每种书的登记内容至少包括书号
💻 TXT
📖 第 1 页 / 共 2 页
字号:
struct booktype
 {
  int booknumber;             /*书号*/
  char bookname[20];          /*书名*/
  char auther[20];            /*作者*/
  char press[50];             /*出版单位*/
  int price;                  /*定价*/
  int pagenumber;             /*页数*/
  int nownumber;              /*当前册数*/
  time_t borrowtime;          /*借书时间*/
  time_t returntime;          /*还书时间*/
  char borrowernum;           /*借书人证号*/
  struct booktype *next;
 } *g_book_list;
struct borrowertype
{
 int cardnumber;              /*借书证号*/
 char name[20];               /*姓名*/
 char sex[10];                /*性别*/
 char tel[10];                /*联系电话*/
 char unit[80];               /*工作单位*/
 int lendnumber;              /*借书数目*/
 int booknumber;              /*所借书号*/
 struct borrowertype *next;
 struct borrowertype *prev;
} *g_borrower_list;
int m;
 struct k
   { int number;
     char name[16];
   struct k *new;
   } k;


void print(head)/*输出库存资料*/
struct booktype *head;
{struct booktype *p;
 printf("以下为库存图书:\n");
 p=head;
 if(head!=NULL)
  {do
   {printf("书号:%d",p->booknumber);
    printf("书名:%s",p->bookname);
    printf("作者:%s",p->auther);
    printf("出版单位:%s",p->press);
    printf("价格:%d",p->price);
    printf("页数:%d\n",p->pagenumber);
    p=p->next;
    }while (p!=NULL);
   }
 else printf("库内没有图书!\n");
}


struct booktype *del(head,num)/*删除旧书*/
long num;
struct booktype *head;
{struct booktype *p1,*p2;
 if(head==NULL)
 {printf("库内没有图书,无法进行删除操作!\n");
  goto end;
 }
 p1=head;
 while(num!=p1->booknumber&&p1->next!=NULL)
 {p2=p1;
  p1=p1->next;
 }
 if(num==p1->booknumber)
 {if(p1==head)
    head=p1->next;
  else
   {p2->next=p1->next;
    m=m-1;
   }
 }
 else
  printf("库中没有该图书!\n");
 end:
return(head);
}

struct booktype *insert(head,newbook)/*新书入库操作*/
struct booktype *newbook,*head;
{struct booktype *p0,*p1,*p2;
  p1=head;
  p0=newbook;
  if(head==NULL)
   {head=p0;p0->next=NULL;}
  else
   {while((p0->booknumber>p1->booknumber)&&(p1->next!=NULL))
    {p2=p1;p1=p1->next;}
     if(p0->booknumber<p1->booknumber)
     {if(head==p1)
       head=p0;
      else
	{p2->next=p0;p0->next=p1;}}
     else
     {p1->next=p0;p0->next=NULL;}}

m=m+1;
return(head);
}

kucaozuo (head) /*书库管理*/
struct booktype *head;
{struct booktype *book;
 long del_num;
 int u,v,w,x,y,z;
 head=NULL;
 do
 {printf("进行何种操作?1.新书入库2.旧书删除3.查询库内图书\n");
  scanf("%d",&v);
  if(v==1)
  {printf("是否进行新书入库操作?1.是2.否\n");
   scanf("%d",&w);
   if(w==1)
   {do
    {book=(struct booktype *)malloc(LEN);
     printf("请输入新书数据:\n");
     printf("请输入书号:");
     scanf("%d",&book->booknumber);
     printf("请输入书名:");
     scanf("%s",&book->bookname);
     printf("请输入作者:");
     scanf("%s",&book->auther);
     printf("请输入出版单位:");
     scanf("%s",&book->press);
     printf("请输入图书价格:");
     scanf("%d",&book->price);
     printf("请输入页数:");
     scanf("%d",&book->pagenumber);
     head=insert(head,book);
     print(head);
     printf("是否继续进行新书入库操作?1.是2.否\n");
     scanf("%d",&x);
    }while(x==1);
   }
  }
  else
  {if (v==2)
   {printf("是否进行删除操作?1.是2.否\n");
    scanf("%d",&y);
    if(y==1)
    {do
     {printf("请输入要删除的书号:\n");
      scanf("%ld",&del_num);
      head=del(head,del_num);
      print(head);
      printf("是否继续进行删除操作?1.是2.否\n");
      scanf("%d",&z);
     }while(z==1);
    }
   }
  else
  {printf("库内图书资料:\n");
   print(head);
   printf("库内图书数目为:%d\n",m);
  }
 }
 printf("是否继续进行书库管理操作?1.是2.否\n");
 scanf("%d",&u);
 }while(u==1);
 return(head);
}
/************************************************************************************/
/************************************************************************************/
void look_for_name ()
   { struct booktype *head,*p;
    int i,n=1,e;
     do
     {char borrow_name[20];
      printf ("请输入您想要查找的书名,按回车结束.");
      scanf ("%s",borrow_name);
	 p=head;
	 if (!head)
           {do
	    { if (0==strcmp (p->bookname,borrow_name))
	     { i=1;
	       printf ("该书的书号为:%d\n",p->booknumber);
	       printf ("该书的书名为:%s\n",p->bookname[20]);
	       printf ("该书出版单位为:%s\n",p->press[50]);
	       printf ("该书作者为:%s\n",p->auther[20]);
	       printf ("该书页数为:%d\n",p->pagenumber);
	       printf ("该书定价为:%d\n",p->price);
               printf ("该书当前册数为:%d\n",p->nownumber);
                   if (p->nownumber!=0)
		    printf ("本书已被借出,借书者证号为:%d",p->borrowernum);
	           else printf ("本书未被借出.\n");

	     }
	    p=p->next;
	    }while(!p);
         }
         else printf ("对不起,库内没有图书!\n");
         if (i!=1)
         printf ("对不起,没有您要查找的图书.\n");
        printf("是否继续进行查找操作?1、是,2、否\n");
        scanf("%d",&e);
     }while(e==1);
   }
 void look_for_writer ()
   { struct booktype *head,*p;
     int e,i,n=1;
     char borrow_writer[16];
      do
      {printf ("请输入您想要查找的书的作者,按回车结束.\n");
       scanf ("%s",borrow_writer[16]);
	  p=head;
	  if (!head)
           {do
	    {if(0==strcmp (p->auther[20],borrow_writer[16]))
	      {i=1;
	       printf ("该书的书号为:%d\n",p->booknumber);
	       printf ("该书的书名为:%s\n",p->bookname[20]);
	       printf ("该书出版单位为:%s\n",p->press[50]);
	       printf ("该书作者为:%s\n",p->auther[20]);
	       printf ("该书页数为:%d\n",p->pagenumber);
	       printf ("该书定价为:%d\n",p->price);
           printf ("该书当前册数为:%d\n",p->nownumber);
                   if (p->nownumber!=0)
		    printf ("本书已被借出,借书者证号为:%d",p->borrowernum);
		   else printf ("本书未被借出.\n");
	     }
	    p=p->next;
	   }while(!p);
          }
         else printf ("对不起,库内没有图书!\n");
         if (i!=1)
	  printf ("对不起,没有您要查找的图书.\n");
       printf("是否继续进行查找操作?1、是,2、否\n");
       scanf("%d",&e);
     }while(e==1);
   }
 void look_for_press()
 { int i=0,e;
   struct booktype *head, *p;
   char borrow_press[40];
   do
   {printf ("请输入您想要查找的书的出版单位,按回车结束.\n");
       scanf ("%s",borrow_press);
	   p=head;
	   if (!head)
	   { do
	    { if (0==strcmp (p->press,borrow_press))
	       {i=1;
		printf ("该书的书号为:%d\n",p->booknumber);
	       printf ("该书的书名为:%s\n",p->bookname[20]);
	       printf ("该书出版单位为:%s\n",p->press[50]);
	       printf ("该书作者为:%s\n",p->auther[20]);
	       printf ("该书页数为:%d\n",p->pagenumber);
	       printf ("该书定价为:%d\n",p->price);
           printf ("该书当前册数为:%d\n",p->nownumber);
                   if (p->nownumber!=0)
		    printf ("本书已被借出,借书者证号为:%d",p->borrowernum);
		   else printf ("本书未被借出.\n");
		}
	   p=p->next;
	   }while(!p);
          }
          else printf ("对不起,库内没有图书!\n");
       if (i!=1)
	 printf ("对不起,没有您要查找的图书.\n");
       printf("是否继续进行查找操作?1、是,2、否\n");
        scanf("%d",&e);
     }while(e==1);
 }
void look_for_number()
     { int i,e;
       struct booktype *head,*p;
       int borrow_nomber;
       do
       {printf ("请输入您要查找的书的书号,按回车结束.\n");
        scanf ("%d",&borrow_nomber);
	   p=head;
	   if (!head)
	   {do
	    { if (p->booknumber==borrow_nomber)
	      { i=1;
	       printf ("该书的书号为:%d\n",p->booknumber);
	       printf ("该书的书名为:%s\n",p->bookname[20]);
	       printf ("该书出版单位为:%s\n",p->press[50]);
	       printf ("该书作者为:%s\n",p->auther[20]);
	       printf ("该书页数为:%d\n",p->pagenumber);
	       printf ("该书定价为:%d\n",p->price);
               printf ("该书当前册数为:%d\n",p->nownumber);
                   if (p->nownumber!=0)
		    printf ("本书已被借出,借书者证号为:%d",p->borrowernum);
		   else printf ("本书未被借出.\n");
	      }
	      p=p->next;
	    }while(!p);
	   }
           else printf ("对不起,库内没有图书!\n");
	  if (i!=1)
	    printf ("对不起,没有您要查找的图书.\n");
         printf("是否继续进行查找操作?1、是,2、否\n");
        scanf("%d",&e);
       }while(e==1);
     }
   void look_for_borrower ()
	{void look_card_num ();
	 void look_card_name ();
	  char borrower_name[20];
	  int n,d,e;
          do
	  {printf ("请您选择您要查找的方式:1,按借书者的卡号\n;2按借书者的名字;\n;3:退出\n");
           scanf ("%d",&n);
           if (n==1)
	     look_card_num ();
             else if (n==2)
		    look_card_name ();
                    else if (n==3)
                         exit (0);
          printf("是否继续进行查找操作?1、是,2、否\n");
          scanf("%d",&e);
         }while(e==1);
	}
       void look_card_num ()
	 { struct booktype *head, *p;
	   struct borrowertype *card,*hed;
	   int m,e;
           do
           {printf ("请输入您要查找的卡的卡号.\n");
	    scanf ("%d",&m);
		card=hed;
		if (!hed)
		{do
		 { if (card->cardnumber==m)
		  { printf ("此卡卡号为:%d\n",card->cardnumber);
		   printf ("此卡持有者的姓名为:%s\n",card->name[20]);
                   printf ("此卡持有者的性别为:%s\n",card->sex[10]);
                   printf ("此卡持有者的联系电话为:%d\n",card->tel[10]);
                   printf ("此卡持有者的工作单位为:%d\n",card->unit[80]);
                   p=head;
	           if (!head)
		   {do
		     { if (card->cardnumber==p->borrowernum)
		      {printf ("此卡已经借阅了图书\n");
		       printf ("该书的书号为:%d\n",p->booknumber);
	               printf ("该书的书名为:%s\n",p->bookname[20]);
	               printf ("该书出版单位为:%s\n",p->press[50]);
	               printf ("该书作者为:%s\n",p->auther[20]);
	               printf ("该书页数为:%d\n",p->pagenumber);
	               printf ("该书定价为:%d\n",p->price);
                       printf ("该书当前册数为:%d\n",p->nownumber);
		      }
		     p=p->next;
		    }while(!p);
		   }
                    printf ("此卡不存在.");
		  card=card->new;}
	 else printf ("此卡号不存在.\n");
                 }while(!card);
	      printf("是否继续进行查找操作?1、是,2、否\n");
              scanf("%d",&e);
             }
            }while(e==1);
         }
  void look_card_name ()
	 {int e;
	  struct booktype *p,*head;
          struct borrowertype *card,*had;
	  char borrower_name[16];
          do
          {printf ("请输入您要查找的卡的所有者的姓名.\n");
	   scanf ("%s",borrower_name[16]);
	       card=had;
	       if (!had)
		{do
		 { if (0==strcmp (card->name,borrower_name[16]))
		  { printf ("此卡卡号为:%d\n",card->cardnumber);
		    printf ("此卡持有者的姓名为:%s\n",card->name[20]);
                    printf ("此卡持有者的性别为:%s\n",card->sex[10]);
                    printf ("此卡持有者的联系电话为:%d\n",card->tel[10]);
                    printf ("此卡持有者的工作单位为:%d\n",card->unit[80]);
                    p=head;
		    if (!head)
		     {do
		      {if (card->cardnumber==p->borrowernum)
		       {printf ("此卡已经借阅了图书\n");
		        printf ("该书的书号为:%d\n",p->booknumber);
	                printf ("该书的书名为:%s\n",p->bookname[20]);
	                printf ("该书出版单位为:%s\n",p->press[50]);
	                printf ("该书作者为:%s\n",p->auther[20]);
	                printf ("该书页数为:%d\n",p->pagenumber);
	                printf ("该书定价为:%d\n",p->price);
                        printf ("该书当前册数为:%d\n",p->nownumber);
		       }
	              p=p->next;
		     }while(!p);
		    }
		   }
		card=card->new;
	       }while(!card);
	 }
	printf("是否继续进行查找操作?1、是,2、否\n");
	scanf("%d",&e);
      }while(e==1);
  }
void look_for_word()
	 { int a,j,m,i,n=1,e;
	   struct booktype *p;
	   struct booktype *head;
	   char word[20];
           do
           {printf ("请输入书名关键字,按回车结束.\n");
            scanf ("%s",word[20]);

⌨️ 快捷键说明

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