图书借阅管理系统(C++)数据结构课程设计.docx

上传人:风**** 文档编号:990412 上传时间:2024-03-20 格式:DOCX 页数:16 大小:17.49KB
下载 相关 举报
图书借阅管理系统(C++)数据结构课程设计.docx_第1页
第1页 / 共16页
图书借阅管理系统(C++)数据结构课程设计.docx_第2页
第2页 / 共16页
图书借阅管理系统(C++)数据结构课程设计.docx_第3页
第3页 / 共16页
图书借阅管理系统(C++)数据结构课程设计.docx_第4页
第4页 / 共16页
图书借阅管理系统(C++)数据结构课程设计.docx_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、/姓名: /班级: /学号: 、/*图书借阅管理系统: 要求:为一个图书馆设计一个简单的借阅管理选题,主要分为两大功能: 图书管理(增加图书、查询图书、删除图书、图书借阅、还书); 会员管理(增加会员、查询会员、删除会员、借书信息);*/#include stdio.h#include iostream.h#include stdafx.h#include malloc.h#include stdlib.h#include #include /*结构体部分*/*图书信息结构体*/typedef struct elemchar bookid5;char bookname20;char booka

2、uthor50;char bookmark2;char memberid4;elemtype;/*图书链表结点结构体*/typedef struct nodeelemtype data;struct node *next;lnode,*linknode;/*会员信息结构体*/typedef struct memberelemchar memberid4;char membername10;memberelemtype;/*会员链表结点结构体*/typedef struct membernodememberelemtype data;struct membernode *next;mlnode,

3、*mlinknode;/*创建函数部分*/创建与销毁部分/*创建空图书链表*/linknode Init_lnode()linknode head; head=(linknode)malloc(sizeof(lnode);if(head)head-next=NULL; head-data.bookauthor50=NULL; head-data.bookid5=NULL;head-data.bookmark2=NULL;head-data.bookname20=NULL;head-data.memberid4=NULL;return head;/*销毁图书链表*/void Destroy_ln

4、ode(linknode *head)linknode p,q;if (!(*head)return; p=*head;while(!p)q=p;p=p-next;free(q);*head=NULL;/*创建空会员链表*/mlinknode Init_mlnode()mlinknode mhead; mhead=(mlinknode)malloc(sizeof(mlnode);if(mhead)mhead-next=NULL; mhead-data.memberid4=NULL;mhead-data.membername10=NULL;return mhead;/*销毁会员链表*/void

5、Destroy_mlnode(mlinknode *mhead)mlinknode p,q;p=*mhead;if (!(*mhead)return;while(p)q=p;p=p-next;free(q);*mhead=NULL;/图书管理函数/*增加图书模块*/void addbook(linknode head) linknode p;p=(linknode)malloc(sizeof(lnode); system(cls); printf(Add books.n); printf(please input bookinfo:nn); printf(%-7s%-20s%-15sn,id(

6、4),bookname,bookauthor); printf(*n); /scanf(%s%s%s,p-data.bookid,p-data.bookname,p-data.bookauthor);cinp-data.bookname;cinp-data.bookauthor; p-data.bookmark0=N; p-data.bookmark1=0; p-data.memberid0=0; p-data.memberid1=0;p-next=head-next;head-next=p; printf(nnAdd success!n); printf(nPress anykey retr

7、un.);getchar();getchar();/*输出图书信息函数*/void printbookinfo(linknode head) linknode p;p=Init_lnode();p=head-next; system(cls); printf(The book informations are:nn);coutid tbooknametbookauthorttmarktborower tn; /printf(tn,ttn,ttn,tntn,id,bookname,bookauthor,mark,borower); cout*endl; while(p) coutdata.boo

8、kid t;coutdata.bookname t t;coutdata.bookauthor t t;coutdata.bookmark t;coutdata.memberidnext;getchar();/*按编号查询图书*/void select(linknode head)char id5; linknode p; system(cls); p=head-next; printf(select book by id.nn); printf(Please input book id:n); cinid;while(p)if(strcmp(p-data.bookid,id)=0) brea

9、k; else p=p-next; if(p=NULL) printf(nThe book not exit!n); else /printf(tn,ttn,ttn,tntn,id,bookname,bookauthor,mark,borower);coutid tbooknametbookauthorttmarktborower tn; /printf(tn,ttn,ttn,tntn,id,bookname,bookauthor,mark,borower); cout*data.bookid,p-data.bookname,p-data.bookauthor,p-data.bookmark,

10、p-data.memberid);printf(nPress anykey retrun.); getchar();/*按编号删除图书*/void deletebook(linknode head)char id5; linknode p,q; system(cls); p=head-next;q=head; printf(delete book by id.nn); printf(Please input book id:n); scanf(%s,id); while(p!=NULL)if(strcmp(p-data.bookid,id)=0) break; elseq=p;p=p-next

11、; if(p=NULL) printf(nThe book you want to delete are not exit!n); elseq-next=p-next; free(p); printf(nDelete success!n); printf(nPress anykey retrun.); getchar(); getchar(); /*借阅图书*/void borrow(linknode head,mlinknode mhead)char id5; char mid4; linknode p; mlinknode q;p=head;q=mhead-next; system(cls

12、); printf(borrow book.nn); printf(Please input book id:n); cinid;while(p) if(p)if(strcmp(p-data.bookid,id)!=0)p=p-next; break;if(p=NULL) printf(nThe book doesnt exit! please input it again!nn); getchar();else/下面全体 printf(nPlease input member id:n); cinmid;while(q) if(q)if(strcmp(q-data.memberid,mid)

13、!=0)q=q-next;else break;if(q=NULL) printf(nYou are not member! input againn); else if(strcmp(p-data.bookmark,Y)!=0) strcpy(p-data.bookmark,Y); strcpy(p-data.memberid,q-data.memberid); printf(nsuccessed!n); getchar(); else printf(nnThe book have borrowed, please wait a few days.); getchar(); printf(n

14、nPress anykey retrun.); getchar();/*还书*/void returnbook(linknode head) char id5; linknode p; system(cls); p=head-next; printf(return book.nn); printf(Please input book id:n); cinid; while(p!=NULL) if(strcmp(p-data.bookid,id)=0) break;/strcmp为库文件,返回值为0时,两数相等 else p=p-next; if(p=NULL) cout你想还的书不存在!dat

15、a.bookmark,N);strcpy(p-data.memberid,0); coutsuccessed!endl; coutPress anykey retrun.next; system(cls); printf(The member infomations are.nn); printf(%-7s%sn,id,name); printf(*nn); for(;mp!=NULL;mp=mp-next)printf(%-7s%sn,mp-data.memberid,mp-data.membername); printf(nPress anykey retrun.); getchar();

16、 getchar();/*增加会员模块*/void addmember(mlinknode mhead) mlinknode p;p=(mlinknode)malloc(sizeof(mlnode); system(cls); printf(Add member.n); printf(please input memberinfo:nn); printf(%-7s%sn,id(3),name); printf(*n); cinp-data.memberidp-data.membername; p-next=mhead-next; mhead-next=p; printf(nnAdd succe

17、ss!); printf(nPress anykey retrun.); getchar(); getchar();/*按编号查询会员*/void selectmember(mlinknode mhead)char id4; mlinknode p; system(cls); printf(select member by id.nn); p=mhead-next; printf(Please input member id:n); scanf(%s,id); while(p!=NULL)if(strcmp(p-data.memberid,id)=0) break;else p=p-next;

18、 if(p=NULL) printf(nThe member not exit!n);elseprintf(n%- printf(*nn); printf(%-7s%sn,p-data.memberid,p-data.membername);printf(nnPress anykey retrun.); getchar(); getchar();/*按编号删除会员*/void deletemember(mlinknode mhead)char id4; mlinknode p,q; system(cls); printf(delete member.nn); p=mhead-next;q=mh

19、ead; printf(Please input member id:n); scanf(%s,id); while(p!=NULL)if(strcmp(p-data.memberid,id)=0) break; elseq=p;p=p-next;if(p=NULL) printf(nThe member you want to delete are not exit!n); elseq-next=p-next; free(p); printf(nDelete success!n);printf(nPress anykey retrun.); getchar(); getchar();/*查询

20、会员借书信息*/void selectmemberborrow(linknode head,mlinknode mhead)char id4; mlinknode p;linknode q; system(cls); printf(select member by id.nn); p=mhead-next;q=head-next; printf(Please input member id:n); cinid; while(p!=NULL)if(strcmp(p-data.memberid,id)=0) break;else p=p-next; if(p=NULL) printf(nThe m

21、ember not exit!n);elsewhile(q)if(strcmp(q-data.memberid,id)=0) break;else q=q-next;if(q=NULL)printf(nThe member not borrow book!n);elsecoutbookidtbooknametmemberendl; printf(*nn); coutdata.bookidtdata.booknametdata.membernamech; if(ch=0) break; switch(ch) case 1: printbookinfo(head);break; case 2: a

22、ddbook(head);break; case 3: select(head);break; case 4: deletebook(head);break; case 5: borrow(head,mhead);break; case 6: returnbook(head);break; case 0:break; default: printf(nnYou hava input the wrong order!n); printf(Press anykey return.);getchar();getchar(); /*二级会员管理目录*/void membermanagetitle()

23、system(cls); printf( MEMBER MANAGE MENU n); printf(*n); printf(* 1: Look all memberinfo 查看所有会员 *n); printf(*-*n); printf(* 2: Add member 增加会员 *n); printf(*-*n); printf(* 3: Select member by id 查询会员 *n); printf(*-*n); printf(* 4: Delete member by id 删除会员 *n); printf(*-*n); printf(* 5: select member b

24、orrow借书信息 *n); printf(*-*n); printf(* 0: Return to main form 返回主菜单 *n); printf(*n); printf(nPlease input order:n);/*二级会员管理函数*/void membermanage(linknode head,mlinknode mhead) int ch; while(1) membermanagetitle(); cinch; if(ch=0) break; switch(ch) case 1: printmemberinfo(mhead); break; case 2: addmem

25、ber(mhead); break; case 3: selectmember(mhead); break; case 4: deletemember(mhead); break; case 5: selectmemberborrow(head,mhead); break; case 0: break; default: printf(nYou hava input the wrong order!n); printf(Press anykey return.);getchar();getchar(); /*系统总菜单*/void welform() system(cls); system(c

26、olor fd); coutnttt 欢 ; cout 迎 ; cout 进 ; cout 入 ; coutendl; system(DATE/T); system(TIME/T); coutt n; coutt n; coutt 图 书 借 阅 管 理 系 统 n; coutt n; coutt n; cout(tt* 1: book manage 图书管理 *n); cout(tt*-*n); cout(tt* 2: member manage 会员管理 *n); cout(tt*-*n); cout(tt* 0: quit 退出 *n); cout(tt*n); coutch; switch(ch)case 1:bookmanage(head,mhead); /*二级图书管理功能选择函数*/ break; case 2: membermanage(head,mhead); /*二级会员管理功能选择函数*/ break; case 0: exit(0); /*退出系统*/ default: printf(nYou hava input the wrong order!n); printf(Press anykey return.)

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 建筑施工 > 建筑节能

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922