基于顺序存储结构的图书信息表的创建和输出
时间: 2023-05-31 15:06:52 浏览: 73
1.基于顺序存储结构的图书信息表的创建和输出 2..基于顺序存储结构的图书信息表的排序 3.基于顺序存储结构的图书信息表的修改
假设图书信息包括书名、作者、出版社和价格,我们可以使用一个结构体来存储每本书的信息:
```c
#define MAX_SIZE 100
typedef struct {
char title[50];
char author[20];
char publisher[30];
float price;
} Book;
Book books[MAX_SIZE]; // 用数组来存储图书信息
int length = 0; // 数组中已经存储的图书数量
// 添加一本书的信息
void addBook(char* title, char* author, char* publisher, float price) {
if (length >= MAX_SIZE) {
printf("Error: book table is full!\n");
return;
}
strcpy(books[length].title, title);
strcpy(books[length].author, author);
strcpy(books[length].publisher, publisher);
books[length].price = price;
length++;
}
// 输出所有图书的信息
void printBooks() {
printf("Title\tAuthor\tPublisher\tPrice\n");
for (int i = 0; i < length; i++) {
printf("%s\t%s\t%s\t%.2f\n", books[i].title, books[i].author, books[i].publisher, books[i].price);
}
}
```
在这个例子中,我们使用一个数组来存储图书信息,数组的大小为 `MAX_SIZE`,我们也可以根据需要进行调整。`length` 变量用于记录数组中已经存储的图书数量,初始值为 0。
`addBook()` 函数用于添加一本新书的信息,参数包括书名、作者、出版社和价格。首先判断数组是否已经满了,如果是则输出错误信息并返回。否则,将参数中的信息复制到数组中的对应位置,然后将 `length` 加 1。
`printBooks()` 函数用于输出所有图书的信息,首先输出表头,然后遍历数组中已存储的图书,输出每本书的信息。
可以在主函数中调用 `addBook()` 函数添加图书信息,然后调用 `printBooks()` 函数输出所有图书的信息。
阅读全文