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

下载本文档

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

文档简介

1、河南城建学院课程设计报告书专 业:计算机信息管理与信息系统 课程设计名称:数据结构课程设计题目:图书借阅管理系统班级:信管二班设计者学号:083215203设计者姓名:耿晓业 同组人员:刘利指导老师:张延红 完成时|0j: 2016年6月10日摘要随着信息技术的迅猛发展,信息化已经渗透到社会生活的各个领域和各个层面, 并日益成为提高效率,消除差错,节约成本的有效途径。20世纪60年代以来,在微 电子技术和通信技术迅速发展的推动下,图书馆图书借阅管理也充分利用软件来进行 管理,其目标是借助先进的信息处理技术和计算机网络技术来提高图书管理的效率和 质量,将管理与办公活动纳入到自动化,现代化的轨道中

2、。各大中小学图书馆中传统的图书借阅管理模式也越来越不能满足现代教育发展 的需要。对于一个有着成百上千的学生的学校来说,用手工管理数以千计图书的借阅 以及归还,是一项非常繁琐的工作,而相应的阶段性盘点图书、图书查询等,其工作 量都让人望而生畏,而且还极易出错。所以我们提出了开发图书馆图书借阅管理系统, 采取会员制的方式进行会员管理,包括增加会员,查询会员,删除会员,会员借书信 息等。另外采取图书流通借还管理,对图书查询借阅,增加图书,删除图书等功能进 行统一管理,为各大中小学实现图书馆信息化管理提供有效工具。本系统采用数据结 构,C+程序设计语言,系统开发平台为Windows XP,使用Visu

3、al C+6. 0进行程序 设计开发,本系统是各大中小学实现图书馆信息化管理的有效工具,同时本系统中采 用的新技术可作为其他信息系统构建时的参考。关键词:数据结构;算法设计;C+程序设计语言;目录1第一章开发环境和开发工具31.1 C+简介312 J 1 31.3 开发环境4第二章算法思想2. 1系统需求分析51.1 .1会员管理功能.51.2 . 2图书管理功能.61.3 系统总体设计61.3.1 系统设计目标.61.3.2 开发设计思想.72. 2 3系统功能模块设计.723 11第三章算法实现1231 1232 133.3各模块之间的调用关系1434 14第四章测试与分析324.2测试结

4、果分析3237总 结36心得体会38参考文献18第一章开发环境和开发工具1.1 C+简介C+是一种面向对象的开发语言,是一种使用非常广泛的计算机编程语言。 他是在c语言的基础上开发的一种面向对象编程语言,应用广泛。C+支持静态 数据类型检查的,支持多重编程范式的通用程序设计语言,支持过程化程序设计、 数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。 语言灵活,运算符的数据结构丰富、具有结构化控制语句、程序执行效率高,而 且同时具有高级语言与汇编语言的优点,与其它语言相比,可以直接访问物理 地址,与汇编语言相比乂具有良好的可读性和可移植性。其编程领域众广,常用 于系统开发

5、,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编 程语言之一,且支持封装、继承、多态等特性!1.2 开发背景随着科学技术的不断发展,计算机科学日渐成熟,计算机知识的普及使更多用 户懂得利用计算机为自己的工作,生活提供方便。计算机其强大的功能已为人们所深 刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。采用计算机进行 信息化管理已成为衡量高校图书管理科学化和现代化的重要标志,而图书馆图书借阅 管理的全面自动化、信息化则是其中重要的组成部分。本系统是以建立一个以通过计算机数据管理图书借阅系统为目的,以用户浏览 图书信息的网站系统。本系统具有灵活、方便、快捷、界面友好等优点,

6、更加方便 的在线了解图书信息,以及借阅图书。本系统研究的课题主要意义是通过完成这个 图书管理系统,方便管理者的管理以及用户所需要查询的书籍,使大家在尽可能短 的时间内完成对所需要图书的借阅。大大的方便了用户的需求在很大程度上提升了 高校的教学水平。因此,本文所研究的图书馆借阅管理信息系统具有一定的使用价 值和现实意义。1.3 开发环境软件平台是信息系统开发和运行所需的集成软件环境,设计和选择高效、实用、 方便、功能齐全的软件平台,对信息系统的开发具有十分重要的意义。在结合实际开 发的需要并充分考虑各种软件平台的性能及适用范围和对软件平台的使用能力,本系 统的软件平台选择如下:(1)操作系统操作

7、系统是计算机系统中最重要的系统软件,目前在微机上使用的桌面操作系 统有Windows 95/98/2000/me/xp/2003server等,可运行于前面所列举的各种操作系统, 但建议使用Windows 2000以上系统。本系统在Windows XP操作系统下进行开发。(2)支撑软件支撑软件是协助人们开发和维护软件的工具和环境软件,包括编辑程序,数据库 系统,集成开发环境等,本系统的支撑软件如下:系统运行环境:visual C+6. 0系统编程语言:C/C+程序设计语言第二章算法思想随着计算机技术的飞速发展,采用计算机进行信息化管理已成为衡量高校图书管 理科学化和现代化的重要标志。为了减少工

8、作人员的工作量,提高各个环节的工作效 率,优化人师生的学习环境,我们需要研究一个高效快捷的图书借阅管理系统。本系统是以建立一个以通过计算机数据管理图书借阅系统为目的,以用户浏览图 书信息的系统。该系统的功能强大,其具有良好的界面,操作方便灵活、简洁高效。 具有良好的健壮性,以会员制为主要借还书手段,各种功能设置方便图书管图书借阅 管理。2.1 系统需求分析1 .1.1会员管理功能(1)添加会员:输入会员编号、会员姓名,进行会员添加,添加成功显示添加 完毕。此功能可连续添加。新用户经注册方可登录系统并使用读者服务功能。(2)查询会员:输入查询的会员编号,如果存在该会员,则会显示该会员信息, 包括

9、会员编号,会员姓名,已借出的图书数为几本;如果查询的会员编号不存在,则 显示没找到指定会员。(3)删除会员:请输入要删除的会员的编号,如果输入的会员编号不存在,则 显示没有找到要删除的会员编号。系统会提示你还有会员要删除吗?输入Y,则可以 继续输入想要删除的会员编号,并进行删除,如果不想在进行删除的话,可以选择N, 进行删除会员结束操作,退回主界面。(4)载入数据:实现数据载入功能。(5)保存功能:能将记录保存在任何自定义的文件中。(6)退出程序:如果想要退出程序,系统会提示警告:程序结束后未存储的数 据将消失确定要退出吗?(Y/N),选择y,则直接退出程序。2 . 1.2图书管理功能(1)增

10、加图书:增加新的图书资料,同时需检查新书的图书编号是否已存在于 原图书资料中,若已存在则显示这类书已有库存,可输入图书的入库量进行添加图书 操作;如果该类图书为第一次进行添加,则应该输入该图书的图书编号,图书的名称, 以及图书的入库量,输入完毕则图书添加完毕,可继续选择是否继续添加。(2)查询图书:查询图书时需要输入查询的图书编号,如果该图书存在则会显 示该图书的图书编号,图书名称,该图书的库存量以及图书的借出量。其中图书的库 存量以及图书的借出量均可以累加。如果该图书已经被借出,则查询结果显示图书库 存量以及图书的借出量。(3)删除图书:通过图书编号查询该图书资料,若该编号存在,允许删除,否

11、 则提示没有找到你所要的图书。删除对象包括该图书资料以及“图书状态”和“借阅 人”中与此书相关的所有记录。一旦进行删除成功,则所有该图书信息都将不存在。(4)借书处理:如果需要进行借书操作,则必须保证该借书者已经进行过会员 注册,借书操作需要输入要借出的书号,以及会员编号,如果会员编号输入错误,则 显示会员编号输入错误,外借失败;如果输入要借出的书号进行借书操作,则系统会 显示该编号图书的现有库存量,如果没有查询到该图书的编号则显示没有找到要借出 的图书,如果借出成功,显示外借成功。(5)还书处理:如果需要进行还书操作,则必须保证该借书者是会员,还书操 作需要输入要借出的书号,以及会员编号,如

12、果会员编号输入错误,则显示会员编号 输入错误,还书失败;如果输入要借出的书号进行借书操作,则系统会显示该编号图 书的现有库存量,如果没有查询到该图书的编号则显示没有找到要借出的图书,如果 还书成功,而显示归还成功。2.2 系统总体设计2.2.1 系统设计目标本文研究开发的图书借阅管理系统用于支持高校完成图书馆图书借阅工作,有如 下三个方面的目标:支持图书馆实现规范化的管理。支持图书馆高效率完成图书馆增加图书以及会员借还书管理的日常业务,包括 图书借阅管理系统的两大功能:(1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书)(2)会员管理(增加会员、查询会员、删除会员、借书信息)支持图书

13、馆实现无纸化办公,方便快捷,提高图书馆的管理效率,便利师生进入图书馆 进行学习。2. 2. 2开发设计思想基于以上系统设计目标,本文在图书馆图书借阅管理系统时遵循了以下开发设 计思想: 采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资 源,提高系统开发水平和应用效果的目的。 尽量达到操作过程中的直观、方便、实用、安全等要求。 系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,乂便于未 参与开发的技术维护人员补充、维护。系统应具备数据维护功能,及时根据用户需求进行数据的添加、删除、修改、 备份等操作。2. 2. 3系统功能模块设计本系统开发的意图是借由网络化的管理减

14、轻图书馆工作人员的工作量,全面提高 图书馆的管理效率及服务质量。实现两方面的功能,这两个方面分别是图书管理和会 员管理。(1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书);(2)会员管理(增加会员、查询会员、删除会员、借书信息)。图书借阅管理系统主要包括以下功能模块,如图所示。增加图书1HH帚加z :,L-系统功能模块图进入系统后需要先进行会员注册,才可以进行图书管理和会员管理。如图221进行进入系统,显示功能列表,可选择任意系统,但在操作之前先要进行增加图书。如图222图222如果会员注册完毕,新书添加完毕,读者可以进行借书操作。如图223图223查询图书操作。如图224图224

15、删除会员操作。如图225图2252.3算法思想描述本项目的实质是完成对学生成绩信息的建立、查找、插入、修改、删除等功能, 可以首先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作, 最后完成主函数以验证各个函数功能并得出运行结果。该程序的由多种函数实现,每个函数具有不同的功能,主要有主菜单函数,插入 功能子菜单函数,查找功能子菜单函数,会员信息录入函数,显示函数,排序函数, 插入函数以及查找函数。在每个区域中会调用不同的函数来实现主要的功能比如,在 新增功能里调用子菜单函数;在显示信息时调用排序函数先对需要输出的信息进行排 序,然后再输出;在查找功能里会调用查找函数来进行查找。

16、而最主要的函数有添加图书:考虑到图书的信息较多,所以用结构体对其定义。 乂考虑到图书量大,所以添加后要保存到文件中去。图书查询:用所学过的顺序查找 法来写。删除图书:把保存到文件中的内容写到链表中去,用链表删除结点的方法来 删除图书。我们所学过的指针这时正好用上。最后把各函数同主函数相连,用主函数 调用它们,主要函数如下:插入函数,它用插入排序来实现;2查找函数,用顺序查找法;删除函数,用链表删除结点的方法第三章算法实现3.1 数据结构要完成这个题目,主要是建立解决图书和会员的信息的存储,解决的方法是建 立两个带头结点的单链表,分别用于存储图书和会员。解决了这个问题后就是如何建 立这两个链表的

17、联系了,解决的方法是在图书结点中设一个借书人编号,在会员结点 中设一个数组用于存会员借的书。解决了这两个问题,剩下的工作就简单了。只需按 链表的操作就可以了。以会员管理为例,本项目的数据是一组会员的借阅信息,每条学生的借阅信息由 会员编号、会员姓名和组成,这组会员的借阅信息具有相同特性,属于同一数据对象, 相邻数据元素之间存在序偶关系。由此可以看出,这些数据具有线性表中数据元素的 性质,所以该系统的数据采用线性表来存储。顺序表是线性表的顺序存储结构,是指用一组连续的内存单元依次存放线性表的 数据元素。在顺序存储结构下,逻辑关系相邻的两个元素在物理位置上也相邻,这是 顺序表的特点。本项目可以采用

18、顺序表的线性表顺序存储结构。若一个数据元素仅占一个存储单元,第i个数据元素的地址为Loc (ai) =loc (al) + (i-l)假设线性表中每个元素占用k个存储单元,那么在顺序表中,线性表的第i个元 素的存储位置与第1个元素的存储位置的关系是Loc (ai)=loc (al) + (i-l)*k这里Loc (ai)是第i个元素的存储位置,loc (al)是第1个元素的存储位置,也 称为线性表的基址。显然,顺序表便于进行随机访问,故线性表的顺序存储结构是一 种随机存储结构。顺序表适宜于做查找这样的静态操作;顺序存储的优点是存储密度大,存储空间 利用率高。缺点是插入或删除元素时不方便。由于C

19、语言的数组类型也有随机存储 的特点,一维数组的机内表示就是顺序结构。因此,可用C语言的一维数组实现线性 表的顺序存储。数组实现线性表的顺序存储的优点是可以随机存取表中任一元素 0(1),存储空间使用紧凑;缺点是在插入,删除某一元素时,需要移动大量元素0(n),预先分配空间需按 最大空间分配,利用不充分,表容量难以扩充。用结构体类型定义每个会员数据,故该数组中的每个数据的结构可描述为:typedef struct Member Inf 0/会员结构(long m_Code; /会员编号char m_Name20; 会员名字int l_Codes6; /己借书的编号,最多5Member Info*

20、 nextmember; 下一会员MemberInfo;3.2 程序模块头文件及散列定义关键字#iiiclude#iiiclude#iiiclude#define NULL 0定义图书结构类型typedef stiuct Booklnfb /图书结构(mtb_Code;图书编号char b_Name20; /名称int b_Total; /总数mtb_Out;/借出数Bookliifo* nextbook; /下一类图书JBooklnfb;3.3 各模块之间的调用关系模块内部的具体算法,包括输入、处理和输出,相当于C+语言的过程或函数设 计。整体算法描述:建立一个结构来存放学生信息,再将这个结

21、构存放在文件中,按 要求通过调用各个函数对文件内的数据进行操纵及处理。各个分函数算法描述:由主函数调用建立一个新的文件用于存储图书以及会员记录。3.4 源程序代码#mclude#mclude#mcludedefine NULL 0typedef stmct Booklnfb /图书结构mt b_Code;图书编号char b_Name20; /名称int b_Total; /总数mt b_Out;/借出数Bookliifo* nextbook; 下一类图书JBooklnfb;typedef struct Memberlnfb/会员结构(long m_Code; /会员编号char m_Name

22、20; 会员名字int l_Codes6; /己借书的编号,最多5Memberlnfb* nextmembei; /下一会员JMembeiliifo;typedef struct System/管理系统结构(Bookliifb* BI;Memberlnfb* MI;int BookTotal; /图书类库存量int MumbuiTota; /会员数量 System;System* IiutSystem();/ 系统初始化void AddBook( System*);/增加图书Bookliifo* SearchBook(System*.int);查询图书信息void DelBook(System

23、*);/删除图书void BrrowBook(System*);/借书处理void Tu】nBackBook(System*);还书处理void AddMumbeRSystem*);/添加会员void DulMember(System*);/删除会员Memberliifb* SearchMembei(System*,int);/查询会员信息 void StoieData(System*); 定义一个空的数据存储(系统) void LoadData(System*); 加载所有数据 void ExitSystemQ; 退出程序 void mainQ System* S=IiiitSystemQ;

24、int sei;docoutHntttt |书借阅管理系统主界面”vendl;coutvv”tttX派y endl;coutvtttXL增加图书.支endl;coutvtttX2.查询图书.支endl;coutvtttX3.删除图书.支endl;coutvtttX4.借书处理.支endl;coutvtttX5.还书处理.支endl;coutvtttX6.添加会员.支endl;coutvtttX7.删除会员.支endl;coutvtttX8.查询会员.支endl;coutvtttX9.载入数据.支endl;coutvtttX10.保存数据.cout=l&selBI=(BookInfo*)mall

25、oc(sizeof(BookInfb); /图书信息初始化,sizeof是 C/C+中的一个操作 符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数S-BookTotal=0; 图书数量初始为0S-BI-nextbook=NULL; 下一类图书信息初始为空S-MI=(MemburInfb*)nKdloc(sizeof(MeniberInfo); /初始化会员信息S-MemberTota=0;图书总数初始为0S-MI-nextmember=NULL; /下一个会员信息初始为空return S;void AddBook(System* S) 添加图书模块(int Tem

26、pcode; 图书编号char sei;/查询该图书编号是否已存在Bookhifo* p=S-BI; /p 指向图书结构Bookliifo* t; 添加的图书库存没有Bookliifo* m; 添加的图书库存己有int num; 入库量docoutvv”输入图书编号:cinTempcode;if(m=SeatchBook(S,Tempcode) 图书编号库存已有 coutvv这类书已有库存An输入图书的入库量:Wendi;cinnum;m-b_TotaR=num; /*图书数量累加。m-b_Total间接引用运算符,表达式 m-b_Total引用了指针m指向的结构体的成员b_TotaL */e

27、lset=(BookInfo*)malloc(sizeof(BooklHfo); 在图书信息中定义一个t的内存空间 t-b_Code=Tempcode; /*添力口的图书编号与库存已有。间接引用运算符,表达式tb_Code引用了指针t指向的结构体的成员b.Codeo */coutvv”输入图书的名称:cint-b_Naiiie;coutvv”输入图书的入库量:cint-b_Total;t-b_Out=0; 图书借出量为0 t-nextbook=p-nextbook;p-nextbook=t;SBookTo血+; 图书总数coutvv11 添加完毕! y Vendl;coutvv”还要添加吗?(

28、Y/N)”; 是否继续添加 cinsel;if(sel=,n*| sel=N)coutvv”结束添加 Hendl;return;while(l);Bookhifo* SearcliBook(System* Sjnt code)查询图书(Bookliifb* bi=S-BI-nextbook; 下一本图书int bookcode; 图书编号if(code=-l)coutvv”请输入要查询的图书编号: cinbookcode; 输入图书编号else bookcode=code;while(bi&bib_Code!=bookcode)bi=bi-nextbook; 判断输入图书编号于库存中的某个编号

29、 是否相等if(code=-l)if(山1)如果库存中没有此编号coutvv”没找到你所要的图书jvveiidl;else/库存中有此编号,显示信息coutw“图书编号为:vbi-b_Codeb_Name endl;coutw“图书库存量为: v b_Tota b_Outvendl;renirn bi;void DelBook(System* S)删除图书(Bookliifo* bi; 定义一个 biBookliifo*pl=S-BI;定义一个系统中指向图书管理的plMembeilnfb* memi; 会员结构中定义一个memichar sei;int tempcode; 输入的图书编号nit

30、 i;dopl=S-BI;间接引用运算符,表达式S-BI引用了指针s指向的结构体的成员BE bi=pl-nextbook; 下一本图书21menii=S-MI-nextinember; 下一个会员coutw”请输入要删除的图书的编号之cintempcode;输入要删除的图书编号while(bi)if(历Ab_Code=tempcode)图书存在直接删除coutw”删除图书成功V nextbook;if(bi=O)图书编号不存在coutw”没有找到要删除的图书v nextbook=bi-nextbook;S-BookTotal-;while(menu)for(i=l ;iLCodes0;i-H-

31、)(if(meiiii-LCodesi=tempcode)bieak;if(il_Codes0)(fdi(;iLCodes0;i-H-)memi-LCodesi=meiiii-l_Codesi+l;menii-l_Codes0;meini=meiiu-nextmember;fiee(bi);)coutvv”还有图书要删除吗?(Y/N)“;cinsel;if(sel=rN, 11 sel=,n,)coutvv”删除图书结束endl;return;wlule(l);void BnowBook(System* S) 借书(Bookliifb* bi=S-BI-nextbook;Bookliifb*

32、p;char sei;int memcode;Memberlnfb* mp;int tempcode;docoutvv”输入要借出的书号:;cintempcode;p=SeaicliBook(S,tempcode);if(!p)coutvv”没有找到要借出的图书.”BI-nextbook;Bookliifb* p;Memberliifb* mp;mt membercode;mt tempcode;mti;char sei;do(coutvv输入归还书号:cintempcode;p=SearcliBook(S.tempcode);】fCP)(coutvv书号输入错误.vvendl;)else(c

33、outvv此书的现存量为v(p-b_Total-p-b_Out)v Vendl;coutvv请输入会员编号:cinmembercode;if(!(mp=SeaicliMember(S4iiembercode)coutvv”会员编号输入错误,归还失败Vendl; else(p-b_Out;fbr(i=l ;iLC odes 0 ;i+) if(mp-LCodesi=tempcode)break;while(il_Codes0)(mp-LCodesi=mp-l_Codesi+l;i+;mp-l_Codes0-;coutH归还成功. endl;)coutvv”还有要归还的图书吗?(Y/N)”;cin

34、sel;if(sel=rN, 11 sel=,n*) coutM归还结束.MI;Memberhifb* t;do(coutvv输入会员编号:cinTempcode;t=(MembeiIiifb*)malloc(sizeof(MembeiIiifo);t-nvC ode=Tempcode;coutvv”输入会员姓名:cint-m_Name;t-l_Codes0=0;t-nextmember=p-nextmember;p-nextmembei-t;S-MemberTota-H-;cout”添加完毕! ”MI-nextmember;mt membercode;mt i;if(code=-l)cout

35、vv”请输入要查询的会员编号:”; cinmembercode;else membercode=code;while(bi&bi-m_Code?=membercode)bi=bi-nextmember;if(code=-l)coutvv没找到指定会员.V Vendl;elsecoutvv”会员编号为:m_Codeendl;coutvv” 名称 9 :Hbi-m_Nameendl;coutvv” 己借的图书有:l_Codes0本.Hendl;fbr(i=l ;iLCodes0;i+) coutbi-l_Codesi, coutendl;return bi;void DelMember(Syste

36、m* S) 删除会员Memberlnfb* bi;Memberlnfb* pl;Bookliifb* book;char sei;mt i;mt tempcode;dobi=S-MI-nextmember;pl=S-MI;coutvv”请输入要删除的会员的编号:cintempcode;while(bi)if(bi-m_Code=tempcode)break;pl=bi;bi=bi-nextmember;if(!bi)coutvv“没有找到要删除的会员编号elsepl-nextmember=bi-nextmembei-;S-MemberTota-;fbr(i=l ;iLCodes0;i+) if

37、(!(book=SearchBook(S,bi-LCodesi)coutw删除会员出错! b_Out;book-b_Total;free(bi);coutvv”还有会员要删除吗?(Y/N)”;ciiisel;if(sel=fN|sel=,n,)coutvv”删除会员结束y Vendl;retuni;while(l);void StoieData(System* S)保存数据FILE* fp;Bookliifo* bi=S-BI-nextbook;if(!(fp=fopen(nBookSysH;,wbH)coutw”打开文件 BookSys 失败!”endl;exit(O);fvvrite(&(

38、S-BookTotal),sizeof(mt), 1 ,fp);while(bi)fwTite(bi,sizeof(BookIiifd), 1 ,fp);bi=bi-nextbook;Memberlnfb * ini=S-MI-nextmember;fvvnte(&(S-MemberTota),sizeof(mt), 1 ,fp); while(ini)fwrite(mi,sizeof(MembeiInfb), 1 ,fp);nn=ini-nextmember;fclose(fp);void LoadData(System* S)载入数据FILE* fp;if(!(fp=fopenC,Book

39、Sys,7,rbM)coutw”打开文件 BookSys 失败”BI;Bookliifb* tempbi;fread(&(S-BookTotal),sizeof(mt), 1 ,fp);foi(int i= 1 ;iBookTotal;i+)tempbi=(BookIiifb*)malloc(sizeof(BookInfb);fiead(tempbi,sizeof(BookIiifb), 1 ,fp);bi-nextbook=tempbi;bi=tempbi;bi-nextbook=NULL;Memberlnfb* ini=S-MI;Memberlnfb* tempnii;fread(&(S-

40、MembeiTota),sizeof(mt), 1 ,fp);for(i= 1 ;iMemberTota;i+)tempnu=(MembeiIiifd*)malloc(sizeof(MembeiIiifb);fiead(tempnu,sizeof(MemberIiifb), 1 ,fp);nii-nextmember=tempnii;nn=tempini;nii-nextmember=NULL;fclose(fp);id Exit System。退出程序char select;coutvv”警告:程序结束后未存储的数据将消失.yVendl;coutvv”确定要退出吗?ciiiselect;if

41、(select=y|select=rY,)exit(O);/退出if(select=ln,|select=,Nf)retuni;第四章测试与分析4.1 测试数据选择功能测试:1.增加图书.2.查询图书.3.删除图书.4.借书处理.5.还书处理.6. 添加会员.7.删除会员.8.查询会员.9.载入数据.10.保存数据.11.退出程序。4.2 测试结果分析图书管理系统主界面:包含该系统所有功能提示,如图4. 2.1所示朱H绫案及8图 4.2.138增加图书操作界面:如果该类图书为第一次进行添加,则应该输入该图书的图书编号,图书的名称,以及图书的入库量为多少,输入完毕则图书添加完毕;若已存在则显示这

42、类书已有库存,可输入图书的入库量进行添加图书操作。如图4. 2. 2所示编ss,grws 图士盖图书图送入A入人类人加 品管潮之阿匕前5添引名人y3 好 N 2 卞 ?/:!$ ?Dlr据6 3岁可理理员员如匈亶还漆册ge;事o 0 i / 12?q567s91r.、结半图 4. 2. 2查询图书操作界面:查询图书时需要输入查询的图书编号,如果该图书存在则会 显示该图书的图书编号,图书名称,该图书的库存量以及图书的借出量。如图4. 2. 3 所示图 4.23借书操作界面,保证借书者是会员,并且所借图书有库存,借书时需要输入会员 编号和图书编号。如果没有查询到该图书的编号则显示没有找到要借出的图

43、书,如果 会员编号输入错误,则显示会员编号输入错误,外借失败;如图4.2.4及图4.2.5所示图 4.2.444 4 ZX吗 ar-lfl;1号11a SW? 出任贝 :4盍窝 捧msa *.书45/二MM3 要出誉贝 矍的卷一g不丢珊一,FAHHObugff.exe-号二12311:333误,外借会质图 4.2.5还书操作界面:如果需要进行还书操作,则必须保证该借书者已经进行过会员注 册,还书操作需要输入要借出的书号,以及会员编号,如果会员编号输入错误,则显 示会员编号输入错误,还书失败。正确则显示还书成功并显示图书信息如图4.2.6所示图 4.2.6泉奈奈冬1闰 惜面 界 王冬段 尔 必统

44、系 理张理理员小X 书1.2.3.丸.9.“11米:5-比双”一一喈半 择归的查询图书操作界面:查询图书时需要输入查询的图书编号,如果该图书存在则会 显示该图书的图书编号,图书名称,该图书的库存量以及图书的借出量。其中图书的 库存量以及图书的借出量均可以累加。如果该图书已经被借出,则查询结果显示图书 库存量以及图书的借出量。如图4.2.7所示,F;HHDgbugH-. o | 回 |12 要药 m为: I 簿: / 一11; lIjA/生案案旬的图书函号:123 123反推蹄勺:11与:2iJiB5.6 7。91H1 米朱奈米奈图 4.2.7删除图书操作界面:通过图书编号查询该图

45、书资料,若该编号存在,允许删除, 否则提示没有找到你所要的图书。删除对象包括该图书资料以及“图书状态”和“借 阅人”中与此书相关的所有记录。一旦进行删除成功,则所有该图书信息都将不存在。 如图4. 2. 8所示L F:HHDe“g*exc朱朱米一理员员。Eb. 管图0_一会 耍加滴加雷w1 .2.3.4.S.6.?.8.九1811-米冰米面啜王:3ww 择-困 除受母书的编号424图 4.2.8图书借阅系统的实现与设计,这个题目相对来说贴近生活,比较容易理解。但 是设计一个较为完整的程序却不是这么简单的。首先我分析了相关的题目内容,并由此而进行了相关资料和书籍的查询工作然后 才开始正式进行设计

46、。一开始不知从何下手但后来分析了一下题目,并结合这学期所 学的知识,再加上相关提示我决定用指针、链表和文件的内容来编写程序。图书管理 主要就是有一些操作来完成,这些操作包括:新进图书基本信息的输入、图书基本信 息的查询、对撤消图书信息的删除、为借书人办理注册、办理借书手续(非注册会员 不能借书)、办理还书手续等等。我想这正好用C+的知识来实现函数。在具体编写程序时考虑到图书的相关操作与会员基本相同,所以实际上只要编写 前三个函数。添加图书:考虑到图书的信息较多,所以用结构体对其定义。乂考虑到 图书量大,所以添加后要保存到文件中去。图书查询:用所学过的顺序查找法来写。 删除图书:把保存到文件中的内容写到链表中去,用链表删除结点的方法来删除图书。 我们所学过的指

温馨提示

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

评论

0/150

提交评论