用C语言设计一个基于顺序表的图书信息管理系统,包括以下10中常见的基本操作:图书信息表的创建和输出、排序、修改、逆序存储、最贵图书的查找、最爱图书的查找、最佳图书的查找、新图书的入库、旧图书的出库、图书去重。
时间: 2024-12-13 10:21:08 浏览: 56
在C语言中,我们可以设计一个简单的图书信息管理系统的顺序表结构,例如使用链表数据结构来存储每本书的信息,包含书名、作者、价格等字段。这里给出一种基础的设计思路:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_BOOKS 100
typedef struct Book {
char title[50];
char author[50];
float price;
} Book;
typedef struct {
Book books[MAX_BOOKS];
int count;
} Library;
// 创建图书信息表
void create_library(Library* lib) {
lib->count = 0;
}
// 输出所有图书
void display_books(Library* lib) {
for (int i = 0; i < lib->count; i++) {
printf("Title: %s\nAuthor: %s\nPrice: %.2f\n", lib->books[i].title, lib->books[i].author, lib->books[i].price);
}
}
// 插入新图书(入库)
void add_book(Library* lib, const char* title, const char* author, float price) {
if (lib->count < MAX_BOOKS) {
lib->books[lib->count] = (Book){.title = title, .author = author, .price = price};
lib->count++;
} else {
printf("No more space in the library.\n");
}
}
// 修改图书信息
void update_book(Library* lib, int index, const char* new_title, const char* new_author, float new_price) {
if (index >= 0 && index < lib->count) {
lib->books[index].title = new_title;
lib->books[index].author = new_author;
lib->books[index].price = new_price;
} else {
printf("Invalid index.\n");
}
}
// 排序(这里仅示例冒泡排序,实际应用可选择其他算法)
void sort_books(Library* lib) {
for (int i = 0; i < lib->count - 1; i++) {
for (int j = 0; j < lib->count - 1 - i; j++) {
if (lib->books[j].price > lib->books[j + 1].price) {
Book temp = lib->books[j];
lib->books[j] = lib->books[j + 1];
lib->books[j + 1] = temp;
}
}
}
}
// ... 同样可以添加逆序存储、查找最贵/最爱/最佳图书、去重等功能的实现
// 示例代码仅展示创建和显示,其余功能请自行补充
阅读全文
相关推荐


















