基于顺序存储结构的图书信息表的创建和输出描述定义一个包含图书信息(书号、书名、价格)的顺序表,读入相应的图书数据来完成图书信息表的创建,然后统计图书表中的图书个数,同时逐
时间: 2024-10-03 21:04:37 浏览: 132
基于顺序存储结构的图书信息表通常是一个数组或者是动态内存分配的结构,用于存储每个图书的信息。创建这样的表可以按照以下步骤进行:
1. **创建**:
- 定义一个结构体或类,例如`BookInfo`,包含三个字段:书号(bookID)、书名(title)和价格(price)。
```cpp
struct BookInfo {
int bookID;
string title;
double price;
};
```
- 创建一个固定大小的数组,如果书籍数量未知,也可以使用动态数组(如C++中的`std::vector<BookInfo>`)。
```cpp
// 使用固定大小数组
BookInfo books[100];
// 或者使用动态数组
std::vector<BookInfo> dynamicBooks;
```
2. **输入数据**:
- 开始一个循环,读取用户输入的图书信息,并将其存储到对应的数组元素或`BookInfo`对象中。
```cpp
for (int i = 0; i < 100; i++) { // 如果使用固定大小数组
cout << "请输入第" << i+1 << "本书的书号、书名和价格:";
cin >> books[i].bookID >> books[i].title >> books[i].price;
}
// 或者
while (true) {
cin >> dynamicBooks.back().bookID >> dynamicBooks.back().title >> dynamicBooks.back().price;
if (cin.fail()) break; // 输入错误则停止
}
```
3. **统计图书个数**:
- 对于数组,可以直接计算数组长度作为图书总数;对于动态数组,可以使用`.size()`属性。
```cpp
int totalBooks = sizeof(books) / sizeof(books[0]); // 固定大小数组
int dynamicTotalBooks = dynamicBooks.size(); // 动态数组
```
4. **输出描述及遍历**:
- 可以按索引逐个打印每个图书的信息,展示整个图书信息表。
```cpp
for (int i = 0; i < totalBooks; i++) {
cout << "书号:" << books[i].bookID << ", 书名:" << books[i].title << ", 价格:" << books[i].price << endl;
}
// 对于动态数组,类似操作:
for (const auto& book : dynamicBooks) {
cout << "书号:" << book.bookID << ", 书名:" << book.title << ", 价格:" << book.price << endl;
}
```
阅读全文