XX 大 学
数据结构课程设计说明书
学 院 、 系 :
专
班
业:
级 :
XXX
XXX
XXX
学 生 姓 名:
XXX
学 号:
XXX
设 计 题 目 :
图书管理系统
起 迄 日 期: 2019 年 6 月 14 日~ 2019 年 6 月 28 日
指 导 教 师:
XXX
日期: 2019 年 6 月 28 日
1 设计目的
《数据结构》课程主要介绍最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计
算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论。
进行数据结构课程设计要达到以下目的:
了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作
风。
2 任务概述
设计一个计算机管理系统完成图书管理基本业务。设计内容如下:
(1) 每种书的登记内容包括书号、书名、著作者、现存量和库存量;
(2) 读者信息包括读者编号、姓名、借阅记录;
(3) 对书号建立索引表(线性表)以提高查找效率;
(4) 要实现入库、借阅、归还等基本功能。
设计要求:
(1) 符合课题要求,实现相应功能;
(2) 要求界面友好美观,操作方便易行;
(3) 注意程序的实用性、安全性。
3 本设计采用的数据结构
本系统采用的数据结构是线性链表,图书信息和读者信息都是以线性链表的形式存储,实现入
库、借阅、归还等基本功能都是基于对线性表的插入和修改完成的。
结构体定义如下:
此系统主要定义的三个结构体 typedef struct book,typedef struct borrow,typedef struct
reader 并为他们起别名为 BK,BO,RD。
其中结构体 BK(书的信息)包括 book_num(书的编号),book_name(书名),book_writer(书
的作者),book_kc(库存量),book_xy(现有量),指针变量*next 用于指向下一本书的结点。结构
体 BO(借书的信息)包括 borrow_book_num(书的编号)和 limit_date(还书日期);RD(读者的信
息)结构体中包括 reader_num(读者编号),reader_name(读者姓名),right(记录读者已借的数
量),BO borrow[Max](读者已借书的信息),指针变量*next 用于指向下一读者结点。
4 系统功能模块结构图及主要函数说明
(1) 整个系统功能模块结构图
此系统的模块划分如下:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
主菜单 供用户选择功能
初始化函数 初始化输入书籍信息
菜单选择函数
增加新书籍
增加新读者
查询书籍信息
查询读者信息
借书函数
还书函数
将书籍信息写入文件
将读者信息写入文件
加载已录入的书籍文件
加载已录入的读者文件
Menu();
Init_book();
Menu_select();
Add_New();
Find_Reader();
Find_Book();
Find_Reader()
Borrow_Book();
Return_Book();
Save_Book();
Save_Reader();
Load_Book();
Load_Reader();
系统流程图如下:
图 4.1 系统流程图
(2)新书入库函数
(3)借书函数
图 4.2 新书入库函数 N-S 图
图 4.3 借书函数 N-S 图
(4)还书函数
5 程序运行数据及其结果
图 4.4 还书函数 N-S 图
此程序采用的数据来源是将读者的信息,图书的信息,以及新书入库的信息都是从键盘输入,
然后结合文件,将线性链表中的信息存入文件中,然后保存在当前路径下的 Reader.dat 和 Book.dat 文
件中。
(1) 初始化录入图书信息
图 5.1 初始化录入图书信息图
(2)添加读者信息
涉及到我名字学号的截图我删去了,文档仅供参考!
(3)新书入库
图 5.2 添加读者信息图
图 5.3 新书入库图
(4)图书查询
(5)读者查询
图 5.4 查询图书图
涉及到我名字学号的截图我删去了,文档仅供参考!
图 5.5 查询读者图
(6)借书登记
涉及到我名字学号的截图我删去了,文档仅供参考!
图 5.6 借书模块图
(7)还书管理
涉及到我名字学号的截图我删去了,文档仅供参考!
图 5.7 还书模块图
(8)退出程序
涉及到我名字学号的截图我删去了,文档仅供参考!