当前位置:首页 > 广义表的应用
cout<<\当前图书被借出,不能删除!\
cout<<\==========\
return 1; }
p->next=p->next->next; //删除语句
cout<<\成功删除!\
cout<<\==========\
flag=1; //成功删除标记 break; } }
if(p==NULL&&flag==0) {
cout<<\删除不成功!\//已经被删除或没有这本书
cout<<\==========\ }
return 1; }
//图书借阅
int Member_Y(MemberList &L,long num) //判断是否是会员,1是,0否。只有会员才有权限借书 {
Member *p; p=L;
for(;p!=NULL;p=p->next) if(p->num==num) return 1; return 0; }
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!没有这本书!\
cout<<\==========\
continue; }
for(p=H->next;p!=NULL;p=p->next) {
if(p->num==m) {
if(p->yes==0) {
cout<<\ERROR!当前图书被借出,不能借阅!\
cout<<\==========\
break;
23
}
q->max++; p->yes=0;
p->membernum=q->num;
q->yes=1; for(int i=1;i<=max;i++)
if(q->t[i].num==0) break;
q->t[i].num=p->num;
cout<<\成功借出!\
cout<<\==========\
flag=1; //成功借出标记
break; } }
if(p==NULL&&flag==0) {
cout<<\借书不成功!\没有这本书
cout<<\==========\ } } } else {
cout<<\您不是会员,借书失败!请先申请!\
cout<<\==========\ }
return 1; }
//还书 int BookReturn(BookList &H,MemberList &L) //还书时以编号作为主键 {
Book *p,*s; Member *q; long m=1;
int flag=0,max;
cout<<\输入要归还的书的相关信息:\
while(m) {
cout<<\编号:\ cin>>m;
for(s=H->next;s!=NULL;s=s->next) if(s->num==m) break; if(s==NULL) {
cout<<\没有这本书!\
cout<<\==========\ continue; }
for(p=H->next;p!=NULL;p=p->next) {
if(p->num==m) {
if(p->yes==1) {
cout<<\这本书没有借出,还书失败!\
cout<<\==========\
break; }
for(q=L;q!=NULL;q=q->next)
if(q->num==p->membernum) break; p->yes=1;
24
for(int k=1;k<=max;k++) {
//从借的书的数组中删除这本书
if(q->t[k].num==p->num) {
q->t[k].num=0; q->max--; break; }
cout<<\还书成功!\
cout<<\==========\
if(q->max==0) q->yes=0; flag=1; //成功还书标记 break; } }
if(p==NULL&&flag==0) {
cout<<\还书不成功!\没有借这本书
cout<<\==========\ } }
return 1; }
//增加会员
Member *Init_M() //初试化会员链表 {
Member *L; L=(Member
*)malloc(sizeof(Member)); if(!L) exit(1); L->next=NULL; return L; }
int MemberAdd(MemberList &L) //建立一个带头结点的链表用来存储会员信息 int i=0,k=0,max; //统计要增加的会员人数
Member *p,*q,*s; p=(Member
*)malloc(sizeof(Member)); if(!p) exit(1); if(L->next==NULL) {
cout<<\输入编号:\ cin>>p->num; if(p->num==0) //退出\增加会员\ {
cout<<\共计\名会员入会!\
cout<<\==========\ return 1; }
cout<<\输入姓名:\ cin>>p->name;
for(s=L->next;s!=NULL;s=s->next) if(s->num==p->num) {
cout<<\您已经是会员!\
cout<<\==========\ return 1; }
cout<<\输入性别:(男:M,女:F)\男m,女f
cin>>p->sex;
for(int i=0;i<=max;i++) p->t[i].num=0;
p->max=0; //借阅数目,初始为0 p->yes=0; //0表示没有借书 p->next=NULL; L->next=p; q=p; ++k;
cout< 25 } else { q=L; while(q->next!=NULL) q=q->next; p->num=1; p->next=NULL; } while(p->num!=0) //以会员号作为判断链表是否结束 { p=(Member *)malloc(sizeof(Member)); if(!p) exit(1); cout<<\输入编号:\ cin>>p->num; if(p->num==0) //退出\增加会员\ { cout<<\共计有\名会员!\ cout<<\==========\ break; } cout<<\输入姓名:\ cin>>p->name; for(s=L->next;s!=NULL;s=s->next) if(s->num==p->num) { cout<<\您已经是会员!\ return 1; } cout<<\输入性别:(男:M,女:F)\男m,女f cin>>p->sex; for(i=0;i<=max;i++) p->t[i].num=0; p->max=0; //借阅数目,初始为0 p->yes=0; //0表示没有借书 p->next=NULL; q->next=p; q=p; ++k; cout< return 1; cout<<\==========\} //查询会员 int Search_MemberName(MemberList &L) //按姓名查询 { Member *p; p=L->next; char n[20]; int flag=0; cout<<\输入要查询的会员姓名:\ cin>>n; for(;p!=NULL;p=p->next) { if(strcmp(p->name,n)==0) { if(flag==0) cout< cout< cout< else if(p->sex=='F') cout< if(p->yes==1) cout< else cout< flag=1; continue; } } 26
共分享92篇相关文档