1、 课程设计题目及要求课程设计题目及要求 10.10. 图书管理图书管理( (难度难度 3)3) 【问题描述】 图书管理基本业务活动包括:对一本书的采编入库、清除库存、借阅和归还等等。试设 计一个图书管理系统,将上述业务活动借助于计算机系统完成。 【基本要求】 1每种书的登记内容至少包括书号、书名、著者、现存量和总库存量等五项。 2作为演示系统,不必使用文件,全部数据可以都在内存存放。但是由于上述四项基 本业务活动都是通过书号(即关键字进行的,所以要用 B 树24 树对书号建立索引,以 获得高效率。 3系统应实现的操作及其功能定义如下: 采编入库 z 新购入一种书,经分类和确定书号之后登记到图书
2、账目中去。如果这种 书在账中已有,则只将总库存量增加。 清除库存:某种书已无保留价值,将它从图书账目中注销。 借阅:如果一种书的现存量大于零, 则借出一本, 登记借阅者的图书证号和归还期限。 归还 z 注销对借阅者的登记,改变该书的现存量。 显示:以凹入表的形式显示 B 树。这个操作是为了调试和维护的目的而设置的。 【测试数据】 入库书号:35,16,18,70,5,50,22,60,13,17,12,45,25,42,15,90,30, 7 然后清除:45,90,50,22,42 其余数据自行设计。由空树开始,每插入删除一个关键字后就显示 B 树的状态。 【实现提示】 (1)24 树的查找算
3、法是基础,入库和清除操作都要调用。难点在于删除关键字的算法, 因而只要算法对 2-3 树适用就可以了,暂时不必追求高阶 B 树也适用的删除算法。 (2)每种书的记录可以用动(或静)态链式结构。借阅登记信息可以链接在相应的那种书 的记录之后。 【进一步完成内容】 (l)将一次会话过程(即程序一次运行)中的全部人机对话记入一个日志文件“log“中去。 (2)增加列出某著者全部著作名的操作。思考如何提高这一操作的效率,参阅教科书教科书 12.6.212.6.2 节节。 (3 增加列出某种书状态的操作。 状态信息除了包括这种书记录的全部信息外还包括最 早到期(包括已逾期)的借阅者证号,日期可用整数实现
4、,以求简化。 (4)增加预约借书功能。 完成情况:完成情况: 基本数据结构设计 算法设计及流程图 输入输出设计 代码规范及注释 数据测试及调试 代码理解与说明 评语 综合评分 目录 第一部分第一部分 引言引言 错误!未定义书签。 1.11.1 课程设计的目标课程设计的目标 错误!未定义书签。 1.21.2 课程设计的基本要求课程设计的基本要求 错误!未定义书签。 第二部分第二部分 系统功能和系统功能和原始数据原始数据 1 1 2.12.1 原始数据原始数据 1 1 2.22.2 系统功能系统功能 1 1 第三部分第三部分 程序总体设计程序总体设计 2 2 3.13.1 数据结构数据结构 2 2
5、 3.3.2 2 模块划分和层次结构模块划分和层次结构 3 3 3.3.3 3 函数原型清单函数原型清单 错误!未定义书签。 3.3.4 4 程序总体框架程序总体框架 4 4 3.3.5 5 程序组织程序组织 6 6 第四第四部分部分 功能模块函数设计和调试功能模块函数设计和调试 7 7 第第五五部分部分 程序清单程序清单 . . 2222 第六部分第六部分 课程设计总结课程设计总结 3939 第七部分第七部分 参考资料参考资料 . . 3939 第一部分:引言 数据结构课程设计的主要目的是培养学生综合运用数据结构程序设计课程所学到的知 识,编写 C 程序解决实际问题的能力,以及严谨的工作态度
6、和良好的程序设计习惯。通过课 程设计的训练,学生应该能够了解程序设计的基本开发过程,掌握编写、调试和测试 C 语言 程序的基本技巧,充分理解结构化程序设计的基本方法。 数据结构程序设计的主要任务是要求学生遵循软件开发过程的基本规范,运用结构化 程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试数据结构程序 及编写设计报告。 第二部分:系统功能和原始数据 (1 1) 原始数据原始数据 入库书号:35,16,18,70,5,50,22,60,13,17,12,45,25,42, 15,90,30,7 然后清除:45,90,50,22,42 (2 2)系统功能)系统功能 1.图书信息录入功能; 2.图书信息浏览功能; 3.按书名查询图书信息; 4.图书信息添加、删除功能; 备注:图书信息包括:书的编号、书名、作者名、剩余量、总库存量、借书者信息等。 第三部分:程序总体设计 (1 1) 数据结构数据结构 B-树,顺序表。 #define m 5 /