diff --git a/LendBook.svg b/LendBook.svg new file mode 100644 index 0000000..3c832b7 --- /dev/null +++ b/LendBook.svg @@ -0,0 +1,671 @@ + + + + + + + + + + + + + + LendBook + + + + + + End + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + String reader1 + + + + + + + + String book1 + + + + + + + + Integer id + + + + + + Input id + + + + + + Input reader + + + + + + + + + + + + + reader == NULL + + + + + + + + + + + + + Output Reader* tmp = + (Reader*)malloc(sizeof + (Reader)); + + + tmp->next = NULL + ; + + + tmp->iAmount = + 0; + + + tmp->iNum = id; + + + + + + Input 读者名字 + + + + + + Input 读者性别 + + + + + + Input 读者职位 + + + + + + + + True + + + False + + + + + + + + + + + + + + + strcmp(tmp->position, + "student"==0 + + + + + + Output iMax = + 20; + day = 30; + + + + + + Output tmp->iMax = + 40; + tmp->day = 60; + + + + + True + + + False + + + + + + + + + + + Output tmp->aiBookId[i] = 0 + + + + + + i = 0 to iMax + + + + Next + + + Done + + + + + + + + Integer idbook + + + + + + Input idbook + + + + + + Input book + + + + + + + + + + + + + + + + + + + + id_book == book->iNum + + + + + + + + + + + + + + + + book->iAmount <= 1 + + + + + + + + + Output + 借阅失败该图书库存不足 + + + + + + Output 返回NULL + + + + + + + + True + + + False + + + + + + + + + + + + + (tmp->iAmount) + 1 > tmp-> + iMax + + + + + + + + + Output + 借阅失败该读者借阅图书数量已达上线 + + + + + + Output 返回NULL + + + + + + + + True + + + False + + + + + + + + + + Output 借阅成功 + + + + + + Output 返回reader + + + + + + True + + + False + + + + + + book!=NULL + + + + True + + + False + + + + + + Output book = book->next + + + + + + Output 没有找到该书 + + + + + + Output 返回reader1 + + + + + + + + + + + + + + + reader!=NULL + + + + + + + + + + + + + + + + + + + + + + + + + + + + id == reader->iNum + + + + + + + + + + + Output 图使馆当前的书册籍 + + + + + + Input 要借的书的编号 + + + + + + + + + + + + + + + + + + id_book == book->iNum + + + + + + + + + + + + + + + + book->iAmount <= 1 + + + + + + + + + Output 借阅失败 + + + + + + Output returnreader1 + + + + + + + + True + + + False + + + + + + + + + + + + + (tmpp->iAmount + 1 > tmpp + ->iMax + + + + + + + + + Output 借阅失败, + 该读者借阅图书数量已达上线 + + + + + + Output 返回reader1 + + + + + + + + True + + + False + + + + + + + + True + + + False + + + + + + book!=NULL + + + + True + + + False + + + + + + + + + + + + Output reader->iAmount++ + + + + + + Output reader->aiBookId + [tmpp->iAmount] = id_book + + + + + + Output 返回reader1 + + + + + + True + + + False + + + + + + Output book = book->next + + + + + + + reader != NULL + + + + True + + + False + + + + + + Output 没有找到该书 + + + + + + Output 按任意键返回 + + + + + + + Output reader = reader-> + next + + + + + True + + + False + + + + + diff --git a/README.md b/README.md index a90a85d..c96eba2 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,8 @@ ## 项目简介 -本系统是程序设计与问题求解课程设计项目,实现了库存零件 CSV 格式数据文件的读取和保存,以及数据的增删改查(CRUD)、排序和图表显示等功能。项目采用 C 语言编程实现,在 VS Code 集成开发环境(IDE)中用 GCC 进行编译。系统采用模块化设计,程序结构清晰,采用菜单驱动的命令行界面,操作便捷,能够用 CSV 格式读取和保存数据,通用性强,能够用图表展示数据,直观清楚。 -下载地址:https://bdgit.educoder.net/mac76tib2/test.git +本系统是程序设计与问题求解课程设计项目,实现了图书管理 CSV 格式数据文件的读取和保存,以及数据的增删改查(CRUD)等功能。项目采用 C 语言编程实现,在 VS Code 集成开发环境(IDE)中用 GCC 进行编译。系统采用模块化设计,程序结构清晰,采用菜单驱动的命令行界面,操作便捷,能够用 CSV 格式读取和保存数据,通用性强,能够用图表展示数据,直观清楚。 +下载地址:https://bdgit.educoder.net/mac76tib2/libray.git 项目开发过程中采用 Kanban(看板)进行任务管理和分工协作,并使用 Git 对程序代码和文档进行版本管理。任务分工情况如下: | 任务 | 设计 | 开发 | 测试 | 文档 | |------|-----|------|------|-----| @@ -47,7 +47,29 @@ 2.功能:调用ShowMainMenu()函数,显示主界面 ``` - +void ShowMainMenu() +{ + system("cls"); + printf("\n\n\n\n\n"); + printf("\t|----------------------欢迎进入---------------------------\n"); + printf("\t| 读者管理系统 \n"); + printf("\t| 1、查询图书馆的总信息 \n"); + printf("\t| 2、查询图书馆藏书信息 \n"); + printf("\t| 3、存入新书 \n"); + printf("\t| 4、旧书处理 \n"); + printf("\t| 5、根据书名检索书刊信息 \n"); + printf("\t| 6、查询读者的借阅信息 \n"); + printf("\t| 7、查询读者信息 \n"); + printf("\t| 8、读者借书 \n"); + printf("\t| 9、读者还书 \n"); + printf("\t| 10、文件保存 \n"); + printf("\t| 11、从文件读取 \n"); + printf("\t| 0、退出 \n"); + printf("\t|---------------------------------------------------------\n"); + printf("新打开程序需先添加管理员\n"); + printf("\n"); + printf("\t\t请选择(0-11):"); +} ``` ## C2:查询图书馆信息模块 @@ -195,7 +217,7 @@ void ShowLibInfo(const Book* book1, const Reader* reader1) 文件保存 从文件读取 上述各模块通过主程序(main)进行调用,系统模块图如下: - +![](images/text.drawio.svg) ## 详细设计 针对概要设计 diff --git a/ReaderInfo.svg b/ReaderInfo.svg new file mode 100644 index 0000000..12e8d23 --- /dev/null +++ b/ReaderInfo.svg @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + ReaderInfo + + + + + + End + + + + + + + + + + + + + + + + + + + + + String reader1 + + + + + + + + Integer id + + + + + + Input id + + + + + + Input reader1 + + + + + + + + + + + + + + + + + + + + id == reader->iNum + + + + + + + + + + + + + + + Output 读者id + + + + + + Output 读者姓名 + + + + + + Output 读者性别 + + + + + + Output 读者已借阅书的数量 + + + + + + Input reader + + + + + + + Output reader = reader-> + next + + + + + True + + + False + + + + + + reader + + + + True + + + False + + + + + + Output 没有找到该读者 + + + + + + Input reader + + + + + diff --git a/foundbook.svg b/foundbook.svg new file mode 100644 index 0000000..8a87361 --- /dev/null +++ b/foundbook.svg @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + foundbook + + + + + + End + + + + + + + + + + + + + + + + + + + + + String book1 + + + + + + + + Integer id + + + + + + Input id + + + + + + Input book1 + + + + + + + + + + + + + + + + + + + + + id==book->iNum + + + + + + + + + Output 该书的信息 + + + + + + Input book + + + + + + + + True + + + False + + + + + + Output book=book->next + + + + + + + book!=NULL + + + + True + + + False + + + + + + Output 没有找到该书 + + + + + + Input 需要查找的下一本书 + + + + + diff --git a/foundreaderinfo.svg b/foundreaderinfo.svg new file mode 100644 index 0000000..9e34424 --- /dev/null +++ b/foundreaderinfo.svg @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + foundreaderinfo + + + + + + End + + + + + + + + + + + + + + + + + + + + + String reader1 + + + + + + + + Integer id + + + + + + Input id + + + + + + Input reader + + + + + + + + + + + + + + + + + + + + id==reader->iNum + + + + + + + + + Output 读者借阅的编号 + + + + + + + + + + + + + + + + + + + + + reader->aiBookId[i] != 0 + + + + + + Output 读者的借阅编号 + + + + + + + True + + + False + + + + + + Input nextreader + + + + + + + i = 0 to reader->iMax + + + + Next + + + Done + + + + + + + Output reader = reader-> + next + + + + + True + + + False + + + + + + reader + + + + True + + + False + + + + + + Output 没有该读者 + + + + + + Input nextreader + + + + +