c语言图书标准管理系统专业课程设计方案报告_第1页
c语言图书标准管理系统专业课程设计方案报告_第2页
c语言图书标准管理系统专业课程设计方案报告_第3页
c语言图书标准管理系统专业课程设计方案报告_第4页
c语言图书标准管理系统专业课程设计方案报告_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

沈航北方科技学院课程设计说明书课程名称c语言课程设计教学部机械工程系专业数控班级B042111学号B04211123学生姓名田文指导老师赵小磊_6月链表实现图书信息操作田文目录TOC\o"1-3"\u摘要 11绪论 12系统分析 12.1功效需求 12.2数据需求 22.3性能需求 23总体设计 23.1功效模块设计 23.2系统设计方案 64具体设计 74.1登录模块 74.2借书管理模块 84.3还书管理模块 95调试和测试 105.1调试 105.2测试 116结论 12结束语 12参考文件 12附录1-用户手册(另起一页) 13附录2-源程序(另起一页) 15摘要经过对程序设计题目标分析可知,整个程序设计实现大致分为五个模块,其中每一个模块对应一个函数,她们功效分别是:图书信息输入函数input(),借阅图书函数(borrow),增加删除图书函数(adddelet),图书查询函数(search),和归还图书信息函数(giveback)。在这些函数当中,这四个函数实现严格根据题目标要求。图书信息输入函数关键功效是从键盘输入图书信息并将其写入文件中,作为图书馆书库,方便对下面函数进行运行,此函数是基础.图书借阅函数关键借阅图书功效和录入学生应该还书时间;图书归还函数关键实现借阅图书后,归还图书功效,并把应该还书时间和实际还书时间进行比较过期时输出学生信息,也是该程序一个关键增加删除图书函数实现功效是实现对图书删除;图书查询函数许可根据图书编号,书名,作者,出版社进行查询,并将查询信息输出;退出函数该函数关键实现退出运行界面功效.除上面介绍功效之外,程序还含有退出功效,能够在程序一次运行当中循环实施全部功效,并依据需要终止程序实施。每一个图书统计全部包含:图书编号,名称,出版社,作者,现有数量和总量在程序当中,将图书统计类型定义为结构体类型,并把它写入d:\\liuyan.txt中,其它函数每次对图书统计访问,其数据起源全部是d:\\liuyan.txt文件,这么做不仅能够确保图书数据一致性,而且能够对图书数据进行永久保留,确保每次运行程序全部能够采取原来数据。1绪论整个程序设计实现大致分为五个模块,其中每一个模块对应一个函数,她们功效分别是:图书信息输入函数input(),借阅图书函数(borrow),增加删除图书函数(adddelet),图书查询函数(search),和归还图书信息函数(giveback)。在这些函数当中,这四个函数实现严格根据题目标要求。2系统分析2.1功效需求设计一个经过链表实现对图书信息进行管理程序,要求完成以下功效:建立一个链表,每个结点应包含以下信息:图书号、书名及出版社、价格、ISBN、作者、册数;将输入信息按图书号进行从小到大排序;实现查询功效——输入书名,查询输出相关信息;实现插入功效——输入图书信息并插入有序链表中;实现删除功效——输入书名或书号,可将其信息从链表中删除;统计链表中图书总价值,并在屏幕上输出;统计该链表中价值超出某一数目标图书总数,并在屏幕上输出。8.有界面友好易于使用菜单。2.2数据需求需要向系统输入图书号、书名及出版社、价格、ISBN、作者、册数2.3性能需求在运行本程序时只要根据正确操作方法不会出现无法运行情况,系统稳定性好,安全,可靠。3总体设计3.1功效模块设计依据分析整个系统关键划分为4个功效模块,分别实施要求中功效。该系统需要有添加,删除,查询,修改,累加,循环显示主菜单,保留信息功效,能将会员卡进行注销,利用显示函数将会员卡内全部信息显示。要求有循环显示菜单工能。功效模块图图1所表示。(1)输入读者输入相关读者信息至内存中;(2)输入书籍输入书籍号,对已存书籍信息进行查询;(3)书籍管理模块输入对应代码,对相关信息进行查询;(4)退出管理模块主菜单中输入0退出系统登录;图1图书管理系统步骤图图2管理员版图书管理系统步骤图图3图书查询主界面步骤图3.2系统设计方案设计一个总菜单,1登录信息,2查询管理,3书籍管理系统,4退出系统。基础功效实现全部将表现在这多个菜单选项中。structreader*next;}RD;BK*h_book;RD*h_reader;voidLogin();/*登陆*/intMenu();/*主菜单*/voidMenu_select();/*主菜单选择函数*/voidInit();/*初始化*/voidInit_reader();/*初始化读者*/voidInit_book();/*初始化图书*/voidInsert_New_Book();/*新书入库*/intFind();/*查找菜单*/voidFind_Select();/*查找菜单选择函数*/voidFind_Reader();/*查找读者信息*/voidFind_Book();/*查找图书信息*/voidPrint_reader();/*打印读者信息*/voidPrint_book();/*打印图书信息*/voidBorrow_Book();/*借书函数*/voidReturn_Book();/*还书函数*/voidSave();/*保留信息*/voidSave_Reader();/*保留读者信息*/voidSave_Book();/*保留图书信息*/voidLoad();/*加载信息*/voidLoad_Reader();/*加载读者信息*/voidLoad_Book();/*加载图书信息*/voidLogin()/*登陆*/{system("cls");printf("\n\n\n\t\t\t欢迎登陆本系统\n");printf("\n\n\t\t系统版权全部\n\n\n\n\n\n\n");printf("\n\n\n\t\t按任意键进入系统...");getchar();system("cls");}intMenu()/*主菜单*/{intsn;printf("\n\t\t图书管理系统主菜单\n");printf("=================================================\n");printf("*\t0退出系统*\n");printf("*\t1新书入库*\n");printf("*\t2查询*\n");printf("*\t3借书登记*\n");printf("*\t4还书管理*\n");printf("=================================================\n");printf("请选择对应代码:");4具体设计4.1登录模块图4:输入读者信息图5:输入书籍信息4.2借书管理模块主菜单中输入读者和书籍信息后,对已存书籍进行借阅,程序步骤图4所表示。图6借书模块步骤图4.3还书管理模块对于已还书籍进行管理,程序步骤图4所表示。图7还书模块步骤图5调试和测试5.1调试调试是软件开发过程中一个关键步骤,也是最复杂,对软件开发者者来说也是最艰巨任务。调试任务是立即更正测试过程中发觉软件错误。具体地说,调试过程由两个步骤组成,它从表示程序中存在错误某迹象开始,首先确定错误正确位置,也就是找出哪个模块或哪个语句引发错误。然后仔细研究推断代码以确定问题原因,并设法更正。调试过程关键是运行编制好程序,然后碰到错误后依据系统提醒,找到相关问题所在。本系统调试过程中碰到问题、原因和处理方法以下面介绍。程序只能在目前运行时才能实现自动生成书籍信息,而关闭系统再次打开添加新读者又从0开始和之前读者反复,造成借还信息程序管理混乱,无法正确运行。原因:在实施后系统没有统计目前读者信息,因为读者信息自动按1、2、3、4依次递增生成系统;应该统计最终所生成读者信息,在下次运行程序时系统会接着上次统计读者信息自动依次生成。运行完程序一次有错误提醒原因:上次运行程序后没相关闭操作界面当点击编译时会有一个错误提醒,处理方法:将上一次运行时操作界面关闭。(3)设计过程中想法和程序中不足总来说这个程序大致实现了题目标要求,不过这套程序仍然存在着很多问题和不足。比如,程序中主函数写有点繁琐,有太多嵌套,不是那么井然有序,条理清楚,程序注释也不是很完善,对信息处理功效还有些不足之处,提醒信息不明确。还有就是没能做到模糊查询。这个系统关键是参考书本手机通讯录模版编写,同时也得到了老师和同学部分帮助。我在做系统过程中也碰到了很多问题,有是知识不足,有是考虑不够周全。事实证实,只靠自己知识面还是很窄,独立处理问题能力不是很强,以后还要加强对c语言学习。我认为对于C语言编写程序来说,使用方法大致全部是一样,所以假如要改善话,就是要改善部分算法,尽可能把界面编写清楚,提醒信息全方面,方便易用。5.2测试软件测试是软件生存期中一个关键阶段,是软件质量确保关键步骤从用户角度来看,普遍期望经过软件测试暴露软件中隐藏错误和缺点,所以软件测试应该是“为了发觉错误而实施程序过程”。或说,软件测试应该依据软件开发各阶段规格说明和程序内部结构而精心设计一批测试用例(即输入数据及其预期输出结果),并利用这些测试用例去运行程序,以发觉程序错误或缺点。过分测试则会浪费很多宝贵资源。到测试后期,即使找到了错误,然而付出了过高代价。测试数据过程以下。(1)登陆功效测试输入数据1:读者编号:23,读者姓名:tianwen,书籍编号:01,书名:xyz作者:xxx,数量:10预期结果:数据输入到系统中;运行结果:出现图书管理系统主菜单说明:登陆功效实现(2)借书功效测试。。。(3)还书功效测试。。。6结论计算机综合训练顺利完成,任务书中所提出要求全部实现,能够对会员信息进行添加、修改、删除和按多种信息查找,可将会员此次消费金额累加到会员卡上,能够自动生成会员卡号而且将多种信息保留到文本文件中。不过这个程序还有些不够完善,比如:在添加新会员时当会员信息全部输入以后系统中全部会员信息自动显示,这么很占用操作界面,使操作不是十分清楚;再一个就是系统无法正确识别身份证号和电话好码只能靠会员卡管理员认真细心才能降低犯错,改善方法:调用一个能够判定号码位数函数,假如输入位数不正当则提出警告重新输入。结束语在这一个星期实践中,经过编写这个图书管理系统,我体会到了c语言学习实用性。将理论和实践结合在一起,用优异计算机工具方便大家生活。C语言程序编写首先要从大局考虑,把自己编写整个程序思想全部写在初稿上,这么有利于自己编写程序,在编写时要完善注释,方便其它人了解程序。编写程序从理论上来说并没有错,但一上机就问题不停。甚至有些书本上知识照搬不变,也不能得到正确结果。有时一个程序改了一遍又一遍,但就是不能成功,编程显得枯燥乏味,看似简单程序题,在调试时却频频犯错。经反复修改后,结果正确了,这时全部乏味全部显得那么无力,一切全部是值得。我认为,开发一套系统,最关键是细心,而且思索要全方面,结合实际,充足考虑到用户需求和现实意义。不管什么系统,只用利用到实际应用中,才含有现实意义。所以c语言程序实用性很强,我们以后还要愈加努力认真地学习编程语言。参考文件附录1-用户手册点击运行,首先出现是菜单界面,选择菜单选项进行操作,可进行图8所表示。系统主界面(选择数字进入,退出系统)图8菜单界面选择1进入系统,然后出现功效菜单图9登陆功效;输入读者和书籍,然后出现功效菜单;图10图书管理系统主菜单附录2-源程序#include<stdio.h>#include<string.h>#include<stdlib.h>#defineMax3typedefstructbook{charbook_num[10];charbook_name[20];charbook_writer[10];intbook_kc;intbook_xy;structbook*next;}BK;typedefstructborrow{charborrow_book_num[10];charlimit_date[8];}BO;typedefstructreader{charreader_num[10];charreader_name[10];intright;BOborrow[Max];structreader*next;}RD;BK*h_book;RD*h_reader;voidLogin();/*登陆*/intMenu();/*主菜单*/voidMenu_select();/*主菜单选择函数*/voidInit();/*初始化*/voidInit_reader();/*初始化读者*/voidInit_book();/*初始化图书*/voidInsert_New_Book();/*新书入库*/intFind();/*查找菜单*/voidFind_Select();/*查找菜单选择函数*/voidFind_Reader();/*查找读者信息*/voidFind_Book();/*查找图书信息*/voidPrint_reader();/*打印读者信息*/voidPrint_book();/*打印图书信息*/voidBorrow_Book();/*借书函数*/voidReturn_Book();/*还书函数*/voidSave();/*保留信息*/voidSave_Reader();/*保留读者信息*/voidSave_Book();/*保留图书信息*/voidLoad();/*加载信息*/voidLoad_Reader();/*加载读者信息*/voidLoad_Book();/*加载图书信息*/voidLogin()/*登陆*/{system("cls");printf("\n\n\n\t\t\t欢迎登陆本系统\n");printf("\n\n\t\t系统版权全部\n\n\n\n\n\n\n");printf("\n\n\n\t\t按任意键进入系统...");getchar();system("cls");}intMenu()/*主菜单*/{intsn;printf("\n\t\t图书管理系统主菜单\n");printf("=================================================\n");printf("*\t0退出系统*\n");printf("*\t1新书入库*\n");printf("*\t2查询*\n");printf("*\t3借书登记*\n");printf("*\t4还书管理*\n");printf("=================================================\n");printf("请选择对应代码:");for(;;){scanf("%d",&sn);fflush(stdin);if(sn<0||sn>4)printf("\n错误!请重新输入:");elsebreak;}returnsn;}voidMenu_select()/*主菜单选择函数*/{for(;;)/*循环调用模式,确保能进行反复操作*/{switch(Menu())/*功效选择*/{case0:system("cls");/*清楚屏幕先前显示内容*/Save();printf("\n\n\t文件保留成功!\n");printf("\n\n\t欢迎下次使用本系统!\n");getchar();exit(0);case1:Insert_New_Book();break;case2:Find_Select();break;case3:Borrow_Book();break;case4:Return_Book();break;default:printf("\n错误!");exit(0);}}}voidInit()/*初始化*/{Init_reader();Init_book();}voidInit_reader()/*初始化读者信息*/{RD*p0;inti;printf("\n读者初始化开始,请输入读者信息..\n包含编号.姓名..\n");p0=(RD*)malloc(sizeof(RD));h_reader=p0;printf("\n请输入读者信息:\n");printf("ReaderNo.:");/*输入读者编号(唯一)*/scanf("%s",p0->reader_num);printf("ReaderName:");/*输入读者姓名(不唯一)*/scanf("%s",p0->reader_name);p0->right=0;for(i=0;i<Max;i++){strcpy(p0->borrow[i].borrow_book_num,"0");/*所借图书直接置为0(即没有借书)*/strcpy(p0->borrow[i].limit_date,"0");}p0->next=NULL;printf("\n读者信息初始化完成!按任意键继续下一步操作..\n");getchar();system("cls");}voidInit_book()/*初始化图书信息*/{BK*p0;printf("\n图书初始化开始,请输入图书信息..\n包含编号.书名.数量..\n");p0=(BK*)malloc(sizeof(BK));h_book=p0;printf("\n请输入图书信息:\n");printf("BookNo.:");/*输入图书编号(唯一)*/scanf("%s",p0->book_num);printf("BookName:");/*输入图书名称*/scanf("%s",p0->book_name);printf("BookWriter:");/*输入图书作者*/scanf("%s",p0->book_writer);printf("Number:");/*输入图书数量*/scanf("%d",&p0->book_kc);p0->book_xy=p0->book_kc;/*开始时图书现有量和库存量相等*/p0->next=NULL;printf("\n图书信息初始化完成!按任意键继续下一步操作..\n");getchar();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("BookNo.:");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("Number:");scanf("%d",&p0->book_kc);p1->book_kc+=p0->book_kc;p1->book_xy+=p0->book_kc;}else/*若不存在,则需要输入其它信息,然后在进行插入操作*/{printf("BookName:");scanf("%s",p0->book_name);printf("BookWriter:");scanf("%s",p0->book_writer);printf("Number:");scanf("%d",&p0->book_kc);while(p->next){p=p->next;}if(h_book==NULL)h_book=p0;/*此处分两种情况,链表中没有数据,head直接指向p0处*/elsep->next=p0;/*此处分两种情况,链表中有数据,链表中最终元素next指向p0处*/p0->next=NULL;p0->book_xy=p0->book_kc;}printf("\n新书入库完成!按任意键继续下一步操作..\n");getchar();system("cls");}intFind()/*查找菜单*/{intsn;printf("\n\t\t信息查询菜单\n");printf("=================================================\n");printf("*\t0返回上级\t*\n");printf("*\t\t*\n");printf("*\t1查找图书2查找读者\t*\n");printf("*\t\t*\n");printf("*\t3打印图书4打印读者\t*\n");printf("=================================================\n");printf("请选择对应代码:");for(;;)/*循环调用模式,确保能进行反复操作*/{scanf("%d",&sn);fflush(stdin);if(sn<0||sn>4)printf("\n错误!请重新输入:");elsebreak;}returnsn;}voidFind_Select()/*查找菜单选择函数*/{system("cls");for(;;)/*循环调用模式,确保能进行反复操作*/{switch(Find())/*功效选择*/{case0:system("cls");Menu_select();break;case1:Find_Book();break;case2:Find_Reader();break;case3:Print_book();break;case4:Print_reader();break;default:printf("\n错误!");exit(0);}}}voidFind_Reader()/*查找读者信息*/{RD*p;inti;charfind_reader[10];p=h_reader;printf("\n读者信息查询模块\n");printf("\n请输入你要查询读者编号:");scanf("%s",find_reader);while(strcmp(p->reader_num,find_reader)!=0&&p->next)p=p->next;if(strcmp(p->reader_num,find_reader)==0){printf("\n读者编号:%s信息为:\n",find_reader);printf("ReaderNo.\tReaderName");/*此处这么处理,是为了能实现一个读者能借多本书Max能够改*/printf("\n");printf("\t%s\t\t%s",p->reader_num,p->reader_name);for(i=0;i<Max;i++){printf("\n");printf("BorrowBookNum%d",i+1);printf("\tReturn%dLimitDate",i+1);printf("\n");printf("\t%s",p->borrow[i].borrow_book_num);printf("\t\t%s",p->borrow[i].limit_date);}printf("\n");}elseprintf("\n此读者编号不存在,请查对!按任意键返回...");getchar();system("cls");}voidFind_Book()/*查找图书信息*/{BK*p;charfind_book[10];/*功效很简单,读者编号唯一,查找只须一次遍历*/p=h_book;printf("\n图书信息查询模块\n");printf("\n请输入你要查询图书编号:");scanf("%s",find_book);while(strcmp(p->book_num,find_book)!=0&&p->next)p=p->next;if(strcmp(p->book_num,find_book)==0)/*找到了就打印,不然提醒不存在,或犯错*/{printf("\n图书编号:%s信息为:\n",find_book);printf("\nBookNo.\t\tBookName\tBookWriter\tXianYou\tKuCun\n");printf("%s\t\t%s\t\t%s\t\t%d\t\t%d\n",p->book_num,p->book_name,p->book_writer,p->book_xy,p->book_kc);}elseprintf("\n此图书编号不存在,请查对!按任意键返回...");getchar();system("cls");}voidPrint_reader()/*打印读者信息*/{RD*p;inti;p=h_reader;printf("\n读者信息以下:\n\n");printf("ReaderNo.\tReaderName");/*此处这么处理,是为了能实现一个读者能借多本书Max能够改*/printf("\n");while(p!=NULL)/*遍历链表一次就能够了*/{printf("\t%s\t\t%s",p->reader_num,p->reader_name);for(i=0;i<Max;i++){printf("\n");printf("BorrowBookNum%d",i+1);printf("\tReturn%dLimitDate",i+1);printf("\n");printf("\t%s",p->borrow[i].borrow_book_num);printf("\t\t%s",p->borrow[i].limit_date);}printf("\n");p=p->next;}printf("\n读者信息打印完成!按任意键继续下一步操作..");getchar();system("cls");}voidPrint_book()/*打印图书信息*/{BK*p;p=h_book;printf("\n图书信息以下:\n\n");printf("BookNo.\t\tBookName\tBookWriter\tXianYou\tKuCun\n");/*直接打印全部图书信息,遍历链表一次就可*/while(p!=NULL){printf("%s\t\t%s\t\t%s\t\t%d\t\t%d\n",p->book_num,p->book_name,p->book_writer,p->book_xy,p->book_kc);p=p->next;}printf("\n图书信息打印完成!按任意键继续下一步操作..");getchar();system("cls");}voidBorrow_Book()/*借书模块*/{BK*p0;RD*p1;charbo_num[10],rea_num[10],lim_date[8];inti;p0=h_book;p1=h_reader;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");}elseif(p0->book_xy<=0)/*判定此图书现在是否还有库存*/{printf("\n抱歉,此书已借完!请等候新书到来!!\n按任意键返回");}elseif(p1->right>=Max)/*判定此读者借书权限是否已达最大*/{printf("\n不好意思,借书数目已满!不能借书!\n按任意键返回");}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");}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);}}}else/*此读者从未借过书*/{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);}END:getchar();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;/*设置标志,用于判定读者是否借了此书或是否犯错提前结束,若提前犯错,则find=2,若借了,则find=1,若没借为find=0*/printf("\n此读者编号不存在!按任意键返回..\n");gotoend;}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;/*设置标志,用于判定读者是否借了此书或是否犯错提前结束,若提前犯错,则find=2,若借了,则find=1,若没借为find=0*/printf("\n错误!此图书编号不存在!按任意键返回..\n");gotoend;}for(i=0;i<Max;i++)if(strcmp(return_book_num,q->borrow[i].borrow_book_num)==0)/*假如此读者借了此书*/{find=1;/*设置标志,用于判定读者是否借了此书或是否犯错提前结束,若提前犯错,则find=2,若借了,则find=1,若没借为find=0*/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);}if(find==0)/*为何有个find==0,因为遍历时循环Max次,如循环完成还没有找到,则说明读者没有借此书,find用来确保只打印一次结果,不然每循环一次就会打印一个结果*/printf("\n错误!此读者未借此书!按任意键返回..\n");/*假如遍历读者所借书号,发觉读者未借此书,则提醒错误!*/end:getchar();system("cls");}voidSave()/*保留信息*/{Save_Reader();Save_Book();}voidSave_Reader()/*保留读者信息*/{FILE*fp_reader;

温馨提示

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

最新文档

评论

0/150

提交评论