图书借阅管理系统大数据结构课程设计

上传人:痛*** 文档编号:86539277 上传时间:2022-05-07 格式:DOC 页数:41 大小:798KB
收藏 版权申诉 举报 下载
图书借阅管理系统大数据结构课程设计_第1页
第1页 / 共41页
图书借阅管理系统大数据结构课程设计_第2页
第2页 / 共41页
图书借阅管理系统大数据结构课程设计_第3页
第3页 / 共41页
资源描述:

《图书借阅管理系统大数据结构课程设计》由会员分享,可在线阅读,更多相关《图书借阅管理系统大数据结构课程设计(41页珍藏版)》请在装配图网上搜索。

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

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

3、l C+6.0进展程序设计开发,本系统是各大中小学实现图书馆信息化管理的有效工具,同时本系统中采用的新技术可作为其他信息系统构建时的参考。关键词:数据结构;算法设计;C+程序设计语言;目录目录1第一章开发环境和开发工具31.1C+简介31.2 开发背景31.3 开发环境4第二章算法思想52.1 系统需求分析5562.2 系统总体设计62.2.1 系统设计目标62.2.2 开发设计思想72.2.3 系统功能模块设计72.3 算法思想描述11第三章算法实现123.1 数据结构123.2 程序模块133.3 各模块之间的调用关系143.4 源程序代码14第四章测试与分析324.1 测试数据选择324

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

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

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

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

8、个高效快捷的图书借阅管理系统。本系统是以建立一个以通过计算机数据管理图书借阅系统为目的,以用户浏览图书信息的系统。该系统的功能强大,其具有良好的界面,操作方便灵活、简洁高效。具有良好的健壮性,以会员制为主要借还书手段,各种功能设置方便图书管图书借阅管理。2.1 系统需求分析1添加会员:输入会员编号、会员某某,进展会员添加,添加成功显示添加完毕。此功能可连续添加。新用户经注册方可登录系统并使用读者服务功能。2查询会员:输入查询的会员编号,如果存在该会员,如此会显示该会员信息,包括会员编号,会员某某,已借出的图书数为几本;如果查询的会员编号不存在,如此显示没找到指定会员。3删除会员:请输入要删除的

9、会员的编号,如果输入的会员编号不存在,如此显示没有找到要删除的会员编号。系统会提示你还有会员要删除吗?输入Y,如此可以继续输入想要删除的会员编号,并进展删除,如果不想在进展删除的话,可以选择N,进展删除会员完毕操作,退回主界面。4载入数据:实现数据载入功能。5保存功能:能将记录保存在任何自定义的文件中。6退出程序:如果想要退出程序,系统会提示警告: 程序完毕后未存储的数据将消失确定要退出吗?(Y/N),选择y,如此直接退出程序。1增加图书:增加新的图书资料,同时需检查新书的图书编号是否已存在于原图书资料中,假如已存在如此显示这类书已有库存,可输入图书的入库量进展添加图书操作;如果该类图书为第一

10、次进展添加,如此应该输入该图书的图书编号,图书的名称,以与图书的入库量,输入完毕如此图书添加完毕,可继续选择是否继续添加。2查询图书:查询图书时需要输入查询的图书编号,如果该图书存在如此会显示该图书的图书编号,图书名称,该图书的库存量以与图书的借出量。其中图书的库存量以与图书的借出量均可以累加。如果该图书已经被借出,如此查询结果显示图书库存量以与图书的借出量。3删除图书:通过图书编号查询该图书资料,假如该编号存在,允许删除,否如此提示没有找到你所要的图书。删除对象包括该图书资料以与“图书状态和“借阅人中与此书相关的所有记录。一旦进展删除成功,如此所有该图书信息都将不存在。4借书处理:如果需要进

11、展借书操作,如此必须保证该借书者已经进展过会员注册,借书操作需要输入要借出的书号,以与会员编号,如果会员编号输入错误,如此显示会员编号输入错误,外借失败;如果输入要借出的书号进展借书操作,如此系统会显示该编号图书的现有库存量,如果没有查询到该图书的编号如此显示没有找到要借出的图书,如果借出成功,显示外借成功。5还书处理: 如果需要进展还书操作,如此必须保证该借书者是会员,还书操作需要输入要借出的书号,以与会员编号,如果会员编号输入错误,如此显示会员编号输入错误,还书失败;如果输入要借出的书号进展借书操作,如此系统会显示该编号图书的现有库存量,如果没有查询到该图书的编号如此显示没有找到要借出的图

12、书,如果还书成功,而显示归还成功。2.2 系统总体设计2.2.1 系统设计目标 本文研究开发的图书借阅管理系统用于支持高校完成图书馆图书借阅工作,有如下三个方面的目标:支持图书馆实现规X化的管理。支持图书馆高效率完成图书馆增加图书以与会员借还书管理的日常业务,包括图书借阅管理系统的两大功能:1图书管理(增加图书、查询图书、删除图书、图书借阅、还书)2会员管理(增加会员、查询会员、删除会员、借书信息) 支持图书馆实现无纸化办公,方便快捷,提高图书馆的管理效率,便利师生进入图书馆进展学习。2.2.2 开发设计思想 基于以上系统设计目标,本文在图书馆图书借阅管理系统时遵循了以下开发设计思想:采用现有

13、的软硬件环境与先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。尽量达到操作过程中的直观、方便、实用、安全等要求。系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。系统应具备数据维护功能,与时根据用户需求进展数据的添加、删除、修改、备份等操作。2.2.3 系统功能模块设计本系统开发的意图是借由网络化的管理减轻图书馆工作人员的工作量,全面提高图书馆的管理效率与服务质量。实现两方面的功能,这两个方面分别是图书管理和会员管理。1图书管理(增加图书、查询图书、删除图书、图书借阅、还书);2会员管理(增加会员、查询会员

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

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

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

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

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

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

20、件中,按要求通过调用各个函数对文件内的数据进展操纵与处理。各个分函数算法描述:由主函数调用建立一个新的文件用于存储图书以与会员记录。 源程序代码#include #include #include #define NULL 0 typedef struct BookInfo/图书结构int b_Code; /图书编号char b_Name20; /名称int b_Total; /总数int b_Out; /借出数BookInfo* nextbook; /下一类图书 BookInfo; typedef struct MemberInfo/会员结构long m_Code; /会员编号char m_

21、Name20; /会员名字int l_Codes6; /已借书的编号,最多5 MemberInfo* nextmember; /下一会员 MemberInfo; typedef struct System/管理系统结构 BookInfo* BI; MemberInfo* MI; int BookTotal; /图书类库存量int MemberTota; /会员数量System; System* InitSystem();/ 系统初始化 void AddBook(System*);/增加图书 BookInfo* SearchBook(System*,int);/查询图书信息 void DelBo

22、ok(System*);/删除图书 void BrrowBook(System*);/借书处理 void TurnBackBook(System*);/还书处理 void AddMember(System*);/添加会员 void DelMember(System*);/删除会员 MemberInfo* SearchMember(System*,int);/查询会员信息 void StoreData(System*); /定义一个空的数据存储系统 void LoadData(System*); /加载所有数据 void ExitSystem(); /退出程序 void main() Syste

23、m* S=InitSystem(); int sel; docoutntttt图书借阅管理系统主界面endl; couttttendl; coutttt 1.增加图书. tendl;coutttt 2.查询图书. tendl;coutttt 3.删除图书. tendl;coutttt 4.借书处理. tendl;coutttt 5.还书处理. tendl;coutttt 6.添加会员. tendl;coutttt 7.删除会员. tendl;coutttt 8.查询会员. tendl;coutttt 9.载入数据. tendl;coutttt 10.保存数据. tendl;coutttt 11

24、.退出程序tendl;couttttendl; coutsel; if(sel=1&sel=11)break; /选择1到11cout选择错误!n重新输入BI=(BookInfo*)malloc(sizeof(BookInfo); /图书信息初始化,sizeof是C/C+中的一个操作符operator,简单的说其作用就是返回一个对象或者类型所占的内存字节数S-BookTotal=0; /图书数量初始为0S-BI-nextbook=NULL; /下一类图书信息初始为空S-MI=(MemberInfo*)malloc(sizeof(MemberInfo); /初始化会员信息S-MemberTota

25、=0; /图书总数初始为0 S-MI-nextmember=NULL; /下一个会员信息初始为空return S; void AddBook(System* S) /添加图书模块 int Tempcode; /图书编号char sel; /查询该图书编号是否已存在BookInfo* p=S-BI; /p指向图书结构BookInfo* t; /添加的图书库存没有BookInfo* m; /添加的图书库存已有int num; /入库量do coutTempcode; if(m=SearchBook(S,Tempcode) /图书编号库存已有 cout这类书已有库存.n输入图书的入库量:num; m

26、-b_Total+=num; /*图书数量累加。m-b_Total间接引用运算符,表达式m-b_Total引用了指针m指向的结构体的成员b_Total。*/ else t=(BookInfo*)malloc(sizeof(BookInfo); /在图书信息中定义一个t的内存空间t-b_Code=Tempcode; /*添加的图书编号与库存已有。间接引用运算符,表达式t-b_Code引用了指针t指向的结构体的成员b_Code。*/coutt-b_Name; coutt-b_Total; t-b_Out=0; /图书借出量为0 t-nextbook=p-nextbook; p-nextbook=t

27、; S-BookTotal+; /图书总数 cout添加完毕!endl; coutsel; if(sel=n|sel=N) cout完毕添加BI-nextbook; /下一本图书int bookcode; /图书编号if(code=-1) coutbookcode; /输入图书编号 else bookcode=code; while(bi&bi-b_Code!=bookcode)bi=bi-nextbook; /判断输入图书编号于库存中的某个编号是否相等if(code=-1) if(!bi)/如果库存中没有此编号cout没找到你所要的图书.endl; else /库存中有此编号,显示信息 co

28、ut图书编号为:b_Codeendl; cout图书名称为:b_Nameendl; cout图书库存量为:b_Totalendl; cout图书借出量为:b_OutBI;/定义一个系统中指向图书管理的plMemberInfo* memi; /会员结构中定义一个memichar sel; int tempcode; /输入的图书编号int i; do pl=S-BI; /间接引用运算符,表达式S-BI引用了指针s指向的结构体的成员BI。bi=pl-nextbook; /下一本图书 memi=S-MI-nextmember; /下一个会员couttempcode;/输入要删除的图书编号 while

29、(bi) if(bi-b_Code=tempcode)/图书存在直接删除cout删除图书成功nextbook; if(bi=0)/图书编号不存在cout没有找到要删除的图书nextbook=bi-nextbook; S-BookTotal-; while(memi) for(i=1;il_Codes0;i+)if(memi-l_Codesi=tempcode)break; if(il_Codes0) for(;il_Codes0;i+)memi-l_Codesi=memi-l_Codesi+1; memi-l_Codes0-; memi=memi-nextmember; free(bi); c

30、outsel; if(sel=N|sel=n) cout删除图书完毕BI-nextbook; BookInfo* p; char sel; int memcode; MemberInfo* mp; int tempcode; do couttempcode; p=SearchBook(S,tempcode); if(!p) cout没有找到要借出的图书.endl; else cout此书的现存量为b_Total-p-b_Out)b_Total-p-b_Out)cout没有足够的书了,外借失败.endl; else coutmemcode; mp=SearchMember(S,memcode);

31、 if(!mp)cout会员编号输入错误,外借失败l_Codes0=5)coutb_Out+; mp-l_Codes+mp-l_Codes0=tempcode; cout外借成功.endl; coutsel; if(sel=N|sel=n) cout外借操作完毕.BI-nextbook; BookInfo* p; MemberInfo* mp; int membercode; int tempcode; int i; char sel; do couttempcode; p=SearchBook(S,tempcode); if(!p) cout书号输入错误.endl; else cout此书的

32、现存量为b_Total-p-b_Out)endl; coutmembercode; if(!(mp=SearchMember(S,membercode)cout会员编号输入错误,归还失败b_Out-; for(i=1;il_Codes0;i+) if(mp-l_Codesi=tempcode)break; while(il_Codes0) mp-l_Codesi=mp-l_Codesi+1; i+; mp-l_Codes0-; cout归还成功.endl; coutsel; if(sel=N|sel=n) cout归还完毕.MI; MemberInfo* t; do coutTempcode;

33、 t=(MemberInfo*)malloc(sizeof(MemberInfo); t-m_Code=Tempcode; coutt-m_Name; t-l_Codes0=0; t-nextmember=p-nextmember; p-nextmember=t; S-MemberTota+; cout添加完毕!endl; coutsel; if(sel=n|sel=N) cout完毕添加MI-nextmember; int membercode; int i; if(code=-1) coutmembercode; else membercode=code; while(bi&bi-m_Co

34、de!=membercode)bi=bi-nextmember; if(code=-1) if(!bi)cout没找到指定会员.endl; else cout会员编号为:m_Codeendl; cout名称为:m_Nameendl; cout已借的图书有:l_Codes0本.endl; for(i=1;il_Codes0;i+) coutl_Codesi ; coutMI-nextmember; pl=S-MI; couttempcode; while(bi) if(bi-m_Code=tempcode)break; pl=bi; bi=bi-nextmember; if(!bi)coutne

35、xtmember=bi-nextmember; S-MemberTota-; for(i=1;il_Codes0;i+) if(!(book=SearchBook(S,bi-l_Codesi) cout删除会员出错!b_Out-; book-b_Total-; free(bi); coutsel; if(sel=N|sel=n) cout删除会员完毕BI-nextbook; if(!(fp=fopen(BookSys,wb) cout打开文件BookSys失败!BookTotal),sizeof(int),1,fp); while(bi) fwrite(bi,sizeof(BookInfo),

36、1,fp); bi=bi-nextbook; MemberInfo* mi=S-MI-nextmember; fwrite(&(S-MemberTota),sizeof(int),1,fp); while(mi) fwrite(mi,sizeof(MemberInfo),1,fp); mi=mi-nextmember; fclose(fp); void LoadData(System* S)/载入数据 FILE* fp; if(!(fp=fopen(BookSys,rb) cout打开文件BookSys失败BI; BookInfo* tempbi; fread(&(S-BookTotal),s

37、izeof(int),1,fp); for(int i=1;iBookTotal;i+) tempbi=(BookInfo*)malloc(sizeof(BookInfo); fread(tempbi,sizeof(BookInfo),1,fp); bi-nextbook=tempbi; bi=tempbi; bi-nextbook=NULL; MemberInfo* mi=S-MI; MemberInfo* tempmi; fread(&(S-MemberTota),sizeof(int),1,fp); for(i=1;iMemberTota;i+) tempmi=(MemberInfo*)

38、malloc(sizeof(MemberInfo); fread(tempmi,sizeof(MemberInfo),1,fp); mi-nextmember=tempmi; mi=tempmi; mi-nextmember=NULL; fclose(fp); void ExitSystem()/退出程序 char select; cout警告: 程序完毕后未存储的数据将消失.endl; coutselect; if(select=y|select=Y)exit(0); /退出if(select=n|select=N)return; 第四章 测试与分析4.1 测试数据选择 功能测试:1.增加图

39、书. 2.查询图书.3.删除图书. 4.借书处理. 5.还书处理.6.添加会员.7.删除会员.8.查询会员.9.载入数据.10.保存数据. 11.退出程序。 测试结果分析增加图书操作界面:如果该类图书为第一次进展添加,如此应该输入该图书的图书编号,图书的名称,以与图书的入库量为多少,输入完毕如此图书添加完毕;假如已存在如此显示这类书已有库存,可输入图书的入库量进展添加图书操作。查询图书操作界面:查询图书时需要输入查询的图书编号,如果该图书存在如此会显示该图书的图书编号,图书名称,该图书的库存量以与图书的借出量。借书操作界面,保证借书者是会员,并且所借图书有库存,借书时需要输入会员编号和图书编号

40、。如果没有查询到该图书的编号如此显示没有找到要借出的图书,如果会员编号输入错误,如此显示会员编号输入错误,外借失败;还书操作界面: 如果需要进展还书操作,如此必须保证该借书者已经进展过会员注册,还书操作需要输入要借出的书号,以与会员编号,如果会员编号输入错误,如此显示会员编号输入错误,还书失败。正确如此显示还书成功并显示图书信息查询图书操作界面:查询图书时需要输入查询的图书编号,如果该图书存在如此会显示该图书的图书编号,图书名称,该图书的库存量以与图书的借出量。其中图书的库存量以与图书的借出量均可以累加。如果该图书已经被借出,如此查询结果显示图书库存量以与图书的借出量。删除图书操作界面:通过图

41、书编号查询该图书资料,假如该编号存在,允许删除,否如此提示没有找到你所要的图书。删除对象包括该图书资料以与“图书状态和“借阅人中与此书相关的所有记录。一旦进展删除成功,如此所有该图书信息都将不存在。总 结图书借阅系统的实现与设计,这个题目相对来说贴近生活,比拟容易理解。但是设计一个较为完整的程序却不是这么简单的。首先我分析了相关的题目内容,并由此而进展了相关资料和书籍的查询工作然后才开始正式进展设计。一开始不知从何下手但后来分析了一下题目,并结合这学期所学的知识,再加上相关提示我决定用指针、链表和文件的内容来编写程序。图书管理主要就是有一些操作来完成,这些操作包括:新进图书根本信息的输入、图书

42、根本信息的查询、对撤消图书信息的删除、为借书人办理注册、办理借书手续非注册会员不能借书、办理还书手续等等。我想这正好用C+的知识来实现函数。在具体编写程序时考虑到图书的相关操作与会员根本一样,所以实际上只要编写前三个函数。添加图书:考虑到图书的信息较多,所以用结构体对其定义。又考虑到图书量大,所以添加后要保存到文件中去。图书查询:用所学过的顺序查找法来写。删除图书:把保存到文件中的内容写到链表中去,用链表删除结点的方法来删除图书。我们所学过的指针这时正好用上。最后把各函数同主函数相连,用主函数调用它们,编写好好看的界面就可以了。同时通过这几天的程序与报告编写,我也发现了自己的很多不足,看到了自

43、己的实践经验还是比拟缺乏,理论联系实际的能力还是比拟脆弱。尤其是编写大型的程序所要拥有的知识和技能比拟缺乏。本系统在Windows XP操作系统下进展开发,采用应用广泛的C+编程语,从最后设计出的测试结果来看,效果比拟明显,检索迅速、查找方便、可靠性高、存储量大、信息利用率高。该系统能够极大地提高图书借阅管理的效率,优化图书管理的人力、物力,降低高校的管理本钱,为图书馆图书管理提供帮助。 当然,要作为实际应用还有一些具体细节问题需要解决,还有一些功能需要改良。例如:没有实现多条记录的连锁删除和添加以与主界面的分块显示,还没能实现动态生成报表;该系统还不能与企业中其他管理系统共享信息等。在今后的

44、工作、学习中我将认真总结经验教训,努力使自己成为一名技术过硬、工作严谨、思维活跃的工程人员,为提高人们的生活质量做出更大的贡献。心得体会本次课程设计,使我对数据结构这门课程有了更深入的理解。数据结构是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。在本课程设计中,我明白了理论与实际应用相结合的重要性,并提高了自己组织数据与编写大型程序的能力。培养了根本的、良好的程序设计技能以与合作能力。这次课程设计同样提高了我的综合运用所学知识的能力。并对VC有了更深入的了解。数据结构是一门实践性很强的课程,上机实习是对学生全面综合素质进展训练的一种最根本的方法,是与课堂听讲、

45、自学和练习相辅相成的、必不可少的一个教学环节。上机实习一方面能使书本上的知识变“活,起到深化理解和灵活掌握教学内容的目的;另一方面,上机实习是对学生软件设计的综合能力的训练,包括问题分析,总体结构设计,程序设计根本技能和技巧的训练。此外,还有更重要的一点是:机器是比任何教师更严厉的检查者。因此,在“数据结构的学习过程中,必须严格按照教师的要求,主动地、积极地、认真地做好每一个实验,以不断提高自己的编程能力与专业素质。通过这段时间的课程设计,我认识到数据结构是一门比拟难的课程。需要多花时间上机练习。这次的程序训练培养了我实际分析问题、编程和动手能力,使我掌握了程序设计的根本技能,提高了我适应实际

46、,实践编程的能力。总的来说,这次课程设计让我获益匪浅,对数据结构也有了进一步的理解和认识。当我遇到错误的时候,感到很受打击。值得欣慰的是,在同学的帮助和大量参考书的查阅下,我把自己的模块做好了。这就是我收获最大的地方。而且,我明白了遇到困难永不放弃的重要性,我知道了团队合作的重要性,我领悟了只有坚持不懈才会取得胜利。知识的获得是无止境的,只要你想学,只要你行动,没有什么会难倒我们的。回首这一个多星期的课程设计,我很欣慰。因为我有了动力,有了勇气。谢谢教师对我们的不懈帮助,谢谢学校给了我们这一次实践的机会,也谢谢组员们的关怀。这些美好的回忆美好的东西将永远伴随着我参考文献 1谭浩强等.C语言程序设计教程.:高等教育,19972谭浩强.C程序设计.第2版.:清华大学,19993郭浩志.C语言程序设计.邮电大学,20054C陷阱与缺陷.:人民邮电,20085谭浩强、X基温.C语言程序设计教程.:高等教育,20066C程序设计经典教程.:清华大学,20067 数据结构C语言版,严蔚敏、吴伟民,清华大学,1997 8 新编C语言程序设计教程,周二强,清华大学,2011精彩文档

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!