用C语言写一个图书管理系统,要包含(添加图书信息、借书还书、添加读者信息、)
时间: 2023-03-20 20:00:38 浏览: 192
好的,下面是一个用C语言编写的简单图书管理系统的示例,其中包含添加图书信息、借书还书、添加读者信息等功能。
```c
#include <stdio.h>
#include <string.h>
#define MAX_BOOKS 100 // 最大图书数量
#define MAX_READERS 100 // 最大读者数量
struct Book {
int id; // 图书编号
char title[50]; // 图书名称
char author[50]; // 图书作者
int status; // 图书状态:0代表可借,1代表已借出
};
struct Reader {
int id; // 读者编号
char name[50]; // 读者姓名
int book_id; // 读者借的图书编号,如果没有借图书则为0
};
struct Book books[MAX_BOOKS]; // 图书数组
struct Reader readers[MAX_READERS]; // 读者数组
int num_books = 0; // 当前图书数量
int num_readers = 0; // 当前读者数量
// 添加图书信息
void add_book() {
if (num_books == MAX_BOOKS) {
printf("图书数量已达到上限,无法添加新的图书!\n");
return;
}
struct Book book;
printf("请输入图书编号:");
scanf("%d", &book.id);
printf("请输入图书名称:");
scanf("%s", book.title);
printf("请输入图书作者:");
scanf("%s", book.author);
book.status = 0; // 初始状态为可借
books[num_books] = book;
num_books++;
printf("添加成功!\n");
}
// 借书
void borrow_book() {
int reader_id, book_id;
printf("请输入读者编号:");
scanf("%d", &reader_id);
printf("请输入图书编号:");
scanf("%d", &book_id);
// 查找读者和图书
struct Reader *reader = NULL;
for (int i = 0; i < num_readers; i++) {
if (readers[i].id == reader_id) {
reader = &readers[i];
break;
}
}
if (reader == NULL) {
printf("未找到该读者!\n");
return;
}
struct Book *book = NULL;
for (int i = 0; i < num_books; i++) {
if (books[i].id == book_id) {
book = &books[i];
break;
}
}
if (book == NULL) {
printf("未找到该图书!\n");
return;
}
if (book->status == 1) {
printf("该图书已被借出!\n");
return;
}
book->status = 1; // 设置为已借出状态
reader->book_id = book_id; // 记录读者借的图书编号
printf("借书成功!\n");
}
// 还书
void return_book() {
int reader_id, book_id;
printf("请输入读者编号:");
scanf("%d", &reader_id);
printf("请输入图书编号:");
scanf("%d", &book
阅读全文