C语言实现简易图书管理系统

本篇博客将带你使用C语言实现一个简易的图书管理系统,该系统包含以下功能:

  • 添加图书信息
  • 删除图书信息
  • 修改图书信息
  • 查找图书信息
  • 借阅图书
  • 归还图书
  • 显示所有图书信息

1. 数据结构设计

我们使用链表来存储图书信息,每个节点代表一本书籍。

typedef struct Node {
    char bookCode[20];
    char bookName[50];
    char author[50];
    char publisher[50];
    char bookkind[50];
    char bookkinds[50];
    int quantity;
    int borrowed;
    struct Node *next;
} BookNode;

BookNode *head = NULL;

2. 功能实现

2.1 加载和保存图书数据

void loadBookData() {
    FILE *file = fopen('book_storage.txt', 'r');
    if (file == NULL) {
        return;
    }

    // ... 读取文件内容并创建链表 ...

    fclose(file);
}

void saveBookData() {
    FILE *file = fopen('book_storage.txt', 'w');
    if (file == NULL) {
        printf('无法保存图书信息!
');
        return;
    }

    // ... 将链表内容写入文件 ...

    fclose(file);
}

2.2 添加图书

void addBook() {
    // ... 获取用户输入 ...

    BookNode *newNode = (BookNode *)malloc(sizeof(BookNode));
    // ... 将用户输入存储到新节点 ...

    // 将新节点插入链表尾部
    if (head == NULL) {
        head = newNode;
    } else {
        // ... 找到链表尾部,将新节点插入 ...
    }

    printf('添加成功!
');
}

2.3 删除图书

void deleteBook() {
    // ... 获取要删除的图书编号 ...

    if (head == NULL) {
        printf('没有找到相关图书!
');
        return;
    }

    // ... 在链表中查找对应图书,并删除 ...
}

2.4 修改图书

void modifyBook() {
    // ... 获取要修改的图书编号 ...

    if (head == NULL) {
        printf('没有找到相关图书!
');
        return;
    }

    // ... 在链表中查找对应图书,并修改信息 ...
}

2.5 查找图书

void searchBook() {
    // ... 获取要查找的书名 ...

    if (head == NULL) {
        printf('没有找到相关图书!
');
        return;
    }

    // ... 在链表中查找对应图书,并打印信息 ...
}

2.6 借阅图书

void borrowBook() {
    // ... 获取要借阅的图书编号 ...

    if (head == NULL) {
        printf('没有找到相关图书!
');
        return;
    }

    // ... 在链表中查找对应图书,并修改借阅状态 ...
}

2.7 归还图书

void returnBook() {
    // ... 获取要归还的图书编号 ...

    if (head == NULL) {
        printf('没有找到相关图书!
');
        return;
    }

    // ... 在链表中查找对应图书,并修改借阅状态 ...
}

2.8 显示所有图书

void displayBook() {
    if (head == NULL) {
        printf('图书列表为空!
');
        return;
    }

    // ... 遍历链表,打印每本书籍的信息 ...
}

3. 时间复杂度分析

| 函数 | 时间复杂度 | |------------------|--------------| | loadBookData() | O(n) | | saveBookData() | O(n) | | addBook() | O(n) | | deleteBook() | O(n) | | modifyBook() | O(n) | | searchBook() | O(n) | | borrowBook() | O(n) | | returnBook() | O(n) | | displayBook() | O(n) |

其中,n 表示图书的数量。

4. 完整代码

完整代码请参考文章开头的代码块。

5. 总结

本文介绍了如何使用C语言实现一个简单的图书管理系统,并对程序的时间复杂度进行了分析。你可以根据自己的需求对程序进行扩展和优化。例如,可以添加用户管理功能、实现更复杂的搜索功能等。

C语言实现简易图书管理系统(附源码及时间复杂度分析)

原文地址: https://www.cveoy.top/t/topic/fv4p 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录