You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
test/README.md

142 lines
4.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 图书管理系统
2023年4月
成员1王昊 成员2孙艺哲 成员3张江楠 成员4郭佳慧
## 项目简介
本系统是程序设计与问题求解课程设计项目,实现了库存零件 CSV 格式数据文件的读取和保存以及数据的增删改查CRUD、排序和图表显示等功能。项目采用 C 语言编程实现,在 VS Code 集成开发环境IDE中用 GCC 进行编译。系统采用模块化设计,程序结构清晰,采用菜单驱动的命令行界面,操作便捷,能够用 CSV 格式读取和保存数据,通用性强,能够用图表展示数据,直观清楚。
下载地址https://bdgit.educoder.net/mac76tib2/test.git
## 关于图书管理系统
建立一个图书馆管理系统,可以处理以下对象:
1图书馆基本信息
2图书馆的书籍
3图书馆管理员
4读者信息
### 需求分析
1查询图书馆的总信息
2查询图书馆藏书信息
3存入新书
4旧书处理
5根据书名检索书刊信息
6查询读者的借阅信息
7查询读者信息
8读者借书
9读者还书
10文件保存
11从文件读取
## 算法的基本思想
1.涉及到的数据结构
/*图书结构体:图书编号,图书名,图书作者,出版社,库存量*/
typedef struct Book
{
int iNum;
char acName[15];
char acAuthor[15];
char acPress[15];
int iAmount;
struct Book* next;
}Book;
/*读者:读者编号,读者姓名,性别,可借书数,读者已借书的编号*/
typedef struct Reader
{
int iNum;
char acName[15];
char acSex[4];
char position[20];
int iMax; //Student 20本 teacher 40本
int iAmount;
int aiBookId[100];
int balance;
int day;
struct Reader* next;
}Reader;
## 函数模块
1.函数原形int main();
2.功能调用ShowMainMenu()函数,显示主界面
## 查询图书馆信息模块
函数原形void ShowLibInfo(const Book* book, const Reader* reader);
功能:接受两个形参,分别是图书的链表地址,读者的链表地址,并遍历两个链表,显示出图书的数量和读者的数量
## 查找图书馆藏书信息模块
1) 函数原形: void ShowLibBook(Book* book);
2) 功能: 接受一个形参:图书的链表地址,遍历该链表,显示出所有图书的信息
## 存入新书信息模块
1) 函数原形: Book* AddBook(Book* book);
2) 功能: 接受一个形参:图书的链表地址,利用尾插对链表进行修改,添加图书
## 旧书处理信息模块
1函数原形: Book* DealoldBook(Book* book);
2) 功能: 接受一个形参:图书链表的地址,遍历该链表,用书的编号进行匹配,找到该图书后删除该图书,否则返回
## 查找图书信息模块
1函数原形: void foundBook(Book* book);
2) 功能:接受一个形参:图书链表的地址,遍历该链表,用书的编号进行匹配,找到该图书后显示该图书,否则返回
## 查询读者借阅信息模块
1函数原形: void foundReader_Info(Reader* reader);
2) 功能: 接受一个形参:读者链表的地址,遍历该链表,用读者的编号进行匹配,找到该读者显示该读者的信息,否则返回
## 查询读者借书模块
1函数原形: void foundReaderInfo(Reader* reader);
2功能: 接受一个形参:读者链表的地址,遍历该链表,用读者的编号进行匹配,找到该读者显示该读者的借阅信息,否则返回
## 读者借书模块
1)函数原形: Reader* LendBook(Reader* reader, Book* book);
2)功能:接受两个形参:读者链表地址和图书链表地址,用读者的编号进行匹配,找到该读者后,用图书的编号进行匹配,进行借书,否则返回
## 读者还书模块
函数原形void returnBook(Reader* reader, Book* book);
功能:接受两个形参:读者链表地址和图书链表地址,用读者的编号进行匹配,找到该读者后,用图书的编号进行匹配,进行还书,否则返回
## 保存信息模块
1函数原形: void save(Book* book);
2) 功能接受一个形参book的链表地址新建一个文件将链表中的信息保存到硬盘中
## 读取信息模块
1函数原形: Book* read1();
2) 功能打开一个文件将文件中的信息读取到内存中并返回一个Book类型的指针