From cb38b93061a25aff8b3b99d66599b50d35e9a997 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=8E=8B=E6=98=8A?= <956269333@qq.com>
Date: Sun, 21 May 2023 11:19:45 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E5=91=8A=E6=A8=A1=E6=9D=BF=E5=92=8Cc1?=
=?UTF-8?q?=E6=B5=81=E7=A8=8B=E5=9B=BE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 206 +++++++++-
images/text.drawio.svg | 866 ++++++++++++++++++++++++++++-------------
流程图/text.drawio | 269 -------------
3 files changed, 801 insertions(+), 540 deletions(-)
delete mode 100644 流程图/text.drawio
diff --git a/README.md b/README.md
index 8b9e6c1..0670f5e 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,205 @@
-# test2
+# 图书管理系统
+
+2023年5月21日
+成员1:王昊 成员2:孙艺哲 成员3:张江楠 成员4:郭佳慧
+
+## 项目简介
+
+本系统是程序设计与问题求解课程设计项目,实现了库存零件 CSV 格式数据文件的读取和保存,以及数据的增删改查(CRUD)、排序和图表显示等功能。项目采用 C 语言编程实现,在 VS Code 集成开发环境(IDE)中用 GCC 进行编译。系统采用模块化设计,程序结构清晰,采用菜单驱动的命令行界面,操作便捷,能够用 CSV 格式读取和保存数据,通用性强,能够用图表展示数据,直观清楚。
+下载地址:https://bdgit.educoder.net/mac76tib2/test.git
+项目开发过程中采用 Kanban(看板)进行任务管理和分工协作,并使用 Git 对程序代码和文档进行版本管理。任务分工情况如下:
+| 任务 | 设计 | 开发 | 测试 | 文档 |
+|------|-----|------|------|-----|
+| C1 | 王昊 | 王昊 | 张江楠 | 郭佳慧 |
+| C2·C3·C4·C5 | 张江楠 | 张江楠 | 郭佳慧 | 孙艺哲 |
+| C6·C7·C8·C9 | 郭佳慧 | 郭佳慧 | 孙艺哲 | 王昊 |
+| C10·C11·C12 | 孙艺哲 | 孙艺哲 | 王昊 | 张江楠 |
+
+每个成员工作量(百分比):
+| 王昊 | 张江楠 | 郭佳慧 | 孙艺哲 |
+|----|---|----|----|
+| 25 | 25 | 25 | 25 |
+## 关于图书管理系统
+
+建立一个图书馆管理系统,可以处理以下对象:
+(1)图书馆基本信息
+(2)图书馆的书籍
+(3)图书馆管理员
+(4)读者信息
+
+### 需求分析
+
+(1)查询图书馆的总信息
+(2)查询图书馆藏书信息
+(3)存入新书
+(4)旧书处理
+(5)根据书名检索书刊信息
+(6)查询读者的借阅信息
+(7)查询读者信息
+(8)读者借书
+(9)读者还书
+(10)文件保存
+(11)从文件读取
+
+
+## C1:函数模块
+1.函数原形:int main();
+2.功能:调用ShowMainMenu()函数,显示主界面
+```
+
+
+
+```
+## C2:查询图书馆信息模块
+
+函数原形:void ShowLibInfo(const Book* book, const Reader* reader);
+功能:接受两个形参,分别是图书的链表地址,读者的链表地址,并遍历两个链表,显示出图书的数量和读者的数量
+```
+
+
+
+```
+
+## C3:查找图书馆藏书信息模块
+
+1) 函数原形: void ShowLibBook(Book* book);
+2) 功能: 接受一个形参:图书的链表地址,遍历该链表,显示出所有图书的信息
+```
+
+
+
+
+```
+
+## C4:存入新书信息模块
+
+1) 函数原形: Book* AddBook(Book* book);
+2) 功能: 接受一个形参:图书的链表地址,利用尾插对链表进行修改,添加图书
+```
+
+
+
+
+```
+
+## C5:旧书处理信息模块
+
+1)函数原形: Book* DealoldBook(Book* book);
+2) 功能: 接受一个形参:图书链表的地址,遍历该链表,用书的编号进行匹配,找到该图书后删除该图书,否则返回
+```
+
+
+
+```
+
+## C6:查找图书信息模块
+
+1)函数原形: void foundBook(Book* book);
+2) 功能:接受一个形参:图书链表的地址,遍历该链表,用书的编号进行匹配,找到该图书后显示该图书,否则返回
+```
+
+
+
+
+
+```
+
+## C7:查询读者借阅信息模块
+
+1)函数原形: void foundReader_Info(Reader* reader);
+2) 功能: 接受一个形参:读者链表的地址,遍历该链表,用读者的编号进行匹配,找到该读者显示该读者的信息,否则返回
+```
+
+
+
+```
+
+## C8:查询读者借书模块
+
+1)函数原形: void foundReaderInfo(Reader* reader);
+2)功能: 接受一个形参:读者链表的地址,遍历该链表,用读者的编号进行匹配,找到该读者显示该读者的借阅信息,否则返回
+```
+
+
+```
+
+## C9:读者借书模块
+
+1)函数原形: Reader* LendBook(Reader* reader, Book* book);
+2)功能:接受两个形参:读者链表地址和图书链表地址,用读者的编号进行匹配,找到该读者后,用图书的编号进行匹配,进行借书,否则返回
+```
+
+
+```
+
+## C10:读者还书模块
+
+函数原形:void returnBook(Reader* reader, Book* book);
+功能:接受两个形参:读者链表地址和图书链表地址,用读者的编号进行匹配,找到该读者后,用图书的编号进行匹配,进行还书,否则返回
+```
+
+
+
+```
+## C11:保存信息模块
+
+1)函数原形: void save(Book* book);
+2) 功能:接受一个形参:book的链表地址,新建一个文件,将链表中的信息保存到硬盘中
+```
+
+
+
+```
+
+## C12:读取信息模块
+
+1)函数原形: Book* read1();
+2) 功能:打开一个文件,将文件中的信息读取到内存中,并返回一个Book类型的指针
+```
+
+
+```
+
+## 概要设计
+系统主要为开始界面和数据处理两大模块
+开始界面即显示主要功能
+数据处理包括:
+查询图书馆的总信息
+查询图书馆藏书信息
+存入新书
+旧书处理
+根据书名检索书刊信息
+查询读者的借阅信息
+查询读者信息
+读者借书
+读者还书
+文件保存
+从文件读取
+上述各模块通过主程序(main)进行调用,系统模块图如下:
+
+
+## 详细设计
+针对概要设计
+
+C2:void ShowLibInfo(const Book* book, const Reader* reader);\\查询图书馆的总信息
+
+C3:void ShowLibBook(Book* book);\\查询图书馆藏书信息
+
+C4:Book* AddBook(Book* book);\\存入新书
+
+C5:Book* DealoldBook(Book* book);\\旧书处理
+
+C6:void foundBook(Book* book);\\根据书名检索书刊信息
+
+C7:void foundReader_Info(Reader* reader);\\查询读者的借阅信息
+
+C8:void foundReaderInfo(Reader* reader);\\查询读者信息
+
+C9:Reader* LendBook(Reader* reader, Book* book);\\读者借书
+
+C10:void returnBook(Reader* reader, Book* book);\\读者还书
+
+C11:void save(Book* book);\\文件保存
+
+C12:Book* read1();\\从文件读取
-![](images/text.drawio.svg)
diff --git a/images/text.drawio.svg b/images/text.drawio.svg
index 8ee713c..f92e796 100644
--- a/images/text.drawio.svg
+++ b/images/text.drawio.svg
@@ -1,269 +1,597 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/流程图/text.drawio b/流程图/text.drawio
deleted file mode 100644
index 8ee713c..0000000
--- a/流程图/text.drawio
+++ /dev/null
@@ -1,269 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file