帮我用c语言写一个图书管理系统的代码
时间: 2023-08-28 15:40:15 浏览: 89
好的,以下是一个简单的图书管理系统的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 100 // 最大图书数量
#define MAX_NAME_LEN 50 // 书名最大长度
// 图书结构体
typedef struct book {
char name[MAX_NAME_LEN];
int id;
int quantity;
} Book;
// 图书馆结构体
typedef struct library {
Book books[MAX_BOOKS];
int num_books;
} Library;
// 初始化图书馆
void init_library(Library* lib) {
lib->num_books = 0;
}
// 添加图书
void add_book(Library* lib, Book b) {
if (lib->num_books < MAX_BOOKS) {
lib->books[lib->num_books] = b;
lib->num_books++;
printf("添加成功!\n");
} else {
printf("图书馆已满,无法添加!\n");
}
}
// 查找图书
void find_book(Library* lib, char* name) {
int found = 0;
for (int i = 0; i < lib->num_books; i++) {
if (strcmp(lib->books[i].name, name) == 0) {
printf("《%s》的编号为:%d,数量为:%d\n", lib->books[i].name, lib->books[i].id, lib->books[i].quantity);
found = 1;
break;
}
}
if (!found) {
printf("未找到《%s》!\n", name);
}
}
// 修改图书数量
void update_book_quantity(Library* lib, int id, int quantity) {
int found = 0;
for (int i = 0; i < lib->num_books; i++) {
if (lib->books[i].id == id) {
lib->books[i].quantity = quantity;
printf("修改成功!\n");
found = 1;
break;
}
}
if (!found) {
printf("未找到编号为%d的图书!\n", id);
}
}
// 删除图书
void delete_book(Library* lib, int id) {
int found = 0;
for (int i = 0; i < lib->num_books; i++) {
if (lib->books[i].id == id) {
for (int j = i; j < lib->num_books - 1; j++) {
lib->books[j] = lib->books[j + 1];
}
lib->num_books--;
printf("删除成功!\n");
found = 1;
break;
}
}
if (!found) {
printf("未找到编号为%d的图书!\n", id);
}
}
// 显示所有图书
void display_books(Library* lib) {
printf("图书馆有以下%d本书:\n", lib->num_books);
for (int i = 0; i < lib->num_books; i++) {
printf("%d. 《%s》 数量:%d\n", i + 1, lib->books[i].name, lib->books[i].quantity);
}
}
// 主函数
int main() {
Library lib;
init_library(&lib);
while (1) {
printf("请选择操作:\n");
printf("1. 添加图书\n");
printf("2. 查找图书\n");
printf("3. 修改图书数量\n");
printf("4. 删除图书\n");
printf("5. 显示所有图书\n");
printf("0. 退出\n");
int choice;
scanf("%d", &choice);
if (choice == 0) {
break;
} else if (choice == 1) {
printf("请输入书名、编号、数量:\n");
Book b;
scanf("%s %d %d", b.name, &b.id, &b.quantity);
add_book(&lib, b);
} else if (choice == 2) {
printf("请输入要查找的书名:\n");
char name[MAX_NAME_LEN];
scanf("%s", name);
find_book(&lib, name);
} else if (choice == 3) {
printf("请输入要修改的图书编号和数量:\n");
int id, quantity;
scanf("%d %d", &id, &quantity);
update_book_quantity(&lib, id, quantity);
} else if (choice == 4) {
printf("请输入要删除的图书编号:\n");
int id;
scanf("%d", &id);
delete_book(&lib, id);
} else if (choice == 5) {
display_books(&lib);
} else {
printf("无效的选择!\n");
}
printf("\n");
}
return 0;
}
```
这个代码实现了以下功能:
1. 添加图书:可以输入书名、编号、数量,将图书添加到图书馆中。
2. 查找图书:可以输入书名,查找对应的图书编号和数量。
3. 修改图书数量:可以输入图书编号和数量,修改对应图书的数量。
4. 删除图书:可以输入图书编号,将对应的图书删除。
5. 显示所有图书:将所有图书的书名和数量显示出来。
当然,这只是一个简单的图书管理系统,还有很多可以改进的地方,比如可以使用文件存储图书信息,可以添加借阅和归还图书的功能等等。
阅读全文