图书借阅管理系统数据结构课程设计.doc
《图书借阅管理系统数据结构课程设计.doc》由会员分享,可在线阅读,更多相关《图书借阅管理系统数据结构课程设计.doc(40页珍藏版)》请在咨信网上搜索。
河南城建学院 课程设计报告书 专 业: 计算机信息管理与信息系统 课程设计名称:《数据结构课程设计》 题 目:图书借阅管理系统 班 级:信管二班 设 计 者 学 号:083215203 设 计 者 姓 名:耿晓业 同 组 人 员:刘利 指 导 老 师:张延红 完 成 时 间:2016年6月10日 摘 要 随着信息技术的迅猛发展,信息化已经渗透到社会生活的各个领域和各个层面,并日益成为提高效率,消除差错,节约成本的有效途径。20世纪60年代以来,在微电子技术和通信技术迅速发展的推动下,图书馆图书借阅管理也充分利用软件来进行管理,其目标是借助先进的信息处理技术和计算机网络技术来提高图书管理的效率和质量,将管理与办公活动纳入到自动化,现代化的轨道中。 各大中小学图书馆中传统的图书借阅管理模式也越来越不能满足现代教育发展的需要。对于一个有着成百上千的学生的学校来说,用手工管理数以千计图书的借阅以及归还,是一项非常繁琐的工作,而相应的阶段性盘点图书、图书查询等,其工作量都让人望而生畏,而且还极易出错。所以我们提出了开发图书馆图书借阅管理系统,采取会员制的方式进行会员管理,包括增加会员,查询会员,删除会员,会员借书信息等。另外采取图书流通借还管理,对图书查询借阅,增加图书,删除图书等功能进行统一管理,为各大中小学实现图书馆信息化管理提供有效工具。本系统采用数据结构,C++程序设计语言,系统开发平台为Windows XP,使用Visual C++6.0进行程序设计开发,本系统是各大中小学实现图书馆信息化管理的有效工具,同时本系统中采用的新技术可作为其他信息系统构建时的参考。 关键词:数据结构;算法设计;C++程序设计语言; 目录 目录 1 第一章 开发环境和开发工具 3 1.1 C++简介 3 1.2 开发背景 3 1.3 开发环境 4 第二章 算法思想 5 2.1 系统需求分析 5 2.1.1会员管理功能 5 2.1.2图书管理功能 6 2.2 系统总体设计 6 2.2.1 系统设计目标 6 2.2.2 开发设计思想 7 2.2.3 系统功能模块设计 7 2.3 算法思想描述 11 第三章 算法实现 12 3.1 数据结构 12 3.2 程序模块 13 3.3 各模块之间的调用关系 14 3.4 源程序代码 14 第四章 测试与分析 32 4.1 测试数据选择 32 4.2 测试结果分析 32 总 结 36 心得体会 37 参考文献 38 第一章 开发环境和开发工具 1.1 C++简介 C++是一种面向对象的开发语言,是一种使用非常广泛的计算机编程语言。他是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持静态数据类型检查的,支持多重编程范式的通用程序设计语言,支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。语言灵活,运算符的数据结构丰富、具有结构化控制语句、程序执行效率高,而且同时具有高级语言与汇编语言的优点,与其它语言相比 ,可以直接访问物理地址,与汇编语言相比又具有良好的可读性和可移植性。其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,且支持封装、继承、多态等特性! 1.2 开发背景 随着科学技术的不断发展,计算机科学日渐成熟,计算机知识的普及使更多用户懂得利用计算机为自己的工作,生活提供方便。计算机其强大的功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。采用计算机进行信息化管理已成为衡量高校图书管理科学化和现代化的重要标志,而图书馆图书借阅管理的全面自动化、信息化则是其中重要的组成部分。 本系统是以建立一个以通过计算机数据管理图书借阅系统为目的,以用户浏览图书信息的网站系统。本系统具有灵活、方便、快捷、界面友好等优点,更加方便的在线了解图书信息,以及借阅图书。本系统研究的课题主要意义是通过完成这个图书管理系统,方便管理者的管理以及用户所需要查询的书籍,使大家在尽可能短的时间内完成对所需要图书的借阅。大大的方便了用户的需求在很大程度上提升了高校的教学水平。因此,本文所研究的图书馆借阅管理信息系统具有一定的使用价值和现实意义。 1.3 开发环境 软件平台是信息系统开发和运行所需的集成软件环境,设计和选择高效、实用、方便、功能齐全的软件平台,对信息系统的开发具有十分重要的意义。在结合实际开 发的需要并充分考虑各种软件平台的性能及适用范围和对软件平台的使用能力,本系统的软件平台选择如下: (1)操作系统 操作系统是计算机系统中最重要的系统软件,目前在微机上使用的桌面操作系统有 Windows 95/98/2000/me/xp/2003server等,可运行于前面所列举的各种操作系统,但建议使用Windows 2000以上系统。本系统在Windows XP操作系统下进行开发。 (2)支撑软件 支撑软件是协助人们开发和维护软件的工具和环境软件,包括编辑程序,数据库系统,集成开发环境等,本系统的支撑软件如下: 系统运行环境:visual C++6.0 系统编程语言:C/C++程序设计语言 第二章 算法思想 随着计算机技术的飞速发展,采用计算机进行信息化管理已成为衡量高校图书管理科学化和现代化的重要标志。为了减少工作人员的工作量,提高各个环节的工作效率,优化人师生的学习环境,我们需要研究一个高效快捷的图书借阅管理系统。 本系统是以建立一个以通过计算机数据管理图书借阅系统为目的,以用户浏览图书信息的系统。该系统的功能强大,其具有良好的界面,操作方便灵活、简洁高效。具有良好的健壮性,以会员制为主要借还书手段,各种功能设置方便图书管图书借阅管理。 2.1 系统需求分析 2.1.1会员管理功能 (1)添加会员:输入会员编号、会员姓名,进行会员添加,添加成功显示添加完毕。此功能可连续添加。新用户经注册方可登录系统并使用读者服务功能。 (2)查询会员:输入查询的会员编号,如果存在该会员,则会显示该会员信息,包括会员编号,会员姓名,已借出的图书数为几本;如果查询的会员编号不存在,则显示没找到指定会员。 (3)删除会员:请输入要删除的会员的编号,如果输入的会员编号不存在,则显示没有找到要删除的会员编号。系统会提示你还有会员要删除吗?输入Y,则可以继续输入想要删除的会员编号,并进行删除,如果不想在进行删除的话,可以选择N,进行删除会员结束操作,退回主界面。 (4)载入数据:实现数据载入功能。 (5)保存功能:能将记录保存在任何自定义的文件中。 (6)退出程序:如果想要退出程序,系统会提示警告: 程序结束后未存储的数据将消失确定要退出吗?(Y/N),选择y,则直接退出程序。 2.1.2图书管理功能 (1)增加图书:增加新的图书资料,同时需检查新书的图书编号是否已存在于原图书资料中,若已存在则显示这类书已有库存,可输入图书的入库量进行添加图书操作;如果该类图书为第一次进行添加,则应该输入该图书的图书编号,图书的名称,以及图书的入库量,输入完毕则图书添加完毕,可继续选择是否继续添加。 (2)查询图书:查询图书时需要输入查询的图书编号,如果该图书存在则会显示该图书的图书编号,图书名称,该图书的库存量以及图书的借出量。其中图书的库存量以及图书的借出量均可以累加。如果该图书已经被借出,则查询结果显示图书库存量以及图书的借出量。 (3)删除图书:通过图书编号查询该图书资料,若该编号存在,允许删除,否则提示没有找到你所要的图书。删除对象包括该图书资料以及“图书状态”和“借阅人”中与此书相关的所有记录。一旦进行删除成功,则所有该图书信息都将不存在。 (4)借书处理:如果需要进行借书操作,则必须保证该借书者已经进行过会员注册,借书操作需要输入要借出的书号,以及会员编号,如果会员编号输入错误,则显示会员编号输入错误,外借失败;如果输入要借出的书号进行借书操作,则系统会显示该编号图书的现有库存量,如果没有查询到该图书的编号则显示没有找到要借出的图书,如果借出成功,显示外借成功。 (5)还书处理: 如果需要进行还书操作,则必须保证该借书者是会员,还书操作需要输入要借出的书号,以及会员编号,如果会员编号输入错误,则显示会员编号输入错误,还书失败;如果输入要借出的书号进行借书操作,则系统会显示该编号图书的现有库存量,如果没有查询到该图书的编号则显示没有找到要借出的图书,如果还书成功,而显示归还成功。 2.2 系统总体设计 2.2.1 系统设计目标 本文研究开发的图书借阅管理系统用于支持高校完成图书馆图书借阅工作,有如下三个方面的目标: ●支持图书馆实现规范化的管理。 ●支持图书馆高效率完成图书馆增加图书以及会员借还书管理的日常业务,包括图书借阅管理系统的两大功能: (1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书) (2)会员管理(增加会员、查询会员、删除会员、借书信息) ● 支持图书馆实现无纸化办公,方便快捷,提高图书馆的管理效率,便利师生进入图书馆进行学习。 2.2.2 开发设计思想 基于以上系统设计目标,本文在图书馆图书借阅管理系统时遵循了以下开发设计思想: ●采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。 ●尽量达到操作过程中的直观、方便、实用、安全等要求。 ●系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。 ●系统应具备数据维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。 2.2.3 系统功能模块设计 本系统开发的意图是借由网络化的管理减轻图书馆工作人员的工作量,全面提高图书馆的管理效率及服务质量。实现两方面的功能,这两个方面分别是图书管理和会员管理。 (1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书); (2)会员管理(增加会员、查询会员、删除会员、借书信息)。 图书借阅管理系统主要包括以下功能模块,如图所示。 系统功能模块图 进入系统后需要先进行会员注册,才可以进行图书管理和会员管理。如图2.2.1 图 2.2.1 进行进入系统,显示功能列表,可选择任意系统,但在操作之前先要进行增加图书。如图2.2.2 图2.2.2 如果会员注册完毕,新书添加完毕,读者可以进行借书操作。如图2.2.3 图2.2.3 查询图书操作。如图2.2.4 图2.2.4 删除会员操作。如图2.2.5 图2.2.5 2.3 算法思想描述 本项目的实质是完成对学生成绩信息的建立、查找、插入、修改、删除等功能,可以首先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结果。 该程序的由多种函数实现,每个函数具有不同的功能,主要有主菜单函数,插入功能子菜单函数,查找功能子菜单函数,会员信息录入函数,显示函数,排序函数,插入函数以及查找函数。在每个区域中会调用不同的函数来实现主要的功能比如,在新增功能里调用子菜单函数;在显示信息时调用排序函数先对需要输出的信息进行排序,然后再输出;在查找功能里会调用查找函数来进行查找。 而最主要的函数有添加图书:考虑到图书的信息较多,所以用结构体对其定义。又考虑到图书量大,所以添加后要保存到文件中去。图书查询:用所学过的顺序查找法来写。删除图书:把保存到文件中的内容写到链表中去,用链表删除结点的方法来删除图书。我们所学过的指针这时正好用上。最后把各函数同主函数相连,用主函数调用它们,主要函数如下: <1>插入函数,它用插入排序来实现; <2>查找函数,用顺序查找法; <3>删除函数, 用链表删除结点的方法 第三章 算法实现 3.1 数据结构 要完成这个题目,主要是建立解决图书和会员的信息的存储,解决的方法是建立两个带头结点的单链表,分别用于存储图书和会员。解决了这个问题后就是如何建立这两个链表的联系了,解决的方法是在图书结点中设一个借书人编号,在会员结点中设一个数组用于存会员借的书。解决了这两个问题,剩下的工作就简单了。只需按链表的操作就可以了。 以会员管理为例,本项目的数据是一组会员的借阅信息,每条学生的借阅信息由会员编号、会员姓名和组成,这组会员的借阅信息具有相同特性,属于同一数据对象,相邻数据元素之间存在序偶关系。由此可以看出,这些数据具有线性表中数据元素的性质,所以该系统的数据采用线性表来存储。 顺序表是线性表的顺序存储结构,是指用一组连续的内存单元依次存放线性表的数据元素。在顺序存储结构下,逻辑关系相邻的两个元素在物理位置上也相邻,这是顺序表的特点。本项目可以采用顺序表的线性表顺序存储结构。 若一个数据元素仅占一个存储单元,第i个数据元素的地址为Loc(ai)=loc(a1)+(i-1) 假设线性表中每个元素占用k个存储单元,那么在顺序表中,线性表的第i个元素的存储位置与第1个元素的存储位置的关系是 Loc(ai)=loc(a1)+(i-1)*k 这里Loc(ai)是第i个元素的存储位置,loc(a1)是第1个元素的存储位置,也称为线性表的基址。显然,顺序表便于进行随机访问,故线性表的顺序存储结构是一种随机存储结构。 顺序表适宜于做查找这样的静态操作;顺序存储的优点是存储密度大,存储空间利用率高。缺点是插入或删除元素时不方便。 由于C语言的数组类型也有随机存储的特点,一维数组的机内表示就是顺序结构。因此,可用C语言的一维数组实现线性表的顺序存储。数组实现线性表的顺序存储的优点是可以随机存取表中任一元素O(1),存储空间使用紧凑; 缺点是在插入,删除某一元素时,需要移动大量元素O(n),预先分配空间需按最大空间分配,利用不充分,表容量难以扩充。 用结构体类型定义每个会员数据,故该数组中的每个数据的结构可描述为: typedef struct MemberInfo///会员结构 { long m_Code; /////会员编号 char m_Name[20]; ////会员名字 int l_Codes[6]; /////已借书的编号,最多5 MemberInfo* nextmember; ////下一会员 }MemberInfo; 3.2 程序模块 头文件及散列定义关键字 #include<stdlib.h> #include<stdio.h> #include<iostream.h> #define NULL 0 定义图书结构类型 typedef struct BookInfo/////图书结构 { int b_Code; ////图书编号 char b_Name[20]; /////名称 int b_Total; /////总数 int b_Out; ///借出数 BookInfo* nextbook; //////下一类图书 }BookInfo; 3.3 各模块之间的调用关系 模块内部的具体算法,包括输入、处理和输出,相当于c++语言的过程或函数设计。整体算法描述:建立一个结构来存放学生信息,再将这个结构存放在文件中,按要求通过调用各个函数对文件内的数据进行操纵及处理。 各个分函数算法描述:由主函数调用建立一个新的文件用于存储图书以及会员记录。 3.4 源程序代码 #include<stdlib.h> #include<stdio.h> #include<iostream.h> #define NULL 0 typedef struct BookInfo/////图书结构 { int b_Code; ////图书编号 char b_Name[20]; /////名称 int b_Total; /////总数 int b_Out; ///借出数 BookInfo* nextbook; //////下一类图书 }BookInfo; typedef struct MemberInfo///会员结构 { long m_Code; /////会员编号 char m_Name[20]; ////会员名字 int l_Codes[6]; /////已借书的编号,最多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 DelBook(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() { System* S=InitSystem(); int sel; do { cout<<"\n\t\t\t\t图书借阅管理系统主界面"<<endl; cout<<"\t\t\t※※※※※※※※※※※※※※※※※"<<endl; cout<<"\t\t\t※ 1.增加图书. ※\t"<<endl; cout<<"\t\t\t※ 2.查询图书. ※\t"<<endl; cout<<"\t\t\t※ 3.删除图书. ※\t"<<endl; cout<<"\t\t\t※ 4.借书处理. ※\t"<<endl; cout<<"\t\t\t※ 5.还书处理. ※\t"<<endl; cout<<"\t\t\t※ 6.添加会员. ※\t"<<endl; cout<<"\t\t\t※ 7.删除会员. ※\t"<<endl; cout<<"\t\t\t※ 8.查询会员. ※\t"<<endl; cout<<"\t\t\t※ 9.载入数据. ※\t"<<endl; cout<<"\t\t\t※ 10.保存数据. ※\t"<<endl; cout<<"\t\t\t※ 11.退出程序 ※\t"<<endl; cout<<"\t\t\t※※※※※※※※※※※※※※※※※"<<endl; cout<<"请选择:"; do { cin>>sel; if(sel>=1&&sel<=11)break; //选择1到11 cout<<"选择错误!\n重新输入"<<endl; }while(1); /*无限循环,while 只有为假才跳出循环。在循环体内用if 语句判断是否达到条件,用break 调出循环。*/ switch(sel) { case 1:AddBook(S);break; //添加图书 case 2:SearchBook(S,-1);break; //查询图书 case 3:DelBook(S);break; //删除图书 case 4:BrrowBook(S);;break; // 结束操作 case 5:TurnBackBook(S);break; //还书操作 case 6:AddMember(S);break; //添加会员 case 7:DelMember(S);break; //删除会员 case 8:SearchMember(S,-1);break; //查询会员 case 9:LoadData(S);break; //载入数据 case 10:StoreData(S);break; //保存数据 default:ExitSystem(); //退出程序 } }while(1); /*无限循环,while 只有为假才跳出循环。在循环体内用if 语句判断是否达到条件,用break 调出循环。*/ } System* InitSystem() //系统初始化 { System* S=(System*)malloc(sizeof(System)); //malloc向系统申请分配内存空间,系统信息初始化 S->BI=(BookInfo*)malloc(sizeof(BookInfo)); //图书信息初始化,sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数 S->BookTotal=0; //图书数量初始为0 S->BI->nextbook=NULL; //下一类图书信息初始为空 S->MI=(MemberInfo*)malloc(sizeof(MemberInfo)); //初始化会员信息 S->MemberTota=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 { cout<<"输入图书编号:"; cin>>Tempcode; if(m=SearchBook(S,Tempcode)) //图书编号库存已有 { cout<<"这类书已有库存.\n输入图书的入库量:"<<endl; cin>>num; m->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。*/ cout<<"输入图书的名称:"; cin>>t->b_Name; cout<<"输入图书的入库量:"; cin>>t->b_Total; t->b_Out=0; //图书借出量为0 t->nextbook=p->nextbook; p->nextbook=t; S->BookTotal++; //图书总数 } cout<<"添加完毕!"<<endl; cout<<"还要添加吗?(Y/N)"; //是否继续添加 cin>>sel; if(sel=='n'||sel=='N') { cout<<"结束添加"<<endl; return; } }while(1); } BookInfo* SearchBook(System* S,int code)//查询图书 { BookInfo* bi=S->BI->nextbook; //下一本图书 int bookcode; //图书编号 if(code==-1) { cout<<"请输入要查询的图书编号:"; cin>>bookcode; //输入图书编号 } else bookcode=code; while(bi&&bi->b_Code!=bookcode)bi=bi->nextbook; //判断输入图书编号于库存中的某个编号是否相等 if(code==-1) { if(!bi)//如果库存中没有此编号 cout<<"没找到你所要的图书."<<endl; else //库存中有此编号,显示信息 { cout<<"图书编号为:"<<bi->b_Code<<endl; cout<<"图书名称为:"<<bi->b_Name<<endl; cout<<"图书库存量为:"<<bi->b_Total<<endl; cout<<"图书借出量为:"<<bi->b_Out<<endl; } } return bi; } void DelBook(System* S)//删除图书 { BookInfo* bi; //定义一个bi BookInfo* pl=S->BI;//定义一个系统中指向图书管理的pl MemberInfo* memi; //会员结构中定义一个memi char sel; int tempcode; //输入的图书编号 int i; do { pl=S->BI; //间接引用运算符,表达式S->BI引用了指针s指向的结构体的成员BI。 bi=pl->nextbook; //下一本图书 memi=S->MI->nextmember; //下一个会员 cout<<"请输入要删除的图书的编号:"; cin>>tempcode;//输入要删除的图书编号 while(bi) { if(bi->b_Code==tempcode)//图书存在直接删除 cout<<"删除图书成功"<<endl;break; pl=bi; bi=bi->nextbook; } if(bi==0)//图书编号不存在 cout<<"没有找到要删除的图书"<<endl; else //删除图书 { pl->nextbook=bi->nextbook; S->BookTotal--; while(memi) { for(i=1;i<=memi->l_Codes[0];i++) { if(memi->l_Codes[i]==tempcode)break; } if(i<=memi->l_Codes[0]) { for(;i<memi->l_Codes[0];i++)memi->l_Codes[i]=memi->l_Codes[i+1]; memi->l_Codes[0]--; } memi=memi->nextmember; } free(bi); } cout<<"还有图书要删除吗?(Y/N)"; cin>>sel; if(sel=='N'||sel=='n') { cout<<"删除图书结束"<<endl; return; } }while(1); } void BrrowBook(System* S) //借书 { BookInfo* bi=S->BI->nextbook; BookInfo* p; char sel; int memcode; MemberInfo* mp; int tempcode; do { cout<<"输入要借出的书号:"; cin>>tempcode; p=SearchBook(S,tempcode); if(!p) { cout<<"没有找到要借出的图书."<<endl; } else { cout<<"此书的现存量为"<<(p->b_Total-p->b_Out)<<endl; if(!(p->b_Total-p->b_Out)) cout<<"没有足够的书了,外借失败."<<endl; else { cout<<"请输入会员编号:"; cin>>memcode; mp=SearchMember(S,memcode); if(!mp) cout<<"会员编号输入错误,外借失败"<<endl; else { if(mp->l_Codes[0]==5) cout<<"借书量不能超过5本"; else { p->b_Out++; mp->l_Codes[++mp->l_Codes[0]]=tempcode; cout<<"外借成功."<<endl; } } } } cout<<"\n还有图书要借出吗?(Y/N)"; cin>>sel; if(sel=='N'||sel=='n') { cout<<"外借操作结束."<<endl; return; } }while(1); } void TurnBackBook(System* S) //还书 { BookInfo* bi=S->BI->nextbook; BookInfo* p; MemberInfo* mp; int membercode; int tempcode; int i; char sel; do { cout<<"输入归还书号:"; cin>>tempcode; p=SearchBook(S,tempcode); if(!p) { cout<<"书号输入错误."<<endl; } else { cout<<"此书的现存量为"<<(p->b_Total-p->b_Out)<<endl; cout<<"请输入会员编号:"; cin>>membercode; if(!(mp=SearchMember(S,membercode))) cout<<"会员编号输入错误,归还失败"<<endl; else { p->b_Out--; for(i=1;i<=mp->l_Codes[0];i++){ if(mp->l_Codes[i]==tempcode)break; } while(i<mp->l_Codes[0]) { mp->l_Codes[i]=mp->l_Codes[i+1]; i++; } mp->l_Codes[0]--; cout<<"归还成功."<<endl; } } cout<<"还有要归还的图书吗?(Y/N)"; cin>>sel; if(sel=='N'||sel=='n'){ cout<<"归还结束."<<endl; return; } }while(1); } void AddMember(System* S) //添加会员 { int Tempcode; char sel; MemberInfo* p=S->MI; MemberInfo* t; do { cout<<"输入会员编号:"; cin>>Tempcode; t=(MemberInfo*)malloc(sizeof(MemberInfo)); t->m_Code=Tempcode; cout<<"输入会员姓名:"; cin>>t->m_Name; t->l_Codes[0]=0; t->nextmember=p->nextmember; p->nextmember=t; S->MemberTota++; cout<<"添加完毕!"<<endl; cout<<"还要添加吗?(Y/N)"; cin>>sel; if(sel=='n'||sel=='N'){ cout<<"结束添加"<<endl; return; } }while(1); } MemberInfo* SearchMember(System* S,int code) //查找会员 { MemberInfo* bi=S->MI->nextmember; int membercode; int i; if(cod- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 图书 借阅 管理 系统 数据结构 课程设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文