用c语言写一个图书管理系统。
时间: 2024-02-10 15:09:35 浏览: 52
好的,我为您编写一个基本的图书管理系统的C语言代码,功能包括添加书籍、查询书籍、借阅和归还书籍。注意,这是一个简单的示例,实际应用需求可能更加复杂,需要根据具体需求进行扩展和修改。下面是代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 100 //最大书籍数量
typedef struct {
char name[50]; //书名
char author[50]; //作者
char publisher[50]; //出版社
char ISBN[20]; //ISBN码
int borrowed; //是否借出,0表示未借出,1表示已借出
} Book;
Book books[MAX_BOOKS]; //存储所有书籍的数组
int num_books = 0; //已有书籍数量
//显示菜单
void show_menu() {
printf("欢迎使用图书管理系统\n");
printf("1. 添加书籍\n");
printf("2. 查询书籍\n");
printf("3. 借阅书籍\n");
printf("4. 归还书籍\n");
printf("5. 退出\n");
}
//添加书籍
void add_book() {
if(num_books >= MAX_BOOKS) {
printf("图书馆已满,无法添加新书籍。\n");
return;
}
Book new_book;
printf("请输入书名:");
scanf("%s", new_book.name);
printf("请输入作者:");
scanf("%s", new_book.author);
printf("请输入出版社:");
scanf("%s", new_book.publisher);
printf("请输入ISBN码:");
scanf("%s", new_book.ISBN);
new_book.borrowed = 0;
books[num_books] = new_book;
num_books++;
printf("书籍添加成功!\n");
}
//查询书籍
void search_book() {
char keyword[50];
printf("请输入要查询的关键字:");
scanf("%s", keyword);
int found = 0; //是否找到了匹配的书籍
for(int i = 0; i < num_books; i++) {
if(strstr(books[i].name, keyword) || strstr(books[i].author, keyword) || strstr(books[i].publisher, keyword) || strstr(books[i].ISBN, keyword)) {
printf("书名:%s\n", books[i].name);
printf("作者:%s\n", books[i].author);
printf("出版社:%s\n", books[i].publisher);
printf("ISBN码:%s\n", books[i].ISBN);
if(books[i].borrowed == 0) {
printf("书籍状态:未借出\n");
} else {
printf("书籍状态:已借出\n");
}
found = 1;
}
}
if(!found) {
printf("没有找到匹配的书籍。\n");
}
}
//借阅书籍
void borrow_book() {
char ISBN[20];
printf("请输入要借阅的书籍的ISBN码:");
scanf("%s", ISBN);
int found = 0; //是否找到了匹配的书籍
for(int i = 0; i < num_books; i++) {
if(strcmp(books[i].ISBN, ISBN) == 0) {
if(books[i].borrowed == 1) {
printf("该书籍已被借出,请选择其他书籍。\n");
} else {
books[i].borrowed = 1;
printf("借阅成功!\n");
}
found = 1;
break;
}
}
if(!found) {
printf("没有找到匹配的书籍。\n");
}
}
//归还书籍
void return_book() {
char ISBN[20];
printf("请输入要归还的书籍的ISBN码:");
scanf("%s", ISBN);
int found = 0; //是否找到了匹配的书籍
for(int i = 0; i < num_books; i++) {
if(strcmp(books[i].ISBN, ISBN) == 0) {
if(books[i].borrowed == 0) {
printf("该书籍未被借出,无法归还。\n");
} else {
books[i].borrowed = 0;
printf("归还成功!\n");
}
found = 1;
break;
}
}
if(!found) {
printf("没有找到匹配的书籍。\n");
}
}
int main() {
int choice;
do {
show_menu();
printf("请输入选项:");
scanf("%d", &choice);
switch(choice) {
case 1:
add_book();
break;
case 2:
search_book();
break;
case 3:
borrow_book();
break;
case 4:
return_book();
break;
case 5:
printf("谢谢使用!\n");
exit(0);
default:
printf("无效的选项,请重新输入。\n");
}
} while(1);
return 0;
}
```
这是一个基本的图书管理系统的C语言实现,功能比较简单,可以根据实际需求进行扩展和修改。
阅读全文