用c语言编写一个图书管理系统
时间: 2025-02-16 14:14:55 浏览: 43
在C语言中,设计一个简单的图书管理系统通常会涉及到基本的数据结构如数组、链表或者文件操作,以及一些核心功能模块,例如添加图书、删除图书、查询图书、显示目录等。下面是一个简化的例子,使用了单向链表来存储图书信息:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义图书结构体
typedef struct Book {
char title[50];
char author[50];
int stock;
} Book;
// 动态内存分配函数
Book* create_book(char* title, char* author) {
Book* book = (Book*)malloc(sizeof(Book));
strcpy(book->title, title);
strcpy(book->author, author);
book->stock = 0;
return book;
}
// 添加图书
void add_book(Book** books, int* count, char* title, char* author) {
Book* new_book = create_book(title, author);
if (*count < 10) { // 假设最多存10本书
books[*count] = new_book;
(*count)++;
} else {
printf("已达书籍上限,无法添加。\n");
}
}
// 删除图书
void delete_book(Book** books, int* count, char* title) {
for (int i = 0; i < *count; i++) {
if (strcmp(books[i]->title, title) == 0) {
free(books[i]);
memmove(&books[i], &books[i+1], sizeof(Book) * ((*count)-i-1));
(*count)--;
break;
}
}
}
// 显示图书列表
void display_books(Book* books, int count) {
for (int i = 0; i < count; i++) {
printf("%d. Title: %s, Author: %s, Stock: %d\n", i+1, books[i]->title, books[i]->author, books[i]->stock);
}
}
int main() {
Book* books[10]; // 初始化图书数组
int count = 0;
// 示例操作
add_book(books, &count, "Title1", "Author1");
delete_book(books, &count, "Title1");
display_books(books, count);
return 0;
}
```
阅读全文
相关推荐
















