c语言编写图书管理系统,包含增加图书,删除图书,借阅图书,归还图书,查找图书功能
时间: 2024-03-04 18:07:36 浏览: 144
好的,这是一个基本的图书管理系统,以下是一些代码实现的思路:
1. 定义图书结构体
```
struct Book {
char title[50];
char author[50];
int book_id;
int is_available; // 标记图书是否可借阅
};
```
2. 定义图书数组和图书数量
```
#define MAX_BOOKS 100 // 最大图书数量
struct Book books[MAX_BOOKS];
int num_books = 0; // 当前图书数量
```
3. 实现增加图书功能
```
void add_book() {
struct Book book;
printf("请输入图书信息:\n");
printf("书名:");
scanf("%s", book.title);
printf("作者:");
scanf("%s", book.author);
printf("编号:");
scanf("%d", &book.book_id);
book.is_available = 1; // 初始时图书可借阅
books[num_books++] = book;
printf("添加成功!\n");
}
```
4. 实现删除图书功能
```
void delete_book() {
int book_id, i;
printf("请输入要删除的图书编号:");
scanf("%d", &book_id);
for (i = 0; i < num_books; i++) {
if (books[i].book_id == book_id) {
// 将后面的图书往前移动
for (; i < num_books - 1; i++) {
books[i] = books[i + 1];
}
num_books--;
printf("删除成功!\n");
return;
}
}
printf("未找到该图书!\n");
}
```
5. 实现借阅图书功能
```
void borrow_book() {
int book_id, i;
printf("请输入要借阅的图书编号:");
scanf("%d", &book_id);
for (i = 0; i < num_books; i++) {
if (books[i].book_id == book_id) {
if (books[i].is_available) {
books[i].is_available = 0; // 将图书标记为不可借阅
printf("借阅成功!\n");
} else {
printf("该图书已借出!\n");
}
return;
}
}
printf("未找到该图书!\n");
}
```
6. 实现归还图书功能
```
void return_book() {
int book_id, i;
printf("请输入要归还的图书编号:");
scanf("%d", &book_id);
for (i = 0; i < num_books; i++) {
if (books[i].book_id == book_id) {
if (!books[i].is_available) {
books[i].is_available = 1; // 将图书标记为可借阅
printf("归还成功!\n");
} else {
printf("该图书未借出!\n");
}
return;
}
}
printf("未找到该图书!\n");
}
```
7. 实现查找图书功能
```
void search_book() {
int option, i;
char keyword[50];
printf("请选择查找方式:\n");
printf("1. 按书名查找\n");
printf("2. 按作者查找\n");
scanf("%d", &option);
printf("请输入关键字:");
scanf("%s", keyword);
for (i = 0; i < num_books; i++) {
if (option == 1 && strstr(books[i].title, keyword)) {
printf("书名:%s,作者:%s,编号:%d,状态:%s\n", books[i].title, books[i].author, books[i].book_id, books[i].is_available ? "可借阅" : "已借出");
} else if (option == 2 && strstr(books[i].author, keyword)) {
printf("书名:%s,作者:%s,编号:%d,状态:%s\n", books[i].title, books[i].author, books[i].book_id, books[i].is_available ? "可借阅" : "已借出");
}
}
}
```
以上是一个基本的图书管理系统的代码实现思路,可以根据需要进行修改和完善。
阅读全文