【大作业】【图书管理系统】

这是一个简单的图书管理系统的实现。系统允许添加书籍、显示所有书籍、查找书籍、借阅和归还书籍等基本功能。

#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、标题、作者、页数和借阅状态。用户可以通过菜单选择不同的功能来操作图书库,例如添加书籍、显示所有书籍、查找书籍、借阅书籍和归还书籍等。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值