图书管理系统
一.需求分析
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.文件导出/导入