C语言实现图书管理系统:文件存储、增删改查、借阅管理
C语言实现图书管理系统:文件存储、增删改查、借阅管理
这篇博客文章提供了一个用 C 语言构建的图书管理系统的全面指南。该系统包含以下功能:
- 文件存储: 使用文本文件存储图书信息,实现数据的持久化。
- 链表操作: 使用链表存储图书记录,方便进行增删改查操作。
- 增删改查: 提供添加、删除、修改和查找图书的功能。
- 借阅管理: 实现图书借阅和归还功能。
代码示例
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Node {
char bookCode[20];
char bookName[50];
char author[50];
char publisher[50];
char bookkind[50];
char bookkinds[50];
float price;
int quantity;
int borrowed;
struct Node *next;
} BookNode;
BookNode *head = NULL;
void loadBookData() {
FILE *file = fopen('book_storage.txt', 'r');
if (file == NULL) {
return;
}
while (!feof(file)) {
BookNode *newNode = (BookNode *)malloc(sizeof(BookNode));
fscanf(file, '%s', newNode->bookCode);
fscanf(file, '%s', newNode->bookName);
fscanf(file, '%s', newNode->author);
fscanf(file, '%s', newNode->publisher);
fscanf(file, '%s', newNode->bookkind);
fscanf(file, '%s', newNode->bookkinds);
fscanf(file, '%f', &newNode->price);
fscanf(file, '%d', &newNode->quantity);
fscanf(file, '%d', &newNode->borrowed);
newNode->next = NULL;
if (head == NULL) {
head = newNode;
} else {
BookNode *current = head;
while (current->next != NULL) {
current = current->next;
}
current->next = newNode;
}
}
fclose(file);
}
// ... 其他函数定义 ...
int main() {
loadBookData();
// ... 主程序逻辑 ...
return 0;
}
代码说明
BookNode结构体定义了图书信息的结构,包括图书编号、书名、作者、出版社、种类、价格、数量和借阅状态等。loadBookData函数从 'book_storage.txt' 文件中加载图书数据到链表中。- 代码中省略了其他函数的定义,例如
saveBookData、addBook、deleteBook、modifyBook、searchBook、borrowBook、returnBook和displayBook等,这些函数的实现可以参考注释中的功能描述。
总结
本篇文章提供了一个简单的图书管理系统的 C 语言实现,展示了如何使用文件存储、链表操作以及实现基本的图书管理功能。您可以根据自己的需要扩展该系统,例如添加用户管理、借阅期限等功能。
原文地址: https://www.cveoy.top/t/topic/fv2A 著作权归作者所有。请勿转载和采集!