图书借阅管理系统146318237_第1页
图书借阅管理系统146318237_第2页
图书借阅管理系统146318237_第3页
图书借阅管理系统146318237_第4页
图书借阅管理系统146318237_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 设计目的数据结构课程主要介绍最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论。进行数据结构课程设计要达到以下目的:n 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;n 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;n 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。2. 设计内容和要求主要分为两大功能:(1) 图书管理(增加图书、查询图书、删

2、除图书、图书借阅、还书); (2) 会员管理(增加会员、查询会员、删除会员、借书信息)。设计要求:(1) 符合课题要求,实现相应功能;(2) 要求界面友好美观,操作方便易行;(3) 注意程序的实用性、安全性;3本设计所采用的数据结构采用两条单链表,其头结点分别为head、mhead的全局变量来存储图书信息和会员信息。其定义数据结构如下:/*图书信息结构体*/typedef struct elemchar bookid5;char bookname50;char bookauthor20;char bookmark2;char memberid4;elemtype;/*图书链表结点结构体*/ty

3、pedef struct nodeelemtype data;struct node *next;lnode,*linknode;/*会员信息结构体*/typedef struct memberelemchar memberid4;char membername20;memberelemtype;/*会员链表结点结构体*/typedef struct membernodememberelemtype data;struct membernode *next;mlnode,*mlinknode;4功能模块详细设计图书借阅管理系统图书管理模块会员管理模块增加图书查询图书删除图书图书借阅还书增加会员

4、查询会员借书信息删除会员4.1 详细设计思想系统启动时,通过读取文件完成对以head、mhead为表头的单链表完成初始化。初始化后系统进入系统菜单,其运行界面如下:当选择功能1时,进入图书管理模块,其运行界面如下:当选择功能2时,进入会员管理模块,其运行界面如下:在图书管理界面中,当选择功能1时,查看所有图书,其运行界面如图:在会员管理界面中,当选择功能1时,查看所有会员,其运行界面如图:4.2各个实现函数为了实现上述功能,特定义以下函数原型,具体代码参见源代码部分:void main() /*入口*/void initallinfo() /*初始化图书和会员链表*/void welform(

5、) /*系统总菜单*/void printbookinfo(linknode head) /*输出图书信息函数*/void addbook() /*增加图书模块*/void select() /*按编号查询图书*/void delete() /*按编号删除图书*/void borrow() /*借阅图书*/void returnbook() /*还书*/void bookmanagetitle() /*图书管理二级菜单*/void bookmanage() /*二级图书管理功能选择函数*/void printmemberinfo(mlinknode head) /*输出会员信息函数*/void

6、 addmember() /*增加会员模块*/void selectmember() /*按编号查询会员*/void deletemember() /*按编号删除会员*/void membermanagetitle() /*会员管理二级菜单*/void membermanage() /*二级会员管理功能选择函数*/4.4图书会员链表程序调试数据如表:图书初始数据表bookidbooknamebookauthorbookmarkmemberid0001sanguoyanyiluoguanzhongn00002hongloumengcaoxueqinn00003xiyoujiwuchengeny0

7、010004shuihuzhuanshinaiann00005javascriptjoinn00006cprogromtanghaoqiangn00007liaozhaizhiyipusonglingy0070008jiabajinn00009richucaoyuy0030010nahanluxunn0会员信息表memberidmembername001zhouxicai002longqidong003lipengfei004gaopeng005chenwentang006yangminghao4.5 核心代码#include#include#include#include#define nu

8、ll 0typedef struct elemchar bookid5;char bookname50;char bookauthor20;char bookmark2;char memberid5;elemtype;typedef struct nodeelemtype data;struct node *next;lnode,*linknode;typedef struct memberelemchar memberid5;char membername25;memberelemtype;typedef struct membernodememberelemtype data;struct

9、 membernode *next;mlnode,*mlinknode;linknode head;mlinknode mhead;file *bp,*bq;void initallinfo()file *bp,*bq;linknode p,q;mlinknode m,n;head=(lnode*)malloc(sizeof(lnode);head-next=null;mhead=(mlnode*)malloc(sizeof(mlnode);mhead-next=null;bp=fopen(book.txt,rb);printf(%s,feof(bp);bq=fopen(member.txt,

10、rb);printf(%s,feof(bp);if(bp=null)printf(can not open bookbat!);getchar();getchar();elsedop=(lnode*)malloc(sizeof(lnode);fread(p,sizeof(lnode),1,bp);q=p-next;p-next=head-next;head-next=p;while(q!=null); fclose(bp); if(bq=null)printf(can not open memberdat!);getchar();getchar();elsedom=(mlnode*)mallo

11、c(sizeof(mlnode);fread(m,sizeof(mlnode),1,bq);n=m-next;m-next=mhead-next;mhead-next=m;while(n!=null); fclose(bq);void mainmenu()system(cls);printf( system main menu n);printf(*n);printf(*1:book manage *n);printf(*-*n);printf(*2:member manage *n);printf(*-*n);printf(*0:quit *n);printf(*n);printf(nple

12、ase input order:n);void printbookinfo(linknode head)linknode p=head-next;system(cls);printf(the book informations are:n);printf(%-7s%-20s%-15s%-6s%sn,id,title,author,mark,borrower);printf(*n);for(;p!=null;p=p-next)printf(%-7s%-20s%-15s%-6s%sn,p-data.bookid,p-data.bookname,p-data.bookauthor,p-data.bo

13、okmark,p-data.memberid);printf(nplease anykey return.);getchar();getchar();void addbook()linknode p=(lnode*)malloc(sizeof(lnode);system(cls);printf(add books.n);printf(%-7s%-20s%-15s%n,id(5),title,author);printf(*n);scanf(%s%s%s,p-data.bookid,p-data.bookname,p-data.bookauthor);p-data.bookmark0=n;p-d

14、ata.bookmark1=0;p-data.memberid0=0;p-data.memberid1=0;p-next=head-next;head-next=p;printf(nadd success!n);printf(npress anykey return.);getchar();getchar();void select()char id5;linknode p;system(cls);p=head-next;printf(select book by id.n);printf(please input book id :n);scanf(%s,id);while(p!=null)

15、if(strcmp(p-data.bookid,id)=0)break;elsep=p-next;if(p=null)printf(nthe book not exit!n);elseprintf(n%-7s%-20s%-15s%-3s%sn,id,title,author,borrowed,borrower);printf(*n);printf(n%-7s%-20s%-15s%-3s%sn,p-data.bookid,p-data.bookname,p-data.bookauthor,p-data.bookmark,p-data.memberid);printf(nplease anykey

16、 return.);getchar();getchar();void deletebook()char id5;linknode p,q;system(cls);p=head-next;q=head;printf(delete book by id.n);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;if(p=null)printf(nthe book you want to delete are not exit!n)

17、;elseq-next=p-next;free(p);printf(ndelete success!n);printf(npress anykey return.);getchar();getchar();void borrow()char id5;char mid5;linknode p;mlinknode q;system(cls);printf(borrow book.n);dop=head-next;printf(please input book id:n);scanf(%s,id);while(p!=null)if(strcmp(p-data.bookid,id)=0)break;

18、elsep=p-next;if(p=null)printf(nthe book doesnt exit!please input it again!n);while(p!=null);if(p!=null)doq=mhead-next;printf(nplease input member id:n);scanf(%s,mid);while(q!=null)if(strcmp(q-data.memberid,mid)=0)break;elseq=q-next;if(q=null)printf(nyou are not member!input again!n);while(q=null);if

19、(q!=null&(strcmp(p-data.bookmark,y)!=0)strcpy(p-data.bookmark,y);strcpy(p-data.memberid,q-data.memberid);printf(nsuccessed!n);getchar();getchar();elseprintf(nthe book have borrowed,please wait afew days.);getchar();getchar();printf(npress anykey return.);getchar();getchar();void returnbook()char id5

20、;linknode p;system(cls);p=head-next;printf(return book.n);printf(please input book id:n);scanf(%s,id);while(p!=null)if(strcmp(p-data.bookid,id)=0)break;elsep=p-next;if(p=null)printf(nthe book you want to retrun are not exit!n);elsestrcpy(p-data.bookmark,n);strcpy(p-data.memberid,0);printf(nsuccessed

21、!n);printf(npress anykey return.);getchar();getchar();void bookmanagetitle()system(cls);printf( book manage menu n);printf(*n);printf(*1:look all books *n);printf(*-*n);printf(*2:add book *n);printf(*-*n);printf(*3:select book by id *n);printf(*-*n);printf(*4:delete book by id *n);printf(*-*n);print

22、f(*5:borrow book *n);printf(*-*n);printf(*6:return book *n);printf(*-*n);printf(*0:return to main form *n);printf(*n);printf(nplease input order:n);void bookmanage()int ch;while(1)bookmanagetitle();scanf(%d,&ch);if(ch=0)break;switch(ch)case 1:printbookinfo(head);break;case 2:addbook();break;case 3:s

23、elect();break;case 4:deletebook();break;case 5:borrow();break;case 6:returnbook();break;case 0:break; default:printf(ntou have input the wrong order!n); printf(press anykey return.);getchar();getchar();void printmemberinfo(mlinknode head)mlinknode mp=head-next;system(cls);printf(the member infomatio

24、ns are.n);printf(%-7s%sn,id,name);printf(*n);for(;mp!=null;mp=mp-next)printf(%-7s%sn,mp-data.memberid,mp-data.membername);printf(npress anykeykey return.);getchar();getchar();void addmember()mlinknode p=(mlnode*)malloc(sizeof(mlnode);system(cls);printf(add member.n);printf(%-7s%sn,id,name);printf(*n

25、);scanf(%s%s,p-data.memberid,p-data.membername);p-next=mhead-next;mhead-next=p;printf(nadd success!);printf(npress anykey return.);getchar();getchar();void selectmember()char id5;mlinknode p;system(cls);printf(select member by id.n);p=mhead-next;printf(please input member id:n);scanf(%s,id);while(p!

26、=null)if(strcmp(p-data.memberid,id)=0)break;elsep=p-next;if(p=null)printf(nthe member not exit!n);elseprintf(n%-7s%sn,id,name);printf(*n);printf(%-7s%sn,p-data.memberid,p-data.membername);printf(npress anykey return.);getchar();getchar();void deletemember()char id5;mlinknode p,q;system(cls);printf(d

27、elete member.n);p=mhead-next;q=mhead;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 return.);getchar();getchar();void membermanagetitle()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:dele

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论