数据结构图书管理系统实验报告.docx
- 文档编号:17437315
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:11
- 大小:19.05KB
数据结构图书管理系统实验报告.docx
《数据结构图书管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《数据结构图书管理系统实验报告.docx(11页珍藏版)》请在冰点文库上搜索。
数据结构图书管理系统实验报告
竭诚为您提供优质文档/双击可除
数据结构图书管理系统实验报告
篇一:
数据结构-图书管理系统实验报告
数据结构课程设计报告
课程名称_________
题目名称
学生学院
专业班级
学号
学生姓名
指导教师
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)为关键字,且Ki n),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->key[i+1]和q->ptr[i+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。
}ADTbTree
2.系统时间类型定义:
ADTTime{
数据对象:
D={Tm是各种整型类型的系统时间格式定义}
数据关系:
数据元素同属一个集合
基本操作:
getDate(tm
操作结果:
初始化书库L为空书库。
Insertbook(
初始条件:
书库L和b已存在,result包含b书在书库中的位置或应该插入的位置。
操作结果:
如果书库中已存在b书,则只将b书的库存量增加,否则插入b书到书库L中。
Deletebook(
初始条件:
书库L和b存在。
操作结果:
如果书库中存在b书,则从书库中删除b书的信息,并返回oK,否则返回eRRoR
borrowbook(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存在。
操作结果:
显示所有图书基本信息。
}ADTbTree
3.主程序
intmain()
{
系统界面;
初始化;
for(;;)
{
显示菜单信息;
接受命令;
处理命令;
输出结果;
}
}|
4.本程序有四个调用模块
主程序模块
↓
图书管理模块
↓↓
b树单元模块系统时间模块
三、详细设计
《抽象数据类型b树算法详解》
/**************************抽象数据类型b-树存储定义*************************/typedefbooknodeRecord;//记录指针为图书结点类型typedefstructbTnode{
intkeynum;//结点关键字个数structbTnode*parent;//指向双亲指针
intkey[m+1];//(:
数据结构图书管理系统实验报告)关键字数组,0号单元未用structbTnode*ptr[m+1];//指向子树指针
Record*recptr[m+1];//记录指针,0号单元未用}bTnode,*bTree;//b树节点类型和b树类型
typedefstruct{
bTnode*pt;//指向找到的结点或应该插入的结点inti;//1...m,在结点中关键字序号inttag;//1表示查找成功,0表示查找失败}Result;//b树查找结果类型
/****************************************************************************//**************************b-树操作定义************************************/intsearch(bTreep,intk)
/*在b树p中查找关键字k的位置i,使得p->node[i].key≤K<p->node[i+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;i keynumi++);returni;
篇二:
数据结构课程设计报告图书馆管理系统
数据结构与算法
课程设计报告
(20XX--20XX年度第2学期)
图书馆管理系统
学院英才实验学院
张浩然
20XX001040
20XX001040008
陈端兵
20XX.6学生姓名班学级号指导教师完成日期
1.1课程设计目的
巩在图书馆中,当借书人员越来越多时,对图书馆图书管理
是一项琐碎、复杂而又需要十分认真的工作,对图书馆图书借出和还回图书及剩余图书信息的统计工作量很大,但又是不允许出错的,如果实行手工操作,每天借出图书和还回图书信息需要手工填写大量的表格,这就会耗费图书馆管理员大量的时间和精力。
为了减轻图书馆管理员的负担,提高工作效率,同时也为了提高图书馆的现代化服务水平,因此,我们用所学的c#知识做了一个图书馆信息管理系统,让我们可以很好的利用图书馆信息管理系统来登记图书馆图书信息。
固并加深学生对c++语言程序设计知识的理解;
1.2课程设计内容
1)利用c语言设计一个图书馆管理系统。
2)基本要求:
[1]:
管理员登陆后,可以进行的操作
(1)添加学生的信息(学号,姓名,院系,最大借阅的图书数量等);
(2)修改学生的信息(学号,姓名,院系,最大借阅的图书数量);
(3)删除学生的信息(学号,姓名,院系,最大借阅的图书数量),如果某个学生退学,就要清除他的信息;
(4)查看学生的信息;
(5)添加图书的信息(图书号,书名,作者,出版社,数量等);
(6)修改图书的信息(图书号,书名,作者,出版社,数量等);
(7)删除图书的信息(图书号,书名,作者,出版社,数量等);
(8)查看图书的信息;
[2]:
学生登陆后,可以进行的操作
(1)查看学生自己借阅的数目信息;
(2)借阅图书;
(3)归还图书;
(备注:
要求将学生和图书信息存放到外存上,每次从外存读取数据。
)
1
2系统需求分析
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
四、概要设计
图书信息和读者信息都采用结构体类型保存。
图书信息里面包括:
图书编号、图书名称、作者、现有量、库存量、指向下一节点的指针。
读者信息里面包括:
读者编号、读者姓名、借书数量、可借图书数量、指向下一节点的指针。
所有图书和读者都分别以链表的形式存储,并以编号为唯一主键。
采用链表形式便于数据的添加与删改。
主要的操作为:
系统初始化,图书入库,读者信息登记,图书信息和读者信息文件的保存。
五、详细设计
数据结构的定义:
图书信息:
typedefstructbook{
2
charbook_num[10];charbook_name[20];charbook_writer[10];intbook_xy;intbook_kc;structbook*next;}bK;读者信息:
typedefstructreader{
charreader_num[10];charreader_name[10];intright;boborrow[max];structreader*next;}RD;算法描述:
进入系统后首先进行图书初始化,输入图书的信息。
1)初始化
先要输入读者信息。
3
2)采编入库
否
4
3)输入读者信息
5)退出和文件保存
是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 图书 管理 系统 实验 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)