广工数据结构课程设计图书管理系统.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计报告 题目:图书管理系统 学 院 计算机学院 专 业 年级班别 学 号 学生姓名 指导教师 成 绩 ____________________ 2012年6月 1. 需求分析 ⑴ 图书管理系统中图书管理模块包括图书类型定义:书号、现存量、总存量为整型,书名、著者名为字符型,B树(2-3树)类型定义:关键字个数和关键字数组为整型、另外还有指向双亲的指针、指向子树的指针、记录单元指针;B树查找结果类型定义: 节点指针、关键字序号和查找标志变量为整型。 ⑵ 输出的形式; 该演示系统,没有使用文件,全部数据放在内存存放。四项基本业务都以书号为关键字进行的,采用了B树(2-3树)对书号建立索引,以B树的形式进行输出,形象且可以提高效率。 ⑶ 程序所能达到的功能; ① 采编入库:新书购入,将书号、书名、著者、册数、出版时间添加入图书账目中去,如果这种书在帐中已有,则只将总库存量增加,每新增一个书号则以凹入表的形式显示B树现状。 ② 清除库存: 实现某本书的全部信息删除操作 ,每清除一个书号则已以凹入表的形式显示B树现状。 ③ 图书借阅: 如果书的库存量大于零时则执行出借,登记借阅者的图书证号和姓名,系统自动抓取当前借阅时间和计算归还时间。 ④ 图书归还:注销借阅者信息,并改变该书的现存量。 ⑤显示:以凹入表的形式显示 B树。这个操作是为了调试和维护的目的而设置的。 ⑷ 测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。 入库书号:35,16,18,70,5,50,22,60,13,17,12,45,25,42,15,90,30,7 清除书号:45,90,50,22,42 2. 概要设计 (1).抽象数据类型B树定义: ADT BTree{ 数据对象:D是具有相同特性的数据元素的集合。各个数据元素均含有类型相同,可惟一标识数据元素的关键字。 数据关系:数据元素同属于一个集合并且: 一棵m阶的B树,或为空,或为满足下列特性的m叉树: 树中每个结点至多有m棵子树; 若根结点不是叶子结点,则至少有两棵子树; 除根之外的所有非终端结点至少有m/2(取上限)棵子树; 所有的非终端结点包含下列信息数据: (n,A0,K1,A1,K2,A2,K3,……,Kn,An) 其中:Ki(i=1,2,……n)为关键字,且KiKi+1(i=1,2,……n-1);Ai(i=0,……n)为指向子树根结点的指针,且指针Ai-1所指子树中所有结点的关键字均小于Ki(i=1,2,……n),An所指子树中所有结点的关键字均大于Kn,n(m/2(取上限)-1=n=m-1)为关键字的个数 基本操作: CreateBTree(BTree *T) 操作结果:构建B-树 BTreeSearch(sBTree *T,int k,sBTree* x,int index) 初始条件:树T存在,k为和关键字类型相同的给定值。 操作结果:若B树T中存在关键字等k的数据元素,则返回该元素的值或在表中的位置,否则返回“空”。 BTreeInsert(k) 初始条件:B树T存在,k为待插入的数据元素。 操作结果:若T中不存在关键字等于k的数据元素,则插入k到T中。 BTreeDeleteKeywords(sBTree* T,k); 初始条件:B树T存在,k为和关键字相同的给定值。 操作结果:若T中存在其关键字等于k的数据元素,则删除之。 BTreeTraverse(BTree T,Visit) 初始条件:B树T存在,Visit是对T结点的函数 操作结果:遍历B树T,对每个结点调用Visit函数 PrintBTree(sBTree* T); 初始条件:书库T存在。 操作结果:以凹入表形式显示B树T。 }ADT BTree (2).图书管理类型定义: ADT Book{ 数据对象:D={ai | ai∈BookType,i=1,2,3,……n,n=0,其中 每个数据元素ai含有类型相同,可惟一标识数据元素的关键字} 数据关系:数据元素同属一个集合 基本操作: InsertBook(sBTree *T,sKeywords keywords) 初始条件:B树T已存在。 操作结果:如果所要插入的书中已存在T树中,则只将该书的库存量增加,否则插入到T树中。 Rent(k) 初始条件:

文档评论(0)

wx171113 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档