📄 tushuguan2.c
字号:
printf("图书信息:书号 %d 编者名%s 书名 %s 现存量 %d 是否在架 %d 是否已删 %d 总库存量 %d \n",book->link[i2]->key[1]->bookid,book->link[i2]->key[1]->editname,book->link[i2]->key[1]->bookname,book->link[i2]->key[1]->nowno,book->link[i2]->key[1]->onshelf,book->link[i2]->key[1]->tag,book->link[i2]->key[1]->total);
printf("\n");return 0;
}
}
if(book->key[1]->bookid!=-32767&&book->key[2]->bookid!=-32767&&book1->bookid>book->key[i2]->bookid)
{
if(book->link[3]!=NULL&&book->link[3]->key[1]->bookid==book1->bookid)
{
book->link[3]->key[1]->nowno++;book->link[3]->key[1]->onshelf=1;
book->link[3]->key[1]->tag=1;book->link[3]->key[1]->total++;
printf("图书信息:书号 %d 编者名%s 书名 %s 现存量 %d 是否在架 %d 是否已删 %d 总库存量 %d \n",book->link[3]->key[1]->bookid,book->link[3]->key[1]->editname,book->link[3]->key[1]->bookname,book->link[3]->key[1]->nowno,book->link[3]->key[1]->onshelf,book->link[3]->key[1]->tag,book->link[3]->key[1]->total);
printf("\n");return 0;
}
else
if(book->link[3]==NULL)
{
book3->key[1]=book1;book->link[3]=book3;
book->link[3]->parent=book;book->link[3]->keynum++;
book->link[3]->key[1]->nowno++;book->link[3]->key[1]->onshelf=1;
book->link[3]->key[1]->tag=1;book->link[3]->key[1]->total++;
printf("图书信息:书号 %d 编者名%s 书名 %s 现存量 %d 是否在架 %d 是否已删 %d 总库存量 %d \n",book->link[3]->key[1]->bookid,book->link[3]->key[1]->editname,book->link[3]->key[1]->bookname,book->link[3]->key[1]->nowno,book->link[3]->key[1]->onshelf,book->link[3]->key[1]->tag,book->link[3]->key[1]->total);
printf("\n");return 0;
}
}
}
}
else
{ book2=book;
while(1)
{
for(i1=1;i1<5;i1++)
{
if(book2->key[i1]->bookid==book1->bookid)
{
book2->key[i1]->nowno++;book2->key[i1]->onshelf=1;
book2->key[i1]->tag=1;book2->key[i1]->total++;
printf("\n");printf("图书信息:书号 %d 编者名 %s 书名 %s 现存量 %d 是否在架 %d 是否已删 %d 总库存量 %d \n",book2->key[i1]->bookid,book2->key[i1]->editname,book2->key[i1]->bookname,book2->key[i1]->nowno,book2->key[i1]->onshelf,book2->key[i1]->tag,book2->key[i1]->total);
return 0;
}
if(book2!=NULL&&book1->bookid<book2->key[i1]->bookid)
{
if(book2->link[i1]!=NULL)
{ book2=book2->link[i1];break;}
else
{book2->link[i1]=book3;book2=book2=book2->link[i1];book2->parent=book2;break;}
}
if(book2->keynum==3&&book2!=NULL&&book1->bookid>book2->key[3]->bookid)
{
if(book2->link[4]!=NULL)
{ book2=book2->link[4];break;}
else
{book2->link[4]=book3;book2=book2=book2->link[4];book2->parent=book2;break;}
}
else
{
if(book2->keynum==0)
{
book2->key[1]=book1;book2->keynum++;
book2->key[1]->nowno++;book2->key[1]->onshelf=1;
book2->key[1]->tag=1;book2->key[1]->total++;
printf("\n");printf("图书信息:书号 %d 编者名 %s 书名 %s 现存量 %d 是否在架 %d 是否已删 %d 总库存量 %d \n",book2->key[1]->bookid,book2->key[1]->editname,book2->key[1]->bookname,book2->key[1]->nowno,book2->key[1]->onshelf,book2->key[1]->tag,book2->key[1]->total);
return 0;
}
if(book2->keynum>0&&book2->keynum<3&&book1->bookid>book2->key[i1]->bookid&&book2->key[i1+1]->bookid==-32767)
{
book2->key[i1+1]=book1;book2->keynum++ ;
book2->key[i1+1]->nowno++;book2->key[i1+1]->onshelf=1;
book2->key[i1+1]->tag=1;book2->key[i1+1]->total++;
printf("图书信息:书号 %d 编者名 %s 书名 %s 现存量 %d 是否在架 %d 是否已删 %d 总库存量 %d \n",book2->key[i1+1]->bookid,book2->key[i1+1]->editname,book2->key[i1+1]->bookname,book2->key[i1+1]->nowno,book2->key[i1+1]->onshelf,book2->key[i1+1]->tag,book2->key[i1+1]->total);
printf("\n");return 0;
}
}
}
}free(book3);free(book2);
}
}
searchbook(int id,booknode *T)//查找图书
{
{
int i,i1,i2,i3,j=0;
booktype *book1;
booknode *book2,*book3;
resulttype *result;
booktypeInitiate(&book1);
booknodeInitiate(&book2);
booknodeInitiate(&book3);
book1->bookid=id;
book2=T;
if(T->keynum==0)
{
printf(" 该图书不存在\n");
printf("\n");
return 0;
}
while(1)
{
for(i1=1;i1<5;i1++)
{
if(book2->key[i1]->bookid==book1->bookid)
{
printf("图书信息:书号 %d 编者名 %s 书名 %s 现存量 %d 是否在架 %d 是否已删 %d 总库存量 %d \n",book2->key[i1]->bookid,book2->key[i1]->editname,book2->key[i1]->bookname,book2->key[i1]->nowno,book2->key[i1]->onshelf,book2->key[i1]->tag,book2->key[i1]->total);
printf("\n"); return book2->key[i1];
}
if(book2!=NULL&&book1->bookid<book2->key[i1]->bookid)
{ //printf("aaaaaaa==%d\n",book2->link[i1]->keynum);
if(book2->link[2]!=NULL)
{ printf("aaaaaaa\n");book2=book2->link[i1];break;}
else
{
printf(" 该图书不存在\n");printf("\n");
return 0;
}
}
if(book2!=NULL&&book2->key[i1]->bookid!=-32767&&book2->key[i1+1]->bookid==-32767&&book1->bookid>book2->key[i1]->bookid)
{
if(book2->link[i1+1]!=NULL)
{ book2=book2->link[i1+1];break;}
else
{
printf(" 该图书不存在\n");printf("\n");
return 0;
}
}
}
}free(book3);
}
}
delbook(int id,booknode *T)
{
{
int i,i1,i2,i3,j=0;
booktype *book1;
booknode *book2,*book3,*book4;
resulttype *result;
booktypeInitiate(&book1);
booknodeInitiate(&book2);
booknodeInitiate(&book3);
booknodeInitiate(&book4);
book1->bookid=id;
book2=T;
if(T->keynum==0)
{
printf(" 该图书不存在,不能删除\n");
return 0;
}
while(1)
{
for(i1=1;i1<5;i1++)
{
if(book2->key[i1]->bookid==book1->bookid)
{
printf("图书信息:书号 %d 编者名 %s 书名 %s 现存量 %d 是否在架 %d 是否已删 %d 总库存量 %d \n",book2->key[i1]->bookid,book2->key[i1]->editname,book2->key[i1]->bookname,book2->key[i1]->nowno,book2->key[i1]->onshelf,book2->key[i1]->tag,book2->key[i1]->total);
book3=book2;
// if(i1==1)
// {
while(book2->link[i1]->keynum!=0)
{
book2=book2->link[i1];// printf("aaaaa\n");
for(i2=2;i2<4;i2++)
if(book2->key[i2-1]->bookid!=-32767&&book2->key[i2]->bookid==-32767&&book2->link[i2]==NULL)
{
//book3->key[i1]=book2->key[i2-1];book2->keynum==0;
book3->key[i1]=book2->key[i2-1]; // book2->key[i2-1]->bookid=-32767;
book4=book2;
while(book4->link[i2-1]!=NULL)
{
book4=book4->link[i2-1];
while(book4->link[i2]!=NULL)
{
book4=book4->link[i2];
for(i3=2;i3<4;i3++)
{
if(book4->key[i3]->bookid==-32767&&book4->key[i3-1]->bookid!=-32767&&book4->link[i3]==NULL)
{book2->key[i2-1]=book4->key[i3-1];}
// else book4=book4->link[i3];
}
}
if(book2->link[i2-1]==NULL&&i2==2)
book2==NULL;
return 0;
}
}
}
// else
// if(book2->link[i1+1]->keynum!=0)
// {
// book2=book2->link[1];
// }
// }
/* if(book2->key[i1+1]->bookid==-32767)
{
if(book2->link[1]->keynum!=0)
{
book2=book2->link[1];
for(i2=2;i2<4;i2++)
if(book2->key[i2-1]->bookid!=-32767&&book2->key[i2]->bookid==-32767&&book2->link[1]==NULL)
{
if(i2==2)
{book3->key[i1]=book2->key[1],book2==NULL;return 0;}
book3->key[i1]=book2->key[i2-1];
book2->key[i2-1]->bookid=-32767;
}
}
}*/
}
if(book2!=NULL&&book1->bookid<book2->key[i1]->bookid/*&&book2->keynum!=0*/)
{
if(book2->link[i1]!=NULL)
{ book2=book2->link[i1];break;}
else
{
printf(" 该图书不存在\n");
return 0;
}
// else
//{book2->link[i1]=book3;book2=book2=book2->link[i1];break;}
}
if(book2->keynum==3&&book2!=NULL&&book1->bookid>book2->key[3]->bookid)
{
if(book2->link[4]!=NULL)
{ book2=book2->link[4];break;}
else
{
printf(" 该图书不存在\n");
return 0;
}
}
}
}free(book3);
}
}
/*searchbook(booknode *T,booktype k)
{
int i,found;
booknode *p;
booknode *q;
resulttype *x,*y;
p=T;
q=NULL;
found=FALSE;
i=0;//初始化,P指向待查节点, q指向P的双亲
while(p&&!found)
{
// y=seachBtree(&p,k);
i=y->i;
if(i>0&&p->key[i]->bookname==k.bookname) found=TRUE;//找到待查关键字
else{q=p;p->recptr[i];}
}
if(found)
{x->i=i;x->pt=p;x->tag=1;return &x;}//查找不成功
else
{x->i=i;x->pt=q;x->tag=0;return &x;}//查找不成功,返回K的插入位置信息
}//查找函数*/
setname(char bname[])
{
}
disp()
{
}
clear()
{
}
query(int id)
{
}
/**********************************************///子函数的子函数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -