数据结构课程设计报告-图书管理系统Word版_第1页
数据结构课程设计报告-图书管理系统Word版_第2页
数据结构课程设计报告-图书管理系统Word版_第3页
数据结构课程设计报告-图书管理系统Word版_第4页
数据结构课程设计报告-图书管理系统Word版_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

整理为word格式整理为word格式整理为word格式课程设计报告课设课题:课程设计——图书管理系统学院:电子信息学院专业:网络工程姓名:班级学号:BX1213指导教师:张艳报告日期:2013.12.12整理为word格式整理为word格式整理为word格式目录一、需求分析 11.1系统开发背景和意义 11.2设计题目与要求 1二、总体结构设计 2三、各子模块设计 33.1初始化图书信息 33.2系统主界面 33.3采编入库 43.4输入读者信息 43.5借阅图书 43.6归还图书 63.7查询图书信息 73.8查询读者信息 7四、程序设计调试情况分析 9五、测试结果 125.1欢迎界面 125.2初始化图书信息 125.3系统主界面 135.4采编入库 135.5输入读者信息 145.6借阅图书 155.7归还图书 165.8查询图书信息 165.9查询读者信息 175.10保存文件,退出 18六、总结 19七、参考文献 20八、附录(源代码) 21整理为word格式整理为word格式整理为word格式一、需求分析1.1系统开发背景和意义图书管理作为计算机应用的一个分支,有着手工管理无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书管理的效率。因此,开发一套能够为用户提供充足的信息和快捷的查询手段的图书管理系统,将是非常必要的,也是十分及时的。图书管理系统需要满足来自图书馆工作人员、普通用户和借阅者三方面人员的需求。图书馆工作人员对图书借阅者的借阅及还书要求进行操作,同时还可通过图书编号等查询相应的借阅情况;普通用户的需求是查询图书馆所存的图书的相关情况;图书借阅者的需求是查看自己的相关信息及查询自己的借阅情况。1.2设计题目与要求【问题描述】设计一个计算机管理系统完成图书管理基本业务。【基本要求】1) 每种书的登记内容包括书号、书名、著作者、现存量和库存量;2) 对书号建立索引表(线性表)以提高查找效率;3) 系统主要功能如下:*采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;*借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;*归还:注销对借阅者的登记,改变该书的现存量。整理为word格式整理为word格式整理为word格式二、总体结构设计有八个模块1) 图书初始化输入图书的一些信息,编号、作者、书名、数量,使有一定的库存。2) 新书入库新书采编入库,输入编号后如果有次数只需输入数量,没有则继续输入书名、作者、数量。3) 添加读者信息读者信息初始化,输入读书证号和姓名,只有输入书证号和姓名才能进行借书还书4) 借书模块读者输入读书证号,证号存在输入要借的图书编号,不能借同一本书,如果借书数量以达到最大也不能借书。5) 还书模块归还已借的图书,要先输入读者书证号,书证号存在继续输入要还的图书编号,图书编号存在并且借来此书,归还成功。6) 查询图书信息7) 查询读者信息可查询读者姓名书证号,借了几本书,都是什么书和还书日期,还可以借几本书。8) 退出退出读书管理系统并保存读者和图书信息。图书管理系统图书管理系统查询操作模块读者管理模块借阅操作模块图书管理模块查询操作模块读者管理模块借阅操作模块图书管理模块理退出退出图书信息查询读者信息查询还书系统借书系统输入读者信息采编入库初始化图书信息图书信息查询读者信息查询还书系统借书系统输入读者信息采编入库初始化图书信息整理为word格式整理为word格式整理为word格式图2-1主控模块三、各子模块设计3.1初始化图书信息进入系统后首先进行图书初始化,输入图书的信息。开始开始输入图书编号、名称、作者和图书数量输入图书编号、名称、作者和图书数量进入系统进入系统图3-1初始化图书信息流程图3.2系统主界面初始化之后,进入系统,显示功能列表,可选择任意系统,但在借书之前先要输入读者信息。开始开始输入功能所对应的数字输入功能所对应的数字输入的数字小于0大于6输入的数字小于0大于6否错误!请重新输入是错误!请重新输入执行所选功能执行所选功能整理为word格式整理为word格式整理为word格式图3-2系统主界面流程图3.3采编入库选择采编入库的功能后,先输入图书编号判断是否存在,若存在,则在原有记录上加上添加的图书数量;若不存在,则加入新的记录。录入图书信息录入图书信息判断是否有此图书判断是否有此图书 是在原有的纪录上加上现有的图书数量 否在原有的纪录上加上现有的图书数量向系统中加入新纪录向系统中加入新纪录图3-3采编入库流程图3.4输入读者信息选择读者登记后,输入读者编号跟姓名。开始开始输入读者信息:读者书证号、姓名输入读者信息:读者书证号、姓名结束结束图3-4输入读者信息流程图整理为word格式整理为word格式整理为word格式3.5借阅图书选择借阅图书功能后,输入读者证号,判断该读者是否存在,若存在则输入借阅图书的编号,判断该图书编号是否存在,若存在,则判断读者借阅的图书数量是否满了和是否借阅了相同的书籍,判断成功后,则输入归还该图书的日期,该图书现有量减一,借阅成功;若读者不存在则返回。输入读者书证号输入读者书证号判断读者是否存在判断读者是否存在 否输出次读者编号不存在!按任意键返回 输出次读者编号不存在!按任意键返回 是输入要借的图书编号输入要借的图书编号判断图书编号是否存在判断图书编号是否存在 否输出此图书编号不存在!按任意键返回输出此图书编号不存在!按任意键返回 是看是否还有此图书看是否还有此图书 否输出此书已借完,按任意键返回 是输出此书已借完,按任意键返回看读者的借书数目是否满了看读者的借书数目是否满了 是整理为word格式整理为word格式整理为word格式输出借书数目已满不能借书,按任意键返回 否输出借书数目已满不能借书,按任意键返回看读者是否借了相同的书看读者是否借了相同的书 是输出同一读者不能借相同的两本书 否输出同一读者不能借相同的两本书输入归还图书的日期输入归还图书的日期图书现有数量减1图书现有数量减1输出读者结束成功,按任意键返回输出读者结束成功,按任意键返回结束结束图3-5借阅图书流程图3.6归还图书实现归还图书功能时,首先输入读者编号,并判断是否存在,若不存在就按任意键返回,;若存在输入归还的图书编号并判断是否存在,若归还图书编号不存在,则返回。存在后,将读者借阅该图书的信息清空,该图书的现有量加一。最后按任意键返回输入要还书的读者编号输入要还书的读者编号判断读者编号是否存在 判断读者编号是否存在 否整理为word格式整理为word格式整理为word格式输出读者编号不存在按任意键返回输出读者编号不存在按任意键返回是输入读者还书编号输入读者还书编号判断图书编号是否存在 判断图书编号是否存在否输出此图书编号不存在按任意键返回输出此图书编号不存在按任意键返回是此图书编号和还书日期等于0此图书编号和还书日期等于0现有图书数量加1现有图书数量加1输出读者还书完毕,按任意键返回输出读者还书完毕,按任意键返回结束结束图3-6归还图书流程图3.7查询图书信息查询图书信息时,输入图书的编号,判断是否存在。不存在则返回;存在则输出图书的编号,书名,作者,现有量,跟库存量。判断图书信息是否为空判断图书信息是否为空整理为word格式整理为word格式整理为word格式 是输出此图书编号不存在按任意键返回输出此图书编号不存在按任意键返回否输出图书信息:编号、名称、作者、现有和库存输出图书信息:编号、名称、作者、现有和库存结束结束图3-7查询图书信息流程图3.8查询读者信息查询读者信息时,首先判断读者的编号是否存在,不存在就按任意键返回。若存在,则输出读者的证号,姓名,和借阅的图书编码及其还书日期。判断读者信息是否为空判断读者信息是否为空是输出此读者编号不存在按任意键返回否输出此读者编号不存在按任意键返回输出读者书证号、姓名、图书编码和还书日期输出读者书证号、姓名、图书编码和还书日期输出读者信息打印完毕输出读者信息打印完毕结束结束图3-8查询读者信息流程图整理为word格式整理为word格式整理为word格式四、程序设计调试情况分析在整个课程设计中,我们遇到了许多的问题。有些问题吧,我们在苦思冥想的时候,突然我们的编译器显示出了正确的结果,当我们欣喜若狂的在运行下一次的时候又会出现相同的问题,在借阅的过程中,在一个读者借阅了两本书以上的时候,上一本书的归还日期上还有下一本书上的编号,最后一本书输出的才是正确的结果。下图是借阅了两本书的截图:图4-1看到这里我们也知道是第一本书的还书日期的地址空间跟第二本书的编号连接在了一起导致输出的时候一直到第二本书编号的的字符串后面的‘/0’结束。最后发现是我们在定义还书日期这个字符串的时候开辟的空间太小。我们把 charlimit_date[8];改为charlimit_date[10]就好了。整理为word格式整理为word格式整理为word格式图4-2 整理为word格式整理为word格式整理为word格式五、测试结果5.1欢迎界面程序运行显示“欢迎使用图书管理系统”,按任意键进入到主菜单如图5-1所示。图5-1欢迎界面5.2初始化图书信息在没有文件的时候会进入到初始化界面,需要输入一本图书的相关信息,如图5-2所示。图5-2初始化图书信息5.3系统主界面接着进入的系统的主菜单,如图5-3所示。整理为word格式整理为word格式整理为word格式图5-3系统主界面5.4采编入库实现采编入库功能按照系统提示输入信息。如图5-4。如果该图书已存在,则直接输入图书的数量如图5-5所示。图5-4采编入库(书不存在)整理为word格式整理为word格式整理为word格式图5-5采编入库(书已存在)5.5输入读者信息按照要求输入读者信息,如图5-6所示。图5-6输入读者信息整理为word格式整理为word格式整理为word格式5.6借阅图书按照要求先输入读者证号,在输入借阅的图书编号如图5-7所示。如果读者已经借阅了一本书之后不能借阅同一本图书如图5-8所示。图5-7借阅图书图5-8同一个读者不能借阅同一本图书整理为word格式整理为word格式整理为word格式5.7归还图书归还图书的要求按着图5-9输入即可。图5-9归还图书5.8查询图书信息图5-10是没有借阅之前的图书的相关信息,图5-11是读者借阅了图书之后的信息,只改变了现有量。整理为word格式整理为word格式整理为word格式图5-10借阅登记后图5-11归还图书后5.9查询读者信息查询读者的信息时,会输出相关借阅的图书编号以及还书日期如图5-12,5-13所示。整理为word格式整理为word格式整理为word格式图5-12查询读者信息(一)整理为word格式整理为word格式整理为word格式图5-13查询读者信息(二)5.10保存文件,退出在系统的主菜单后,按‘0’功能保存并退出系统。图5-14文件保存整理为word格式整理为word格式整理为word格式六、总结个人觉得课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.在生活中可以说得是无处不在。因此作为新世纪的大学来说能够分析,并解决程序中出现的问题是十分重要的。课程设计就能体现到这一方面。能够将你所学到的理论跟实际结合在一起。通过本次课程设计感慨良多。从课堂上听到的到课后应用到的根本就不是一回事。课堂上,老师在上面说,自己在下面听,到也能听懂。可是到了应用上,自己倒也是知道要用到哪方面的内容,但是偏偏不知道从何处下手;好不容易写好的一小段代码,还要跟其他功能不相冲突,这又需要我们自己去想办法去兼容好他们。通过本次课程设计试我懂得理论要跟实践相结合。正所谓“台上十分钟,台下十年功”,别人在台上表演了十分钟,你觉得很容易,可那里知道别人在下面做的努力呢。同样的,我们在课堂上听老师讲确实觉得是那么回事,但是真正做下去,也只有自己知道是何种滋味。理论始终是理论,不能都熟练应用自己所学到的知识,到头来也是一场空。在这次的课程设计过程中,我们也遇到了不能解决的难题,比如说在读者查询的时候,第二个读者始终会覆盖第一个读者的数据。我们始终没有搞明白问题的所在,只知道不是在输出读者信息的问题,应该是添加读者过程中指针始终指在第一个地址,没有移动。我们按照查询图书的函数重新编写了一次还是同样问题。一直到答辩前一天晚上还没有解决,之后只能放弃。还有在最开始的时候我们的程序功能并没有清屏功能,整个界面看起来并不是那么整洁。于是我用用getch();system(“cls”);来进行清屏,最后会出先一个小问题,在我们查询了一些资料后,又再次基础上加上了gotoend;这个函数来加以完善。这次课程设计,我们也遇到了很多问题,比如说,我们再输入第二个读者的信息后会覆盖第一个读者的信息,想了半天没有弄懂是哪里错了,最后才看出来我们定义的结构体指针没有移动,导致我们输入的读者信息一直存放在同一个地址中。也有些不懂需要在网上查询的代码,组员之间相互配合,不懂就询问其他同学或者查询资料亦或者自己去弄懂问题的根结,团结协作的精神在这次课程设计中表现的淋漓尽致。我们不仅将以前的知识复习一遍;同时也弄懂了一些平常自己似懂非懂的;最后同学之间的友谊也慢慢变的深厚起来小组分工:孙泽铭:采编入库、查询图书信息、查询读者信息整理为word格式整理为word格式整理为word格式黄响:添加读者、借阅图书、归还图书七、参考文献严蔚敏吴伟民编著《数据结构》清华大学出版社,2000黄国瑜叶乃菁编著《数据结构》清华大学出版社,2001胡学钢编著《数据结构算法设计指导》清华大学出版社,1999王士元编著《数据结构与数据库系统》南开大学出版社,2000李强根主编《数据结构(C++描述)》中国水利水电出版社,2001杨正宏编著《数据结构》中国铁道出版社,2002胡学钢编著《数据结构算法设计指导》清华大学出版社,1999殷人昆徐孝凯编著《数据结构习题解析》清华大学出版社,2002李春葆编著《数据结构习题与解析》清华大学出版社,2001[10]咨讯教育小组编著《数据结构数据结构版》中国铁道出版社,2002整理为word格式整理为word格式整理为word格式八、附录(源代码)#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#defineMax4typedefstructbook{ charbook_num[10]; charbook_name[20]; charbook_writer[10]; intbook_xy; intbook_kc; intn; structbook*next;}BK;typedefstructborrow{ charborrow_book_num[10]; charlimit_date[10]; }BO; typedefstructreader{ charreader_num[10]; charreader_name[10];整理为word格式整理为word格式整理为word格式 intright; intm; BOborrow[Max]; structreader*next;}RD;BK*h_book;RD*h_reader;intn=0;intm=0;voidLogin();intMenu();voidInit();voidMenu_select();voidInsert_New_Book();voidadd_reader();voidPrint_reader();voidPrint_book();voidBorrow_Book();voidReturn_Book();voidSave();voidSave_Book();voidSave_Reader();voidLoad();voidLoad_Reader();voidLoad_Book();voidLogin(){ system("cls"); printf("\n\n\n\t\t***************************************\n"); printf("\n\n\n\t\t**欢迎使用图书管理系统**\n"); printf("\n\n\n\t\t***************************************\n"); printf("\n\n\n\t\t按任意键进入系统...");整理为word格式整理为word格式整理为word格式 getch(); system("cls");}intMenu()/*主菜单*/{ intdm; printf("\n\t\t图书管理系统主菜单\n"); printf("=================================================\n"); printf("*\t1采编入库\n"); printf("*\t2登记读者\n"); printf("*\t3借阅登记\n"); printf("*\t4还书管理\n"); printf("*\t5查询图书信息\n"); printf("*\t6查询读者信息\n"); printf("*\t0退出系统\n"); printf("=================================================\n"); printf("请选择相应的代码:"); for(;;) { scanf("%d",&dm);//dm输入的数字 if(dm<0||dm>6) printf("\n错误!请重新输入:"); else break; } returndm;}voidMenu_select()/*主菜单选择函数*/{ for(;;)整理为word格式整理为word格式整理为word格式 { switch(Menu())/*功能选择*/ { case0: system("cls"); Save(); printf("\n\n\t文件保存成功!\n"); printf("\n\n\t欢迎下次使用本系统!\n"); getch(); exit(0); case1:Insert_New_Book();break; case2:add_reader();break; case3:Borrow_Book();break; case4:Return_Book();break; case5:Print_book();break; case6:Print_reader();break; default:printf("\n错误!"); exit(0); } }}voidInit()/*初始化*/{ BK*p0; printf("\n图书初始化开始,请输入图书信息..\n包括编号.书名.数量..\n"); p0=(BK*)malloc(sizeof(BK)); h_book=p0; printf("\n请输入图书信息:\n"); printf("图书编号:");/*输入图书编号(唯一)*/ scanf("%s",p0->book_num); printf("图书名称:");/*输入图书名称*/ scanf("%s",p0->book_name);整理为word格式整理为word格式整理为word格式 printf("图书作者:");/*输入图书作者*/ scanf("%s",p0->book_writer); printf("图书数量:");/*输入图书数量*/ scanf("%d",&p0->book_kc); p0->book_xy=p0->book_kc;/*开始时图书现有量和库存量相等*/ p0->next=NULL; p0->n=++n; printf("\n图书信息初始化完毕!按任意键继续下一步操作..\n"); getch(); system("cls");}voidInsert_New_Book()/*新书入库*/{ BK*p,*p0,*p1; p=p1=h_book; printf("\n新书入库模块...\n"); printf("\n请输入新书信息..\n包括书号.书名.数量..\n"); p0=(BK*)malloc(sizeof(BK)); printf("图书编号:"); scanf("%s",p0->book_num); while(strcmp(p0->book_num,p1->book_num)!=0&&p1->next!=NULL) p1=p1->next; if(strcmp(p0->book_num,p1->book_num)==0)/*此处分两种情况,若图书编号存在,则直接进库,只须输入书的数量*/ { printf("\n此编号图书已存在!!直接入库!\n"); printf("图书数量:"); scanf("%d",&p0->book_kc); 整理为word格式整理为word格式整理为word格式 p1->book_kc+=p0->book_kc; p1->book_xy+=p0->book_kc; } else/*若不存在,则需要输入其他的信息,然后在进行插入操作*/ { printf("图书名称:"); scanf("%s",p0->book_name); printf("图书作者:"); scanf("%s",p0->book_writer); printf("图书数量:"); scanf("%d",&p0->book_kc);//库存数量 while(p->next) p=p->next; if(h_book==NULL) h_book=p0;/*此处分两种情况,链表中没有数据,head直接指向p0处*/ else p->next=p0;/*此处分两种情况,链表中有数据,链表中最后元素的next指向p0处*/ p0->next=NULL; p0->book_xy=p0->book_kc; p0->n=++n; } printf("\n新书入库完毕!按任意键继续下一步操作..\n"); getch(); system("cls");}voidadd_reader()/*添加读者*/{整理为word格式整理为word格式整理为word格式 RD*p0;inti;printf("\n读者初始化开始,请输入读者信息..\n包括书证号.姓名..\n"); p0=(RD*)malloc(sizeof(RD));/*申请新结点存储空间*/ h_reader=p0; printf("\n请输入读者的信息:\n");printf("读者书证号:");scanf("%s",p0->reader_num);printf("读者姓名:"); scanf("%s",p0->reader_name);p0->right=0;for(i=0;i<Max;i++){ strcpy(p0->borrow[i].borrow_book_num,"0");/*所借图书直接置为(即没有借书)*/ strcpy(p0->borrow[i].limit_date,"0"); } p0->next=NULL; p0->m=++m; printf("\n读者信息初始化完毕!按任意键继续下一步操作..\n"); getch(); system("cls");}voidBorrow_Book()/*借书模块*/{ BK*p0;RD*p1; charbo_num[10],rea_num[10],lim_date[8]; inti; p0=h_book;p1=h_reader; 整理为word格式整理为word格式整理为word格式 printf("\n借书模块...\n"); printf("\n请输入借书的读者书证号:"); scanf("%s",rea_num); while(p1->next!=NULL&&strcmp(rea_num,p1->reader_num)!=0) p1=p1->next; if(p1->next==NULL&&strcmp(rea_num,p1->reader_num)!=0) { printf("\n此读者编号不存在!按任意键返回..\n"); gotoEND; } printf("\n请输入你要借的书的编号:"); scanf("%s",bo_num); while(strcmp(bo_num,p0->book_num)!=0&&p0->next!=NULL) p0=p0->next; if(p0->next==NULL&&strcmp(bo_num,p0->book_num)!=0) { printf("\n此图书编号不存在!按任意键返回..\n"); gotoEND; } elseif(p0->book_xy<=0) { printf("\n抱歉,此书已借完!请等待新书的到来!!\n按任意键返回"); gotoEND; } elseif(p1->right>Max||p1->right==Max) { printf("\n不好意思,借书数目已满!不能借书!\n按任意键返回"); gotoEND; }整理为word格式整理为word格式整理为word格式 elseif(strcmp(p1->borrow[0].borrow_book_num,"0")!=0) { for(i=0;i<Max;i++) { if(strcmp(p1->borrow[i].borrow_book_num,bo_num)==0) { printf("\n抱歉!同一个读者不能同借两本相同的书!\n按任意键返回"); gotoEND; } elseif(strcmp(p1->borrow[i].borrow_book_num,"0")==0) { printf("\n请输入你要归还图书的日期:"); scanf("%s",lim_date); strcpy(p1->borrow[p1->right++].borrow_book_num,bo_num); strcpy(p1->borrow[p1->right-1].limit_date,lim_date); p0->book_xy--; printf("\n读者编号%s借书完毕!按任意键继续下步操作..",p1->reader_num); gotoEND; } } } else { printf("\n请输入你要归还图书的日期:"); scanf("%s",lim_date);整理为word格式整理为word格式整理为word格式 strcpy(p1->borrow[p1->right++].borrow_book_num,bo_num); strcpy(p1->borrow[p1->right-1].limit_date,lim_date); p0->book_xy--; p0->book_kc--; printf("\n读者编号%s借书完毕!按任意键继续下步操作..",p1->reader_num); gotoEND; } END:getch();system("cls");}voidReturn_Book()/*还书模块*/{ BK*p;RD*q; inti,j,find=0; charreturn_book_num[10],return_reader_num[10]; p=h_book;q=h_reader; printf("\n还书模块...\n"); printf("\n请输入要还书的读者编号:"); scanf("%s",return_reader_num); while(q->next!=NULL&&strcmp(return_reader_num,q->reader_num)!=0) q=q->next; if(q->next==NULL&&strcmp(return_reader_num,q->reader_num)!=0) { find=2; printf("\n此读者编号不存在!按任意键返回..\n"); gotoend; }整理为word格式整理为word格式整理为word格式 printf("\n请输入读者还书的编号:"); scanf("%s",return_book_num); while(p->next!=NULL&&strcmp(return_book_num,p->book_num)!=0) p=p->next; if(p->next==NULL&&strcmp(return_book_num,p->book_num)!=0) { find=2; printf("\n错误!此图书编号不存在!按任意键返回..\n"); gotoend; } for(i=0;i<Max;i++) if(strcmp(return_book_num,q->borrow[i].borrow_book_num)==0)/*如果此读者借了此书*/ { find=1; for(j=i;j<Max-1;j++) { strcpy(q->borrow[j].borrow_book_num,q->borrow[j+1].borrow_book_num); strcpy(q->borrow[j].limit_date,q->borrow[j+1].limit_date); } strcpy(q->borrow[Max-1].borrow_book_num,"0"); strcpy(q->borrow[Max-1].limit_date,"0"); p->book_xy++; q->right--; printf("\n编号%s的读者还书完毕!按任意键继续下步操作..",return_reader_num); 整理为word格式整理为word格式整理为word格式 gotoend; } if(find==0) printf("\n错误!此读者未借此书!按任意键返回..\n"); end:getch();system("cls");}voidPrint_book()/*查询图书信息*/{ BK*p; inti; chare[10]; p=h_book; printf("输入查询的图书编号:"); scanf("%s",e); for(i=0;i<n;i++) { if(strcmp(p->book_num,e)==0) { printf("\n图书信息如下:\n\n"); printf("图书编号\t图书名称\t图书作者\t现有\t库存\n"); printf("%s\t\t%s\t\t%s\t\t%d\t%d\n",p->book_num,p->book_name,p->book_writer,p->book_xy,p->book_kc); break; } else p=p->next; } printf("\n图书信息打印完毕!按任意键继续下一步操作.."); 整理为word格式整理为word格式整理为word格式 getch(); system("cls");}voidPrint_reader()/*查询读者信息*/{ RD*p; inti,j; chare[10]; p=h_reader; printf("输入查询的读者编号:"); scanf("%s",e); for(j=0;j<m;j++) { if(strcmp(p->reader_num,e)==0) { printf("\n读者信息如下:\n\n"); printf("读者书证号\t读者姓名\n"); printf("%s\t\t%s",p->reader_num,p->reader_name); for(i=0;i<Max;i++) { printf("\n"); printf("图书编号",i+1); printf("\t还书日期",i+1); printf("\n"); printf("\t%s",p->borrow[i].borrow_book_num); printf("\t\t%s",p->borrow[i].limit_date); } printf("\n"); break; } 整理为word格式整理为word格式整理为word格式 else p=p->next; } printf("\n读者信息打印完毕!按任意键继续下一步操作.."); getch(); system("cls");}voidSave()/*保存信息*/{ Save_Reader(); Save_Book();}voidSave_Reader()/*保存读者信息*/{ FILE*fp_reader; RD*p,*p0; p=

温馨提示

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

评论

0/150

提交评论