C语言图书管理系统如何实现高效数据管理?

99ANYc3cd6
预计阅读时长 20 分钟
位置: 首页 C语言 正文

C语言图书管理系统

下面是一个简单的C语言图书管理系统实现,包含基本的图书管理功能:添加图书、删除图书、查找图书、显示所有图书和退出系统。

用c语言编写的图书管理系统
(图片来源网络,侵删)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 100
#define MAX_TITLE_LENGTH 50
#define MAX_AUTHOR_LENGTH 30
#define MAX_ISBN_LENGTH 20
// 图书结构体
typedef struct {
    char title[MAX_TITLE_LENGTH];
    char author[MAX_AUTHOR_LENGTH];
    char isbn[MAX_ISBN_LENGTH];
    int year;
    float price;
} Book;
// 图书管理系统结构体
typedef struct {
    Book books[MAX_BOOKS];
    int count;
} Library;
// 初始化图书馆
void initLibrary(Library *lib) {
    lib->count = 0;
}
// 添加图书
void addBook(Library *lib) {
    if (lib->count >= MAX_BOOKS) {
        printf("图书馆已满,无法添加更多图书!\n");
        return;
    }
    Book newBook;
    printf("请输入书名: ");
    scanf(" %[^\n]", newBook.title);
    printf("请输入作者: ");
    scanf(" %[^\n]", newBook.author);
    printf("请输入ISBN: ");
    scanf(" %[^\n]", newBook.isbn);
    printf("请输入出版年份: ");
    scanf("%d", &newBook.year);
    printf("请输入价格: ");
    scanf("%f", &newBook.price);
    lib->books[lib->count++] = newBook;
    printf("图书添加成功!\n");
}
// 删除图书
void deleteBook(Library *lib) {
    char isbn[MAX_ISBN_LENGTH];
    printf("请输入要删除的图书ISBN: ");
    scanf(" %[^\n]", isbn);
    int found = 0;
    for (int i = 0; i < lib->count; i++) {
        if (strcmp(lib->books[i].isbn, isbn) == 0) {
            found = 1;
            // 将后面的图书前移
            for (int j = i; j < lib->count - 1; j++) {
                lib->books[j] = lib->books[j + 1];
            }
            lib->count--;
            printf("图书删除成功!\n");
            break;
        }
    }
    if (!found) {
        printf("未找到ISBN为 %s 的图书!\n", isbn);
    }
}
// 查找图书
void searchBook(Library *lib) {
    char keyword[MAX_TITLE_LENGTH];
    printf("请输入书名或作者进行搜索: ");
    scanf(" %[^\n]", keyword);
    int found = 0;
    for (int i = 0; i < lib->count; i++) {
        if (strstr(lib->books[i].title, keyword) != NULL || 
            strstr(lib->books[i].author, keyword) != NULL) {
            printf("找到匹配的图书:\n");
            printf("书名: %s\n", lib->books[i].title);
            printf("作者: %s\n", lib->books[i].author);
            printf("ISBN: %s\n", lib->books[i].isbn);
            printf("出版年份: %d\n", lib->books[i].year);
            printf("价格: %.2f\n", lib->books[i].price);
            printf("------------------------\n");
            found = 1;
        }
    }
    if (!found) {
        printf("未找到匹配的图书!\n");
    }
}
// 显示所有图书
void displayBooks(Library *lib) {
    if (lib->count == 0) {
        printf("图书馆中没有图书!\n");
        return;
    }
    printf("图书馆中的所有图书:\n");
    printf("------------------------------------------------------------\n");
    printf("%-30s %-20s %-15s %-6s %-8s\n", 
           "书名", "作者", "ISBN", "年份", "价格");
    printf("------------------------------------------------------------\n");
    for (int i = 0; i < lib->count; i++) {
        printf("%-30s %-20s %-15s %-6d %-8.2f\n", 
               lib->books[i].title, 
               lib->books[i].author, 
               lib->books[i].isbn, 
               lib->books[i].year, 
               lib->books[i].price);
    }
    printf("------------------------------------------------------------\n");
    printf("总计: %d 本图书\n", lib->count);
}
// 显示菜单
void displayMenu() {
    printf("\n===== 图书管理系统 =====\n");
    printf("1. 添加图书\n");
    printf("2. 删除图书\n");
    printf("3. 查找图书\n");
    printf("4. 显示所有图书\n");
    printf("5. 退出系统\n");
    printf("========================\n");
    printf("请选择操作 (1-5): ");
}
int main() {
    Library lib;
    initLibrary(&lib);
    int choice;
    do {
        displayMenu();
        scanf("%d", &choice);
        switch (choice) {
            case 1:
                addBook(&lib);
                break;
            case 2:
                deleteBook(&lib);
                break;
            case 3:
                searchBook(&lib);
                break;
            case 4:
                displayBooks(&lib);
                break;
            case 5:
                printf("感谢使用图书管理系统,再见!\n");
                break;
            default:
                printf("无效的选择,请重新输入!\n");
        }
    } while (choice != 5);
    return 0;
}

功能说明

  1. 添加图书:输入图书信息(书名、作者、ISBN、出版年份、价格)并添加到系统中
  2. 删除图书:通过ISBN号删除指定图书
  3. 查找图书:通过书名或作者关键字搜索图书
  4. 显示所有图书:以表格形式显示图书馆中所有图书信息
  5. 退出系统:结束程序运行

使用说明

  1. 编译并运行程序
  2. 根据菜单提示输入数字选择相应功能
  3. 按照程序提示输入相关信息
  4. 选择5退出系统

扩展建议

如果需要进一步完善这个系统,可以考虑添加以下功能:

  1. 将图书数据保存到文件中,实现持久化存储
  2. 按不同条件排序(如按出版年份、价格等)
  3. 添加用户管理功能(管理员、普通用户等不同权限)
  4. 增加图书借阅功能
  5. 添加图书分类功能

这个实现是一个基础版本,您可以根据实际需求进行修改和扩展。

用c语言编写的图书管理系统
(图片来源网络,侵删)
-- 展开阅读全文 --
头像
织梦文章如何手工分页
« 上一篇 03-05
dede后台跳转登录如何解决?
下一篇 » 03-05

相关文章

取消
微信二维码
支付宝二维码

目录[+]