定义一个包含图书信息、(书号、书名、价格)的链表C++当输入均为0时退出循环
时间: 2024-10-14 11:10:18 浏览: 26
在C++中,你可以创建一个结构体(struct)来表示图书的信息,然后定义一个节点(Node)类,每个节点包含书号、书名和价格的属性。接着,你可以构建一个链表类(LinkedList),该类有一个头结点(head)并提供添加新图书节点的功能。下面是一个简单的例子:
```cpp
#include <iostream>
// 图书信息结构体
struct Book {
int isbn; // 书号
std::string title; // 书名
double price; // 价格
};
// 链表节点类
class Node {
public:
Book book;
Node* next; // 指向下一个节点的指针
};
// 链表类
class LibraryList {
private:
Node* head;
public:
void addBook(int isbn, const std::string& title, double price) {
if (isbn == 0 && title.empty() && price == 0) { // 输入为0时退出
return;
}
Node* newNode = new Node();
newNode->book.isbn = isbn;
newNode->book.title = title;
newNode->book.price = price;
newNode->next = nullptr;
if (head == nullptr) {
head = newNode;
} else {
Node* current = head;
while (current->next != nullptr) {
current = current->next;
}
current->next = newNode;
}
}
// 添加更多链表操作...
};
int main() {
LibraryList list;
int isbnInput;
std::cout << "请输入书号(0退出): ";
std::cin >> isbnInput;
std::string title, priceStr;
std::getline(std::cin, title);
std::cin >> priceStr;
while (isbnInput != 0) {
double price = std::stod(priceStr); // 将字符串转为double
list.addBook(isbnInput, title, price);
std::cout << "请输入下一本的书号(0退出): ";
std::cin >> isbnInput;
std::getline(std::cin, title);
std::cin >> priceStr;
}
// 使用链表...
return 0;
}
```
在这个示例中,当你输入`0`作为书号时,程序会跳出循环不再添加新的图书到链表中。你可以根据需要增加更多的链表操作,如遍历链表显示图书信息等。
阅读全文