# Final_BookDBMaintainer **Repository Path**: open-dv/final_bookdbmaintainer ## Basic Information - **Project Name**: Final_BookDBMaintainer - **Description**: 课程设计:基于链表结构的图书管理系统 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-15 - **Last Updated**: 2021-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 课程设计:基于链表结构的图书管理系统 #### 介绍 课程设计:基于链表结构的图书管理系统 #### 软件架构 本软件由 [**数据处理模块**](Final_BookDBMaintainer/Database.h) 和 [**用户交互模块**](Final_BookDBMaintainer/Final_BookDBMaintainer.cpp) 构成。 #### 入门 主要看[**数据处理模块**](Final_BookDBMaintainer/Database.h)。 该模块使用一个链表(链结为`RecordChainNode`)存储所有Record(`Payload`)。 为了简便,当插入记录时始终尾插,断开节点时不清除被移除节点到其它节点的连接。 存储时,通过调用`Chain2Array`函数将链表中节点的`Payload`展开成数组,然后利用`fwrite`的数组写入功能存储为二进制文件; 读取时,通过`fread`数组读取功能将二进制文件作为数组读入内存,然后调用`InitFromArray`函数将数组读入链表。 项目中使用了一种称为面向对象的逻辑,此处`Database`是一个类。 我们将其视为一个对象——它处理的是与数据相关的一类操作,因此应当将这些函数封装到一个类中。 我们通过初始化一个`Database`的实例,从而获得对一系列特定数据进行快速操作的能力,而无需关心下层实现。(虽然这里下层实现也是自己写的就是了...) 你完全可以将`Database`引入到自己的项目中,即使你不知道什么是链表,也能通过简单的学习快速完成相关功能。 **注意:在头文件中完成所有代码结构是不当的写法,请不要模仿。** #### 授权信息 开放源代码项目,可在满足限制条件的前提下随意使用任何部分或全部的代码。 在遵循[License](LICENSE)的前提下,仍需满足以下附加条件才能获得授权: - 在学校项目(作业、考试、结业设计)中引用时须在显著位置注明出处,有报告者应将本仓库列入参考资料,且应添加到此处的链接 - 禁止用于竞赛 获得作者另行授权除外。