数据结构图书管理系统实验报告(共15页).docx
精选优质文档-倾情为你奉上数据结构图书管理系统实验报告篇一:数据结构-图书管理系统实验报告数据结构课程设计报告课程名称_题目名称学生学院专业班级学号学生姓名指导教师20XX年7月8日一、需求分析1.图书管理系统中图书管理模块包括图书类型定义:书号、现存量、总存量,出版时间为整型,定价为浮点型,书名、著者名为字符型,借阅指针、预约指针为读者类型;读者类型定义:证号为整型、姓名为字符型,另外借阅类型和预约类型组合成其中的共用体类型。b树(2-3树)类型定义:关键字个数和关键字数组为整型、另外还有指向双亲的指针、指向子树的指针、记录单元指针;b树查找结果类型定义:节点指针、关键字序号和查找标志变量为整型。2.演示程序以用户和计算机的对话方式进行,在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令,相应的输入数据和运算结果显示在后面。该演示系统,没有使用文件,全部数据放在内存存放。四项基本业务都以书号为关键字进行的,采用了b树(2-3树)对书号建立索引,以提高效率。3.图书管理系统实现功能:采编入库:新书购入,将书号、书名、著者、册数、出版时间添加入图书账目中去,如果这种书在帐中已有,则只将总库存量增加,每新增一个书号则以凹入表的形式显示b树现状。清除库存:实现某本书的全部信息删除操作,每清除一个书号则已以凹入表的形式显示b树现状。图书借阅:如果书的库存量大于零时则执行出借,登记借阅者的图书证号和姓名,系统自动抓取当前借阅时间和计算归还时间。图书预约:如果某书库存为零,则记录预约者姓名和证号,系统自动抓取当前预约时间和取书时间。图书归还:注销借阅者信息,并改变该书的现存量。作者专区:输入作者名字,系统将查找相应作者全部著作并显示出来。图书信息:可以根据书号查阅此书基本信息、借阅信息和预约信息,亦可以查找全部图书基本信息。二、概要设计1.抽象数据类型b树定义:ADTbTree数据对象:D是具有相同特性的数据元素的集合。各个数据元素均含有类型相同,可惟一标识数据元素的关键字。数据关系:数据元素同属于一个集合并且:一棵m阶的b树,或为空,或为满足下列特性的m叉树:树中每个结点至多有m棵子树;若根结点不是叶子结点,则至少有两棵子树;除根之外的所有非终端结点至少有m/2(取上限)棵子树;所有的非终端结点包含下列信息数据:(n,A0,K1,A1,K2,A2,K3,?,Kn,An)其中:Ki(i=1,2,?n)为关键字,且Kin),An所指子树中所有结点的关键字均大于Kn,n(m/2(取上限)-1基本操作:searchbTree(T,key);初始条件:b树T存在,key为和关键字类型相同的给定值。操作结果:若T中存在关键字等于key的数据元素,则返回该元素的值或在表中的位置,否则返回“空”。Insert(T,i,k,p,recptr)初始条件:b树q和p存在,i、k是指定变量,recptr指针有效操作结果:将k和ap分别插入到q->keyi+1和q->ptri+1,并插入关键字为k的记录recptrInsertbTree(初始条件:b树T存在,e为待插入的数据元素。操作结果:若T中步存在关键字等于e.key的数据元素,则插入e到T中。DeletebTree(初始条件:b树T存在,key为和关键字类型相同的给定值。操作结果:若T中存在其关键字等于key的数据元素,则删除之bTreeTraverse(bTreeT,Visit)初始条件:b树T存在,Visit是对T结点的函数操作结果:遍历b树T,对每个结点调用Visit函数showbTree(T);初始条件:b树T存在。操作结果:以凹入表形式显示b树T。ADTbTree2.系统时间类型定义:ADTTime数据对象:D=Tm是各种整型类型的系统时间格式定义数据关系:数据元素同属一个集合基本操作:getDate(tm操作结果:初始化书库L为空书库。Insertbook(初始条件:书库L和b已存在,result包含b书在书库中的位置或应该插入的位置。操作结果:如果书库中已存在b书,则只将b书的库存量增加,否则插入b书到书库L中。Deletebook(初始条件:书库L和b存在。操作结果:如果书库中存在b书,则从书库中删除b书的信息,并返回oK,否则返回eRRoRborrowbook(L,初始条件:书库L存在,b书是书库中的书并且可被读者R借阅。操作结果:借出一本b书,记录信息。Returnbook(L,初始条件:书库L存在。操作结果:若书库L中有读者R借阅b书的记录,则注销该记录,改变b书现存量,并返回oK,书不存在或无该读者记录则返回eRRoR。bespeakbook(L,初始条件:书库L存在,b书是书库中的书,R为借阅者。操作结果:为读者R预约b书。ListAuthor(L,author);初始条件:书库L存在,author为指定作者姓名操作结果:显示author的所有著作。showbookinfo(L,b);初始条件:书L存在。操作结果:若书库L中存在书b,则显示b书基本信息并返回oK,否则返回eRRoR。printAllbooks(L);初始条件:书库L存在。操作结果:显示所有图书基本信息。ADTbTree3.主程序intmain()系统界面;初始化;for(;)显示菜单信息;接受命令;处理命令;输出结果;|4.本程序有四个调用模块主程序模块图书管理模块b树单元模块系统时间模块三、详细设计抽象数据类型b树算法详解/*抽象数据类型b-树存储定义*/typedefbooknodeRecord;/记录指针为图书结点类型typedefstructbTnodeintkeynum;/结点关键字个数structbTnode*parent;/指向双亲指针intkeym+1;/(:数据结构图书管理系统实验报告)关键字数组,0号单元未用structbTnode*ptrm+1;/指向子树指针Record*recptrm+1;/记录指针,0号单元未用bTnode,*bTree;/b树节点类型和b树类型typedefstructbTnode*pt;/指向找到的结点或应该插入的结点inti;/1.m,在结点中关键字序号inttag;/1表示查找成功,0表示查找失败Result;/b树查找结果类型/*/*b-树操作定义*/intsearch(bTreep,intk)/*在b树p中查找关键字k的位置i,使得p->nodei.keyKp->nodei+1.key*/ResultsearchbTree(bTreeT,intk)/在m阶b树T上查找关键字K,返回结果(pt,i,tag)。若查找成功,则特征值/tag=1,指针pt所指结点中第i个关键字等于K;否则特征值tag=0,等于K的/关键字应插入在指针pt所指结点中第i和第i+1个关键字之间。inti;for(i=0;ikeynumi+);returni;篇二:数据结构课程设计报告图书馆管理系统数据结构与算法课程设计报告(20XX-20XX年度第2学期)图书馆管理系统学院英才实验学院张浩然20XX20XX陈端兵20XX.6学生姓名班学级号指导教师完成日期1.1课程设计目的巩在图书馆中,当借书人员越来越多时,对图书馆图书管理是一项琐碎、复杂而又需要十分认真的工作,对图书馆图书借出和还回图书及剩余图书信息的统计工作量很大,但又是不允许出错的,如果实行手工操作,每天借出图书和还回图书信息需要手工填写大量的表格,这就会耗费图书馆管理员大量的时间和精力。为了减轻图书馆管理员的负担,提高工作效率,同时也为了提高图书馆的现代化服务水平,因此,我们用所学的c#知识做了一个图书馆信息管理系统,让我们可以很好的利用图书馆信息管理系统来登记图书馆图书信息。固并加深学生对c+语言程序设计知识的理解;1.2课程设计内容1)利用c语言设计一个图书馆管理系统。2)基本要求:1:管理员登陆后,可以进行的操作(1)添加学生的信息(学号,姓名,院系,最大借阅的图书数量等);(2)修改学生的信息(学号,姓名,院系,最大借阅的图书数量);(3)删除学生的信息(学号,姓名,院系,最大借阅的图书数量),如果某个学生退学,就要清除他的信息;(4)查看学生的信息;(5)添加图书的信息(图书号,书名,作者,出版社,数量等);(6)修改图书的信息(图书号,书名,作者,出版社,数量等);(7)删除图书的信息(图书号,书名,作者,出版社,数量等);(8)查看图书的信息;2:学生登陆后,可以进行的操作(1)查看学生自己借阅的数目信息;(2)借阅图书;(3)归还图书;(备注:要求将学生和图书信息存放到外存上,每次从外存读取数据。)12系统需求分析2.1系统目标实现一个留言板2.2主体功能1留言能选择保存路径2.能签署留言日期3.能选择留言打开路径并阅读留言4.能转存留言。2.3开发环境Vc+6.0,c#环境3逻辑设计方案(1)图书管理系统概念模型2图2-1图书管理系统的整体e-R图(2)图书管理系统逻辑模型读者信息:(读者编号、姓名、单位、性别、读者类别名、登记时间、已借书数量、电话、住址、超期次数)读者类别信息:(读者类别名、可借书数量、借书日期)书籍信息:(图书编号、书名、作者、类别编号、出版社、出版日期、入库时间、馆藏数量、可借复本、价格)书籍类别信息:(类别编号、图书类别名)3篇三:数据结构图书管理系统课程设计报告一、设计题目与要求【问题描述】设计一个计算机管理系统完成图书管理基本业务。【基本要求】(1)每种书的登记内容包括书号、书名、著作者、现存量和库存量;(2)对书号建立索引表(线性表)以提高查找效率;(3)系统主要功能如下:采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;归还:注销对借阅者的登记,改变该书的现存量。二、小组分工小组成员:小组分工:图书初始化、新书入库、登记读者信息、文件保存借书系统、还书系统图书信息查询、读者信息查询三、需求分析图书管理系统共需要八个模块,分别是1图书初始化、2新书入库、3添加读者信息、4借书模块、5还书模块、6查询图书信息、7查询读者信息、8退出。我负责其中的四个模块,如下所示:1)图书初始化输入图书的一些信息,编号、作者、书名、数量,使有一定的库存。2)新书入库新书采编入库,输入编号后如果有次数只需输入数量,没有则继续输入书名、作者、数量。3)添加读者信息读者信息初始化,输入读书证号和姓名,只有输入书证号和姓名才能进行借书还书4)退出和文件保存退出读书管理系统并保存读者和图书信息。1四、概要设计图书信息和读者信息都采用结构体类型保存。图书信息里面包括:图书编号、图书名称、作者、现有量、库存量、指向下一节点的指针。读者信息里面包括:读者编号、读者姓名、借书数量、可借图书数量、指向下一节点的指针。所有图书和读者都分别以链表的形式存储,并以编号为唯一主键。采用链表形式便于数据的添加与删改。主要的操作为:系统初始化,图书入库,读者信息登记,图书信息和读者信息文件的保存。五、详细设计数据结构的定义:图书信息:typedefstructbook2charbook_num10;charbook_name20;charbook_writer10;intbook_xy;intbook_kc;structbook*next;bK;读者信息:typedefstructreadercharreader_num10;charreader_name10;intright;boborrowmax;structreader*next;RD;算法描述:进入系统后首先进行图书初始化,输入图书的信息。1)初始化先要输入读者信息。32)采编入库否43)输入读者信息5)退出和文件保存是专心-专注-专业