没有合适的资源?快使用搜索试试~ 我知道了~
图书管理课程设计报告.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 177 浏览量
2021-12-15
13:34:24
上传
评论
收藏 492KB PDF 举报
温馨提示
试读
42页
图书管理课程设计报告.pdf
资源推荐
资源详情
资源评论
课程设计题目及要求
10. 图书管理 ( 难度 3)
【问题描述】
图书管理基本业务活动包括 : 对一本书的采编入库、清除库存、借阅和归还等等。试设
计一个图书管理系统,将上述业务活动借助于计算机系统完成。
【基本要求】
〈1〉每种书的登记内容至少包括书号、书名、著者、现存量和总库存量等五项。
〈2〉作为演示系统, 不必使用文件, 全部数据可以都在内存存放。 但是由于上述四项基
本业务活动都是通过书号 ( 即关键字〉进行的,所以要用 B树〈 24 树〉对书号建立索引,以
获得高效率。
〈3〉系统应实现的操作及其功能定义如下 :
① 采编入库 z 新购入一种书,经分类和确定书号之后登记到图书账目中去。如果这种
书在账中已有,则只将总库存量增加。
② 清除库存 : 某种书已无保留价值,将它从图书账目中注销。
③ 借阅 : 如果一种书的现存量大于零, 则借出一本, 登记借阅者的图书证号和归还期限。
④ 归还 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 树的查找算法是基础,入库和清除操作都要调用。难点在于删除关键字的算法,
因而只要算法对 2-3 树适用就可以了,暂时不必追求高阶 B树也适用的删除算法。
(2) 每种书的记录可以用动 (或静 ) 态链式结构。借阅登记信息可以链接在相应的那种书
的记录之后。
【进一步完成内容】
(l) 将一次会话过程 ( 即程序一次运行 ) 中的全部人机对话记入一个日志文件 "log" 中去。
(2) 增加列出某著者全部著作名的操作。思考如何提高这一操作的效率,参阅 教科书
12.6.2 节。
(3 〉增加列出某种书状态的操作。 状态信息除了包括这种书记录的全部信息外还包括最
早到期 ( 包括已逾期 ) 的借阅者证号,日期可用整数实现,以求简化。
(4) 增加预约借书功能。
完成情况:
基本数据结构设计
算法设计及流程图
输入输出设计
代码规范及注释
数据测试及调试
代码理解与说明
评语
综合评分
目录
第一部分 引言 .......................... 错误! 未定义书签。
1.1 课程设计的目标 ................... 错误! 未定义书签。
1.2 课程设计的基本要求 ............... 错误! 未定义书签。
第二部分 系统功能和原始数据 ............................. 1
2.1 原始数据 ......................................... 1
2.2 系统功能 ......................................... 1
第三部分 程序总体设计 . .................................. 2
3.1 数据结构 ......................................... 2
3.2 模块划分和层次结构 ............................... 3
3.3 函数原型清单 ..................... 错误! 未定义书签。
3.4 程序总体框架 ..................................... 4
3.5 程序组织 ......................................... 6
第四部分 功能模块函数设计和调试 ......................... 7
第五部分 程序清单 ...................................... 22
第六部分 课程设计总结 . ................................. 39
第七部分 参考资料 ...................................... 39
第一部分:引言
数据结构课程设计的主要目的是培养学生综合运用数据结构程序设计课程所学到的知
识,编写 C程序解决实际问题的能力, 以及严谨的工作态度和良好的程序设计习惯。 通过课
程设计的训练, 学生应该能够了解程序设计的基本开发过程, 掌握编写、 调试和测试 C语言
程序的基本技巧,充分理解结构化程序设计的基本方法。
数据结构程序设计的主要任务是要求学生遵循软件开发过程的基本规范,运用结构化
程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试数据结构程序
及编写设计报告。
第二部分:系统功能和原始数据
(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)系统功能
1.图书信息录入功能;
2.图书信息浏览功能;
3.按书名查询图书信息;
4.图书信息添加、删除功能;
备注:图书信息包括:书的编号、书名、作者名、剩余量、总库存量、借书者信息等。
第三部分:程序总体设计
(1) 数据结构
B-树,顺序表。
#define m 5 //B- 树的阶
#define M 20// 借相同书的最大人数
/************* 借阅者信息(用单链表方式存储) ***********/
struct data // 记录借书和还书日期的结构体类型
{
int year; // 记录年
int month; // 记录月
int day; // 记录日
};
typedef struct Re{
char number[20]; // 借阅者编号
struct data bro; // 记录读者的借书日期
struct data back; // 记录读者的还书日期
}Reader;
/************* 书的结构体 ***********/
typedef struct Book{
unsigned int key; // 书的编号
char bname[20]; // 书的名称
char writter[20]; // 作者姓名
unsigned int left; // 剩余量
unsigned int total; // 总库存量
Reader reader[M]; // 借书者记录
}Books;
/*************B- 树的存储结构 ***********/
typedef struct BTNode{
int keynum; // 结点关键子的个数
struct BTNode *parent; // 指向父结点的指针
Books key[m+1]; // 一个结点中最多存放的书的个数
struct BTNode *ptr[m+1]; // 指向孩子结点的指针
}BTNode,*BTree;
/************* 查找结果的存储结构体 ***********/
typedef struct{
BTNode *pt;
int i;
int tag;
}Result;
(2) 模块划分和层次结构
剩余41页未读,继续阅读
资源评论
erxingyoudu
- 粉丝: 1
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功