📄 新建 文本文档.txt
字号:
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 + -