图书管理系统

  • 一.需求分析
    • 1.设计目的
    • 2.程序所能达到的功能
  • 二、概要设计
  • 三、详细设计
    • 3.1 创建hash表
    • 3.2 插入函数
    • 3.3 查找函数
    • 3.4 删除函数
    • 3.5 显示函数
    • 3.6 修改函数
    • 3.7 销毁函数
    • 3.8 文件导出
    • 3.9 文件导入
  • 四、调试分析与结果

一.需求分析

1.设计目的

随着科技的不断进步,图书的种类也随之日益增多。图书馆所需要处理的图书管理问题从而突出,而读者也许需要能够更方便的查找和查看图书馆的书籍。为解决以上问题,本系统设计时主要针对图书管理人员需求做出对图书信息的录入、删除、修改、导出等功能。

2.程序所能达到的功能

(1)用户通过输入书籍信息,以hash存储的方式保存书籍信息;
(2)用户通过输入书名查找书籍相关信息(ISBN,作者及库存);
(3)用户可以删除自己输入的无效信息;
(4)用户可以通过选择修改除书名外的书籍信息;
(5)用户可以查看自己所添加及导入的所有书籍信息;
(6)用户可以将已经保存的所有信息导出到相应的文件中,并把该文件内容导入;
(7)用户可以销毁所有已保存信息及保存空间;

二、概要设计

本系统通过建立hash表的方式存储图书信息,并实现插入、查找、删除、修改、显示及文件的导入导出功能,从而满足图书管理员及读者的相应要求。

三、详细设计

3.1 创建hash表

将书籍的书名、ISBN编号、作者名及库存定义为数据元素,之后使用hash表进行存储及操作。
1.hash表定义

2.hash函数

3.Hash表创建函数

3.2 插入函数

输入书籍的所有信息后,通过hash函数将书名转换来存储信息并存到相应的位置,如果该位置已有数据则采用头插法存储。

3.3 查找函数

通过输入书名使用hash函数定位信息在表中的位置后,遍历该位置的链表找到所找的信息并输出。

3.4 删除函数

输入书名后通过查找函数获取删除信息的地址,删除并保护后续结点。

3.5 显示函数

遍历hash表显示所有信息。

3.6 修改函数

输入书名通过查找函数获取信息保存位置的地址,可对图书的ISBN编号、作者名和库存数进行修改。

3.7 销毁函数

遍历hash表采用头删法删除表中信息后,释放hash表。

3.8 文件导出

使用fputs()函数将存入hash中的数据导出,同一数据元素的不同内容间用空格隔开,输出一本书的所有信息后换行。

3.9 文件导入

使用格式化函数fscanf()将数据导入到hash表中。

四、调试分析与结果

1.创建hash表

2.插入

3.查找

4.删除

5.修改

6.显示

7.销毁

8.文件导出/导入