这是一个简单的图书管理系统的实现。系统允许添加书籍、显示所有书籍、查找书籍、借阅和归还书籍等基本功能。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 100
// 书籍结构体
struct Book {
int id;
char title[100];
char author[50];
int pages;
int available; // 1表示可借阅,0表示已借出
};
// 全局变量,存储所有书籍
struct Book library[MAX_BOOKS];
int num_books = 0;
// 函数声明
void addBook();
void displayAllBooks();
void findBook();
void borrowBook();
void returnBook();
int main() {
int choice;
while (1) {
printf("\n===== 图书管理系统 =====\n");
printf("1. 添加书籍\n");
printf("2. 显示所有书籍\n");
printf("3. 查找书籍\n");
printf("4. 借阅书籍\n");
printf("5. 归还书籍\n");
printf("6. 退出\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
addBook();
break;
case 2:
displayAllBooks();
break;
case 3:
findBook();
break;
case 4:
borrowBook();
break;
case 5:
returnBook();
break;
case 6:
printf("感谢使用图书管理系统!\n");
return 0;
default:
printf("请输入有效的选项!\n");
}
}
return 0;
}
void addBook() {
if (num_books >= MAX_BOOKS) {
printf("图书库已满,无法添加新书籍。\n");
return;
}
struct Book newBook;
printf("请输入书籍ID:");
scanf("%d", &newBook.id);
printf("请输入书籍标题:");
scanf(" %[^\n]s", newBook.title);
printf("请输入书籍作者:");
scanf(" %[^\n]s", newBook.author);
printf("请输入书籍页数:");
scanf("%d", &newBook.pages);
newBook.available = 1; // 新添加的书籍默认可借阅
library[num_books++] = newBook;
printf("书籍添加成功!\n");
}
void displayAllBooks() {
if (num_books == 0) {
printf("图书库中没有书籍。\n");
return;
}
printf("\n所有书籍信息如下:\n");
printf("ID\t标题\t\t作者\t\t页数\t状态\n");
for (int i = 0; i < num_books; ++i) {
printf("%d\t%s\t\t%s\t\t%d\t%s\n", library[i].id, library[i].title, library[i].author,
library[i].pages, library[i].available ? "可借阅" : "已借出");
}
}
void findBook() {
int searchId;
printf("请输入要查找的书籍ID:");
scanf("%d", &searchId);
for (int i = 0; i < num_books; ++i) {
if (library[i].id == searchId) {
printf("书籍信息如下:\n");
printf("ID\t标题\t\t作者\t\t页数\t状态\n");
printf("%d\t%s\t\t%s\t\t%d\t%s\n", library[i].id, library[i].title, library[i].author,
library[i].pages, library[i].available ? "可借阅" : "已借出");
return;
}
}
printf("未找到ID为%d的书籍。\n", searchId);
}
void borrowBook() {
int borrowId;
printf("请输入要借阅的书籍ID:");
scanf("%d", &borrowId);
for (int i = 0; i < num_books; ++i) {
if (library[i].id == borrowId) {
if (library[i].available) {
library[i].available = 0;
printf("借阅成功!请及时归还。\n");
} else {
printf("该书籍已借出。\n");
}
return;
}
}
printf("未找到ID为%d的书籍。\n", borrowId);
}
void returnBook() {
int returnId;
printf("请输入要归还的书籍ID:");
scanf("%d", &returnId);
for (int i = 0; i < num_books; ++i) {
if (library[i].id == returnId) {
if (!library[i].available) {
library[i].available = 1;
printf("书籍归还成功。\n");
} else {
printf("该书籍已在库中,无需归还。\n");
}
return;
}
}
printf("未找到ID为%d的书籍。\n", returnId);
}
这个图书管理系统使用了结构体 Book
来存储每本书的信息,包括ID、标题、作者、页数和借阅状态。用户可以通过菜单选择不同的功能来操作图书库,例如添加书籍、显示所有书籍、查找书籍、借阅书籍和归还书籍等。