当前位置:首页 > 广义表的应用
cout<<\==========\ switch(n) {
case 1:MemberAdd(L); break; //增加会员 case 2:MemberSearch(L); break; //查询会员
case 3:MemberDel(L);
fpb2=fopen(\
for(p2=H->next;p2!=NULL;p2=p2->next)
fwrite(p2,sizeof(Book),1,fpb2); fclose(fpb2);
break; //删除会员
case 4:BorrowInfo(L); break; //借书信息
case 0:break; //退出会员管理,返回上一层菜单 } }
else if(m==0) {
cout< 2. 图书管理 (1)增加图书 int BookAdd(BookList &H) //建立一个带头结点的链表用来存储图书信息 { int i=0; //统计要增加的图书量 Book *p,*q; p=(Book *)malloc(sizeof(Book)); if(!p) exit(1); if(H->next==NULL) { cout<<\输入图书编号:\ cin>>p->num; if(p->num==0) //退出\增加图书\ { cout<<\共计\本图书入库!\ cout<<\==========\ return 1; } fpm2=fopen(\ for(q2=L->next;q2!=NULL;q2=q2->next) fwrite(q2,sizeof(Member),1,fpm2); fclose(fpm2); exit(0); } } } cout<<\输入书名:\ cin>>p->name; p->yes=1; //1表示没有借出 p->next=NULL; H->next=p; q=p; ++i; cout< q=H; while(q->next!=NULL) q=q->next; p->num=1; //进入循环的条件 p->next=NULL; } while(p->num!=0) //以图书编号作为判断链表是否结束 { 11 p=(Book *)malloc(sizeof(Book)); if(!p) exit(1); cout<<\输入图书编号:\ cin>>p->num; if(p->num==0) //退出\增加图书\ break; } cout<<\输入书名:\ cin>>p->name; p->yes=1; //1表示没有借出 p->next=NULL; { cout<<\共计\本图书入库!\ cout<<\==========\ (2)查询图书 ①按书名查询 int Search_BookName(BookList &H) //按书名查询 { Book *p; p=H->next; char n[80]; int flag=0; cout<<\输入要查询的书名:\ cin>>n; for(;p!=NULL;p=p->next) { if(strcmp(p->name,n)==0) { if(flag==0) cout< cout< if(p->yes==1) cout< else cout< ②按编号查询 int Search_BookNum(BookList &H) //按编号查询 { q->next=p; q=p; ++i; cout< return 1; \ flag=1; continue; } } cout<<\==========\ if(p==NULL&&flag==0) { cout<<\没有相关信息!\ cout<<\==========\ } return 1; } Book *Init_B() //初试化图书链表 { Book *H; H=(Book *)malloc(sizeof(Book)); if(!H) exit(1); H->next=NULL; return H; } Book *p; p=H->next; long n; 12 int flag=0; cout<<\输入要查询的书的编号:\ cin>>n; for(;p!=NULL;p=p->next) { if(n==p->num) { if(flag==0) cout< cout< if(p->yes==1) cout< else ③查询所有图书信息 int Search_AllB(BookList &H) //查询所有图书信息 { Book *p; p=H->next; int i=0,flag=0; for(;p!=NULL;p=p->next) { if(flag==0) cout< cout< (3)删除图书 int BookDel(BookList &H) //以图书编号作为主键进行删除 { Book *p; long n; int flag=0; p=H; cout<<\输入要删除的书的编号:\ cout< flag=1; continue; } } cout<<\==========\ if(p==NULL&&flag==0) { cout<<\没有相关信息\ cout<<\==========\ } return 1; } if(p->yes==1) cout< cout< flag=1; i++; } cout<<\共计\本书。\ cout<<\==========\ return 1; } cin>>n; for(;p!=NULL;p=p->next) { if(p->next!=NULL&&p->next->num==n) { if(p->next->yes==0) 13 { cout<<\当前图书被借出,不能删除!\ cout<<\==========\ return 1; } p->next=p->next->next; //删除语句 cout<<\成功删除!\ cout<<\==========\ (4)图书借阅 int BookBorrow(BookList &H,MemberList &L) //借阅时以编号作为主键 { Book *p,*s; Member *q; long m=1,num; int t=0,flag=0,max; cout<<\输入会员编号:\ cin>>num; if(Member_Y(L,num)==1) { q=L; for(;q!=NULL;q=q->next) if(q->num==num) break; while(m) { if(t==0) cout<<\输入要借阅的书的相关信息:\ t=1; cout<<\编号:\ cin>>m; for(s=H->next;s!=NULL;s=s->next) if(s->num==m) break; if(s==NULL) { cout<<\ERROR!没有这本 flag=1; //成功删除标记 break; } } if(p==NULL&&flag==0) { cout<<\删除不成功!\//已经被删除或没有这本书 cout<<\==========\ } return 1; } 书!\ cout<<\==========\ continue; } for(p=H->next;p!=NULL;p=p->next) { if(p->num==m) { if(p->yes==0) { cout<<\ERROR!当前图书被借出,不能借阅!\ cout<<\==========\ break; } q->max++; p->yes=0; p->membernum=q->num; q->yes=1; for(int i=1;i<=max;i++) 14
共分享92篇相关文档