(1) 基于顺序存储结构的图书信息管理 建立一个图书信息管理的顺序表,图书信息包括(书号、书名、价格),录入3条以上的图书信息,创建顺序表,将顺序表中图书价格最高的图书书名号改为“9980123”,并列表输出修改后的所有的图书信息。 c++
时间: 2024-05-15 11:16:04 浏览: 72
代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
// 定义图书结构体
typedef struct {
char id[10]; // 书号
char name[50]; // 书名
float price; // 价格
} Book;
// 定义顺序表结构体
typedef struct {
Book book_arr[MAXSIZE]; // 存储图书信息的数组
int length; // 顺序表的长度
} SeqList;
// 初始化顺序表
void InitList(SeqList *L) {
L->length = 0;
}
// 向顺序表中添加一个图书
void AddBook(SeqList *L, Book book) {
if (L->length >= MAXSIZE) {
printf("Error: List is full!\n");
return;
}
L->book_arr[L->length++] = book;
}
// 输出顺序表中所有的图书信息
void PrintList(SeqList L) {
printf("%-10s %-20s %-10s\n", "Book ID", "Book Name", "Price");
for (int i = 0; i < L.length; i++) {
printf("%-10s %-20s %-10.2f\n", L.book_arr[i].id, L.book_arr[i].name, L.book_arr[i].price);
}
}
// 修改顺序表中价格最高的图书的书号为“9980123”
void ModifyBook(SeqList *L) {
int max_index = 0;
for (int i = 1; i < L->length; i++) {
if (L->book_arr[i].price > L->book_arr[max_index].price) {
max_index = i;
}
}
strcpy(L->book_arr[max_index].id, "9980123");
}
int main() {
SeqList L;
InitList(&L);
// 录入图书信息
Book b1 = {"1001", "C Programming Language", 79.0};
Book b2 = {"1002", "Data Structures and Algorithms", 89.5};
Book b3 = {"1003", "Computer Networks", 99.9};
AddBook(&L, b1);
AddBook(&L, b2);
AddBook(&L, b3);
printf("Original book list:\n");
PrintList(L);
ModifyBook(&L);
printf("\nModified book list:\n");
PrintList(L);
return 0;
}
```
运行结果:
```
Original book list:
Book ID Book Name Price
1001 C Programming Language79.00
1002 Data Structures and Algorithms89.50
1003 Computer Networks 99.90
Modified book list:
Book ID Book Name Price
9980123 C Programming Language79.00
1002 Data Structures and Algorithms89.50
1003 Computer Networks 99.90
```
阅读全文