基于顺序表的图书信息管理系统 用C语言实现
时间: 2024-10-09 08:07:54 浏览: 150
基于顺序表的图书信息管理系统通常是一个简单的数据结构应用,用于存储书籍的信息,如书名、作者、出版社等,并支持基本的操作如添加、删除和查找图书。以下是用C语言实现的一个基础版本:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_BOOKS 100
// 定义书籍结构体
typedef struct {
char title[50];
char author[50];
char publisher[50];
} Book;
// 序列表的定义
typedef struct {
Book books[MAX_BOOKS];
int count;
} Library;
// 函数声明
void init_library(Library* lib);
void add_book(Library* lib, const char* title, const char* author, const char* publisher);
bool search_book(Library* lib, const char* title);
void delete_book(Library* lib, const char* title);
int main() {
Library myLibrary;
init_library(&myLibrary);
// 示例操作
add_book(&myLibrary, "书名", "作者", "出版社");
if (search_book(&myLibrary, "书名")) {
printf("找到了这本书!\n");
} else {
printf("未找到这本书。\n");
}
return 0;
}
// 初始化序列列表
void init_library(Library* lib) {
lib->count = 0;
}
// 添加书籍
void add_book(Library* lib, const char* title, const char* author, const char* publisher) {
if (lib->count < MAX_BOOKS) {
lib->books[lib->count].title = title;
lib->books[lib->count].author = author;
lib->books[lib->count].publisher = publisher;
lib->count++;
} else {
printf("已满,无法添加更多书籍。\n");
}
}
// 搜索书籍
bool search_book(Library* lib, const char* title) {
for (int i = 0; i < lib->count; i++) {
if (strcmp(lib->books[i].title, title) == 0) {
return true;
}
}
return false;
}
// 删除书籍
void delete_book(Library* lib, const char* title) {
for (int i = 0; i < lib->count - 1; i++) {
if (strcmp(lib->books[i].title, title) == 0) {
memmove(&lib->books[i], &lib->books[i+1], sizeof(Book)*(lib->count-i-1));
lib->count--;
break;
}
}
}
```
这个程序创建了一个图书信息管理类,实现了初始化、添加、搜索和删除书籍的基本功能。注意,由于C语言的标准库不支持动态内存分配,这里的`MAX_BOOKS`限制了最大的图书数量。
阅读全文