代码生成基于顺序存储结构的图书信息表的最爱图书查找
时间: 2023-12-19 19:05:24 浏览: 28
以下是基于顺序存储结构的图书信息表的最爱图书查找的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
#define MAX_SIZE 100 // 定义最大存储容量
struct Book {
string name; // 书名
string author; // 作者
string publisher; // 出版社
double price; // 价格
int favorite; // 是否为最爱,0表示不是,1表示是
};
struct BookList {
Book books[MAX_SIZE]; // 书籍数组
int length; // 当前存储的书籍数量
};
// 查找最爱图书
int find_favorite_book(BookList bookList) {
for (int i = 0; i < bookList.length; i++) {
if (bookList.books[i].favorite == 1) {
return i; // 返回最爱图书的下标
}
}
return -1; // 没有最爱图书
}
int main() {
BookList bookList;
bookList.books[0] = {"C++ Primer", "Lippman", "电子工业出版社", 98.0, 0};
bookList.books[1] = {"Effective C++", "Scott Meyers", "人民邮电出版社", 68.0, 1};
bookList.books[2] = {"The C Programming Language", "Kernighan&Ritchie", "机械工业出版社", 48.0, 0};
bookList.length = 3;
int index = find_favorite_book(bookList);
if (index != -1) {
cout << "最爱图书是:" << bookList.books[index].name << endl;
} else {
cout << "没有最爱图书。" << endl;
}
return 0;
}
```
在上述代码中,我们首先定义了一个 `Book` 结构体,表示一本书的信息,包括书名、作者、出版社、价格和是否为最爱。接着,我们定义了一个 `BookList` 结构体,表示图书信息表,包括一个 `Book` 数组和当前存储的书籍数量。在 `find_favorite_book` 函数中,我们遍历整个数组,找到第一个最爱图书,如果找到了就返回该图书的下标,否则返回 -1。在 `main` 函数中,我们初始化了一个 `BookList` 对象,并调用 `find_favorite_book` 函数来查找最爱图书,如果找到了就输出其名称,否则输出“没有最爱图书”。