用C语言数据结构设计图书管理系统
时间: 2024-03-13 10:39:30 浏览: 105
以下是使用C语言数据结构设计图书管理系统的简要介绍:
该图书管理系统基于单链表存储结构,适用于大一、大二需要进行《数据结构》、《C语言程序设计》等课程设计和实训的同学。代码中有详细注释,逻辑非常清晰。如果已经安装了CodeBlocks 13及以后的版本,可以直接运行。
该图书管理系统具有以下功能:
1. 添加图书:可以添加新的图书到系统中,包括图书的编号、名称、作者等信息。
2. 删除图书:可以根据图书的编号或名称删除系统中的图书。
3. 修改图书信息:可以修改系统中图书的信息,包括图书的名称、作者等。
4. 查询图书:可以根据图书的编号或名称查询系统中的图书信息。
5. 显示所有图书:可以显示系统中所有图书的信息。
6. 保存和加载数据:可以将系统中的图书信息保存到文件中,并在需要时加载数据。
以下是一个简单的示例代码,用于演示如何使用C语言数据结构设计图书管理系统:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义图书结构体
typedef struct Book {
int id;
char name[100];
char author[100];
struct Book* next;
} Book;
// 全局变量,指向链表头节点
Book* head = NULL;
// 添加图书
void addBook(int id, char name[], char author[]) {
Book* newBook = (Book*)malloc(sizeof(Book));
newBook->id = id;
strcpy(newBook->name, name);
strcpy(newBook->author, author);
newBook->next = NULL;
if (head == NULL) {
head = newBook;
} else {
Book* current = head;
while (current->next != NULL) {
current = current->next;
}
current->next = newBook;
}
}
// 删除图书
void deleteBook(int id) {
if (head == NULL) {
printf("图书管理系统为空\n");
return;
}
Book* current = head;
Book* previous = NULL;
while (current != NULL) {
if (current->id == id) {
if (previous == NULL) {
head = current->next;
} else {
previous->next = current->next;
}
free(current);
printf("成功删除图书\n");
return;
}
previous = current;
current = current->next;
}
printf("未找到指定图书\n");
}
// 修改图书信息
void modifyBook(int id, char name[], char author[]) {
if (head == NULL) {
printf("图书管理系统为空\n");
return;
}
Book* current = head;
while (current != NULL) {
if (current->id == id) {
strcpy(current->name, name);
strcpy(current->author, author);
printf("成功修改图书信息\n");
return;
}
current = current->next;
}
printf("未找到指定图书\n");
}
// 查询图书
void searchBook(int id) {
if (head == NULL) {
printf("图书管理系统为空\n");
return;
}
Book* current = head;
while (current != NULL) {
if (current->id == id) {
printf("图书编号:%d\n", current->id);
printf("图书名称:%s\n", current->name);
printf("图书作者:%s\n", current->author);
return;
}
current = current->next;
}
printf("未找到指定图书\n");
}
// 显示所有图书
void displayAllBooks() {
if (head == NULL) {
printf("图书管理系统为空\n");
return;
}
Book* current = head;
while (current != NULL) {
printf("图书编号:%d\n", current->id);
printf("图书名称:%s\n", current->name);
printf("图书作者:%s\n", current->author);
printf("\n");
current = current->next;
}
}
int main() {
// 添加图书示例
addBook(1, "图书1", "作者1");
addBook(2, "图书2", "作者2");
addBook(3, "图书3", "作者3");
// 显示所有图书示例
displayAllBooks();
// 删除图书示例
deleteBook(2);
// 修改图书信息示例
modifyBook(1, "新图书1", "新作者1");
// 查询图书示例
searchBook(1);
return 0;
}
```
阅读全文