C语言图书管理系统:借阅、归还、展示等功能实现
C语言实现图书管理系统
这篇文章将介绍如何使用C语言实现一个简单的图书管理系统,涵盖以下功能:
- 借阅图书
- 归还图书
- 展示所有图书信息
代码实现
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
// 图书节点结构体
typedef struct BookNode {
char bookCode[20];
char bookName[50];
char author[30];
char publisher[50];
char bookkind[20];
char bookkinds[20];
int quantity;
int borrowed;
struct BookNode *next;
} BookNode;
// 图书链表头节点
BookNode *head = NULL;
// ... 其他函数定义,如 loadBookData(), saveBookData(), addBook(), deleteBook(), modifyBook(), searchBook() ...
// 借阅图书
void borrowBook() {
char bookCode[20];
printf('请输入要借阅的图书编号:');
scanf('%s', bookCode);
if (head == NULL) {
printf('没有找到相关图书!\n');
return;
}
BookNode *current = head;
while (current != NULL) {
if (strcmp(current->bookCode, bookCode) == 0) {
if (current->borrowed) {
printf('该图书已借出!\n');
} else {
current->borrowed = 1;
printf('借阅成功!\n');
}
return;
}
current = current->next;
}
printf('没有找到相关图书!\n');
}
// 归还图书
void returnBook() {
char bookCode[20];
printf('请输入要归还的图书编号:');
scanf('%s', bookCode);
if (head == NULL) {
printf('没有找到相关图书!\n');
return;
}
BookNode *current = head;
while (current != NULL) {
if (strcmp(current->bookCode, bookCode) == 0) {
if (current->borrowed) {
current->borrowed = 0;
printf('归还成功!\n');
} else {
printf('该图书未借出!\n');
}
return;
}
current = current->next;
}
printf('没有找到相关图书!\n');
}
// 展示所有图书信息
void displayBook() {
if (head == NULL) {
printf('图书列表为空!\n');
return;
}
BookNode *current = head;
while (current != NULL) {
printf('图书编号:%s\n', current->bookCode);
printf('书名:%s\n', current->bookName);
printf('作者:%s\n', current->author);
printf('出版社:%s\n', current->publisher);
printf('图书种类:%s\n', current->bookkind);
printf('图书种类编号:%s\n', current->bookkinds);
printf('价格:%d\n', current->quantity);
printf('借阅状态:%s\n', current->borrowed ? '已借出' : '未借出');
printf('\n');
if (current->next != NULL) {
printf('\n');
}
current = current->next;
}
}
// 释放图书链表内存
void freeBookList() {
BookNode *current = head;
while (current != NULL) {
BookNode *temp = current;
current = current->next;
free(temp);
}
head = NULL;
}
// 主函数
int main() {
loadBookData();
while (1) {
printf('*****欢迎使用图书管理系统*****\n');
printf('1. 添加图书信息\n');
printf('2. 删除图书信息\n');
printf('3. 修改图书信息\n');
printf('4. 查找图书信息\n');
printf('5. 借阅图书\n');
printf('6. 归还图书\n');
printf('7. 显示图书信息\n');
printf('0. 退出程序\n');
printf('请输入您的选择:');
int choice;
scanf('%d', &choice);
switch (choice) {
case 1:
addBook();
break;
case 2:
deleteBook();
break;
case 3:
modifyBook();
break;
case 4:
searchBook();
break;
case 5:
borrowBook();
break;
case 6:
returnBook();
break;
case 7:
displayBook();
break;
case 0:
saveBookData();
freeBookList();
printf('感谢使用图书管理系统,再见!\n');
return 0;
default:
printf('无效的选择,请重新输入!\n');
}
}
}
时间复杂度分析
borrowBook(): O(n), n 为图书数量returnBook(): O(n), n 为图书数量displayBook(): O(n), n 为图书数量freeBookList(): O(n), n 为图书数量main(): O(1)
流程图
开始 -> 加载图书数据 -> 进入循环 -> 显示菜单 -> 用户选择操作 -> 执行对应操作 -> 返回菜单 -> 继续循环 -> 退出程序 -> 保存图书数据 -> 释放图书链表内存 -> 结束
总结
本文介绍了如何使用 C 语言实现一个简单的图书管理系统。该系统实现了借阅图书、归还图书和展示所有图书信息等基本功能。代码中使用了链表来存储图书信息,并对每个函数进行了时间复杂度分析。希望这篇文章能帮助你理解如何使用 C 语言进行简单的软件开发。
原文地址: https://www.cveoy.top/t/topic/fx8H 著作权归作者所有。请勿转载和采集!