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 + + + + + + + + + +
+
+
+ + 开始 + +
+
+
+
+ + 开始 + +
+
+ + + + + + +
+
+
+ + 输出界面 + +
+
+
+
+ + 输出界面 + +
+
+ + + + + + +
+
+
+ + 选择操作 + +
+
+
+
+ + 选择操作 + +
+
+ + + + + + + + +
+
+
+ + 选择1 + +
+
+
+
+ + 选择1 + +
+
+ + + + + + +
+
+
+ + 查询图书馆的总信息 + +
+
+
+
+ + 查询图书馆的总信息 + +
+
+ + + + + + + + +
+
+
+ + 选择2 + +
+
+
+
+ + 选择2 + +
+
+ + + + + + +
+
+
+ + 查询图书馆藏书信息 + +
+
+
+
+ + 查询图书馆藏书信息 + +
+
+ + + + + + + + +
+
+
+ + 选择3 + +
+
+
+
+ + 选择3 + +
+
+ + + + + + +
+
+
+ + 存入新书 + +
+
+
+
+ + 存入新书 + +
+
+ + + + + + + + +
+
+
+ 选择4 +
+
+
+
+ + 选择4 + +
+
+ + + + + + +
+
+
+ 旧书处理 +
+
+
+
+ + 旧书处理 + +
+
+ + + + + + + + +
+
+
+ 选择5 +
+
+
+
+ + 选择5 + +
+
+ + + + + + +
+
+
+ 查找图书 +
+
+
+
+ + 查找图书 + +
+
+ + + + + + + + +
+
+
+ 选择6 +
+
+
+
+ + 选择6 + +
+
+ + + + + + +
+
+
+ 查询读者的借阅信息 +
+
+
+
+ + 查询读者的借阅信息 + +
+
+ + + + + + + + +
+
+
+ 选择7 +
+
+
+
+ + 选择7 + +
+
+ + + + + + +
+
+
+ 查询读者信息 +
+
+
+
+ + 查询读者信息 + +
+
+ + + + + + + + +
+
+
+ 选择8 +
+
+
+
+ + 选择8 + +
+
+ + + + + + + + +
+
+
+ 选择9 +
+
+
+
+ + 选择9 + +
+
+ + + + + + + + +
+
+
+ 选择10 +
+
+
+
+ + 选择10 + +
+
+ + + + + + + + +
+
+
+ 选择11 +
+
+
+
+ + 选择11 + +
+
+ + + + + + +
+
+
+ 选择0 +
+
+
+
+ + 选择0 + +
+
+ + + + +
+
+
+ 结束 +
+
+
+
+ + 结束 + +
+
+ + + + + + +
+
+
+ 读者借书 +
+
+
+
+ + 读者借书 + +
+
+ + + + + + +
+
+
+ 读者还书 +
+
+
+
+ + 读者还书 + +
+
+ + + + + + +
+
+
+ 文件保存 +
+
+
+
+ + 文件保存 + +
+
+ + + + + + +
+
+
+ 从文件读取 +
+
+
+
+ + 从文件读取 + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + Text is not SVG - cannot display + + + +
\ 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