本项目是一个基于C语言的简单图书管理系统,用户可以通过命令行界面实现图书的添加、删除、修改、查找以及列出所有图书的功能。适用于初学者学习c语言,也适用于高校学生课程设计,毕业设计参考。
一,开发环境需求
-  操作系统 :Windows, Linux 
-  开发环境工具 :QT, VSCode, Visual Studio 
-  技术要求: - C 语言
- 文件I/O操作
- 结构体与字符串处理
 
二,功能说明

三,功能实现
- 添加图书
void addBook(void) {
    Book newBook;
    printf("请输入书名:");
    scanf("%s", newBook.title);
    printf("请输入作者:");
    scanf("%s", newBook.author);
    printf("请输入ISBN:");
    scanf("%s", newBook.ISBN);
    printf("请输入出版日期:");
    scanf("%s", newBook.pub_date);
    writeFile(newBook); // 调用 fileops.c 中的函数写入文件
}
- 删除图书
void deleteBook(void) {
    char ISBN[20];
    printf("请输入要删除图书的ISBN:");
    scanf("%s", ISBN);
    deleteFromFile(ISBN);
}
- 修改图书
void modifyBook(void) {
    char ISBN[20];
    Book modifiedBook;
    printf("请输入要修改的图书的ISBN:");
    scanf("%s", ISBN);
    printf("请输入新的书名:");
    scanf("%s", modifiedBook.title);
    printf("请输入新的作者:");
    scanf("%s", modifiedBook.author);
    printf("请输入新的出版日期:");
    scanf("%s", modifiedBook.pub_date);
    modifyInFile(ISBN, modifiedBook);
}
- 查找图书
void findBook(void) {
    char keyword[100];
    printf("请输入书名或作者进行搜索:");
    scanf("%s", keyword);
    findInFile(keyword);
}
- 列出所有图书
void listFromFile(void) {
    FILE *fp = fopen(FILE_PATH, "r");
    char line[256];
    if (fp) {
        while (fgets(line, sizeof(line), fp)) {
            printf("%s", line);
        }
        fclose(fp);
    } else {
        printf("打开文件失败\n");
    }
}
四,效果图

五,源码
代码已开源,可访问gitee下载。
六,总结
本项目通过C语言简洁有效地实现了一个图书管理系统。整体设计考虑了易用性和扩展性,将文件操作与主逻辑分离,使得代码结构清晰,便于后续维护和扩展。希望该项目能为学习C语言的学生或开发者提供一个参考。



















