#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 100
#define MAX_READERS 100
#define MAX_NAME_LENGTH 50
#define MAX_DEPARTMENT_LENGTH 50
#define MAX_BORROW_INFOS 100
// 定义书籍结构体
typedef struct {
int book_id;
char title[MAX_NAME_LENGTH];
char author[MAX_NAME_LENGTH];
int total_copies;
int available_copies;
} Book;
// 定义读者结构体
typedef struct {
int reader_id;
char name[MAX_NAME_LENGTH];
char department[MAX_DEPARTMENT_LENGTH];
} Reader;
// 定义借阅信息结构体
typedef struct {
int book_id;
int reader_id;
char borrow_date[MAX_NAME_LENGTH];
char due_date[MAX_NAME_LENGTH];
} BorrowInfo;
// 全局变量
Book books[MAX_BOOKS];
Reader readers[MAX_READERS];
BorrowInfo borrow_infos[MAX_BORROW_INFOS];
int num_books = 0;
int num_readers = 0;
int num_borrow_infos = 0;
// 函数声明
void addBook();
void deleteBook(int book_id);
void findBook(int book_id);
void addReader();
void deleteReader(int reader_id);
void findReader(char *name);
void borrowBook();
void returnBook();
void displayReaders(); // 显示读者信息
void displayBorrowInfos(); // 显示图书借阅信息
void displayBooks(); // 显示图书信息
void saveDataToFile(); // 保存数据到文件
void loadDataFromFile(); // 从文件加载数据
// 主函数
int main() {
loadDataFromFile(); // 加载数据
int choice;
do {
printf("\n***** 图书借阅系统 *****\n");
printf("1. 添加书籍\n");
printf("2. 删除书籍\n");
printf("3. 查找书籍\n");
printf("4. 添加读者\n");
printf("5. 删除读者\n");
printf("6. 查找读者\n");
printf("7. 借阅书籍\n");
printf("8. 还书\n");
printf("9. 显示读者信息\n"); // 新增的显示读者信息选项
printf("10. 显示图书借阅信息\n"); // 新增的显示图书借阅信息选项
printf("11. 显示图书信息\n"); // 新增的显示图书信息选项
printf("12. 保存数据到文件\n"); // 新增的保存数据到文件选项
printf("13. 退出\n");
printf("请输入您的选择:");
scanf("%d", &choice);
switch(choice) {
case 1:
addBook();
break;
case 2: {
int book_id;
printf("请输入要删除的书籍的书号:");
scanf("%d", &book_id);
deleteBook(book_id);
break;
}
case 3: {
int book_id;
printf("请输入要查找的书籍的书号:");
scanf("%d", &book_id);
findBook(book_id);
break;
}
case 4: