• 智能AI问答!更聪明、更完整、原创作!
  • 一款基于GPT的超级AI机器人,可以回答问题、聊天、创作、写文案!

用c语言编写图书管理系统

发布于 2024-06-25 14:53:06

编写一个图书管理系统是一个复杂的工程项目,涉及到用户界面、数据存储、逻辑处理等多个方面。在这里,我可以提供一个简单的C语言图书管理系统的示例代码框架,这个示例将包括基本的功能,如增加图书、删除图书、查找图书、显示所有图书等。

请注意,这只是一个基础示例,实际的系统可能需要更多的功能和更复杂的数据结构。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_BOOKS 100
#define MAX_TITLE_LENGTH 50

// 定义图书结构体
typedef struct {
    char title[MAX_TITLE_LENGTH];
    int year;
    char author[MAX_TITLE_LENGTH];
} Book;

// 定义图书管理数组
Book books[MAX_BOOKS];
int totalBooks = 0;

// 添加图书
void addBook(const Book *newBook) {
    if (totalBooks < MAX_BOOKS) {
        books[totalBooks++] = *newBook;
        printf("图书添加成功!\n");
    } else {
        printf("图书已满,无法添加更多图书。\n");
    }
}

// 删除图书
void removeBook(const char *title) {
    for (int i = 0; i < totalBooks; i++) {
        if (strcmp(books[i].title, title) == 0) {
            for (int j = i; j < totalBooks - 1; j++) {
                books[j] = books[j + 1];
            }
            totalBooks--;
            printf("图书删除成功!\n");
            return;
        }
    }
    printf("未找到该图书。\n");
}

// 查找图书
void findBook(const char *title) {
    for (int i = 0; i < totalBooks; i++) {
        if (strcmp(books[i].title, title) == 0) {
            printf("找到图书:\n");
            printf("标题:%s\n", books[i].title);
            printf("作者:%s\n", books[i].author);
            printf("出版年份:%d\n", books[i].year);
            return;
        }
    }
    printf("未找到该图书。\n");
}

// 显示所有图书
void displayAllBooks() {
    if (totalBooks == 0) {
        printf("当前没有图书。\n");
    } else {
        printf("所有图书列表:\n");
        for (int i = 0; i < totalBooks; i++) {
            printf("%d. %s, %s, %d\n", i + 1, books[i].title, books[i].author, books[i].year);
        }
    }
}

// 主函数
int main() {
    char command;
    Book newBook;

    while (1) {
        printf("\n图书管理系统\n");
        printf("1. 添加图书\n");
        printf("2. 删除图书\n");
        printf("3. 查找图书\n");
        printf("4. 显示所有图书\n");
        printf("0. 退出\n");
        printf("请输入命令(0-4): ");
        scanf("%c", &command);

        switch (command) {
            case '1':
                printf("输入图书标题:");
                scanf("%s", newBook.title);
                printf("输入出版年份:");
                scanf("%d", &newBook.year);
                printf("输入作者:");
                scanf("%s", newBook.author);
                addBook(&newBook);
                break;
            case '2':
                printf("输入要删除的图书标题:");
                scanf("%s");
                removeBook(newBook.title);
                break;
            case '3':
                printf("输入要查找的图书标题:");
                scanf("%s", newBook.title);
                findBook(newBook.title);
                break;
            case '4':
                displayAllBooks();
                break;
            case '0':
                printf("退出图书管理系统。\n");
                return 0;
            default:
                printf("无效命令,请重新输入。\n");
        }
    }

    return 0;
}

这个例子展示了一个简单的文本界面图书管理系统的主要功能。它使用了一个简单的数组来存储图书信息,并通过命令行界面与用户交互。在实际应用中,你可能需要使用数据库来存储图书数据,并且可能需要添加额外的功能,比如用户管理、借阅跟踪、图形用户界面等。

0 条评论

发布
问题

在线
客服