数据结构项目:图书管理系统

一.需求分析

1.设计目的

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

2.程序所能达到的功能

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

二、概要设计

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

在这里插入图片描述

三、详细设计

3.1 创建hash表

将书籍的书名、ISBN编号、作者名及库存定义为数据元素,之后使用hash表进行存储及操作。
1.hash表定义
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.文件导出/导入
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值