广义表的应用

发布时间 : 星期日 文章广义表的应用更新完毕开始阅读

cout<<\==========\

(4)借书信息

int BorrowInfo(MemberList &L) {

Member *p;

int j,flag=0,max,k=0; long n;

Search_AllM(L);

cout<<\输入要查询的会员编号:\ cin>>n;

for(p=L;p!=NULL;p=p->next) {

if(p->num==n&&p->yes==1) {

cout<<\借书详细情况:\

cout<<\==========\

for(j=1;j<=max;j++) {

if(p->t[j].num!=0) {

k++;

if(flag==0)

五、程序代码

#include #include #include #include #include #include #include

#define MAX 10//会员最大借阅量 using namespace std;

typedef struct book //书的结构体 {

int membernum; //借书人编号

}

return 1; }

cout<<\本数\编号\借书时间\

cout<t[j].num<

cout<<\==========\ }

else if(p->num==n&&p->yes==0) {

cout<<\无借书记录!\

cout<<\==========\ } }

return 1; }

char name[80]; //图书名 long num; //图书编号

int yes; //判断书是否存在或者已经借出,1存在,0借出

struct book *next; /结点指针 }Book,*BookList;

typedef struct BorrowBook//会员借的书的结构体 {

long num;//借的书的编号 }BBook;

19

typedef struct member//会员的结构体 {

char name[20]; //会员姓名

char sex; //会员性别,男M,女F

long num; //会员编号

int max; //会员借书数目,初始为0 int yes; //会员是否借书,1是,0否 BBook t[MAX]; //会员借的书的数组

struct member *next; //结点指针

}Member,*MemberList;

//查询图书

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<num<name<

if(p->yes==1)

cout<

else

cout<

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; }

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<<\

20

==========\ return 1; }

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) //以图书编号作为判断链表是否结束 {

p=(Book

*)malloc(sizeof(Book)); if(!p) exit(1);

cout<<\输入图书编号:\ cin>>p->num; if(p->num==0) //退出\增加图书\ {

cout<<\共计\本图书入库!\

cout<<\==========\ break; }

cout<<\输入书名:\ cin>>p->name;

p->yes=1; //1表示没有借出 p->next=NULL; q->next=p; q=p; ++i;

cout<

return 1; }

int Search_BookNum(BookList &H) //按编号查询 {

Book *p; p=H->next; long n; int flag=0;

cout<<\输入要查询的书的编号:\ cin>>n;

for(;p!=NULL;p=p->next) {

if(n==p->num) {

if(flag==0) cout<

cout<num<name<

if(p->yes==1)

cout<

else

cout<

flag=1; continue; } }

cout<<\==========\

if(p==NULL&&flag==0) {

cout<<\没有相关信息\

cout<<\==========\ }

21

return 1; } 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<num<name<yes==1) cout<>m; cout<<\==========\ switch(m) { case 1:Search_BookName(H); break; //按书名查询 case 2:Search_BookNum(H); break; //按编号查询 case 3:Search_AllB(H); break; //查询所有图书信息 case 0:break; //退出 } } return 1; } //删除图书 int BookDel(BookList &H) //以图书编号作为主键进行删除 { Book *p; long n; int flag=0; p=H; cout<<\输入要删除的书的编号:\ cin>>n; for(;p!=NULL;p=p->next) {

if(p->next!=NULL&&p->next->num==n) { if(p->next->yes==0) {

22

联系合同范文客服:xxxxx#qq.com(#替换为@)