Dev-C++实现图书信息链表存储与指定位置查找功能
在 Dev-C++ 上实现一个简单的链表来存储图书信息,并根据用户的输入进行查找,可以按照下面的代码进行: ```cpp #include <iostream> #include <iomanip> #include <string> using namespace std; struct Book { string id; // 书号 string title; // 书名 float price; // 价格 Book* next; // 指向下一个节点的指针 }; class BookList { public: BookList() : head(nullptr) {} void addBook(const string& id, const string& title, float price) { Book* newBook = new Book{id, title, price, nullptr}; if (head == nullptr) { head = newBook; } else { Book* temp = head; while (temp->next != nullptr) { temp = temp->next; } temp->next = newBook; } } Book* getBookAt(int position) { Book* current = head; for (int i = 1; i < position && current != nullptr; ++i) { current = current->next; } return current; } ~BookList() { while (head != nullptr) { Book* temp = head; head = head->next; delete temp; } } private: Book* head; }; int main() { int n; cin >> n; BookList bookList; // 读入图书信息 for (int i = 0; i < n; ++i) { string id, title; float price; cin >> id >> title >> price; // 假设书名不含空格 bookList.addBook(id, title, price); } int m; cin >> m; // 进行查找 for (int i = 0; i < m; ++i) { int position; cin >> position; Book* book = bookList.getBookAt(position); if (book != nullptr) { cout << book->id << " " << book->title << " " << fixed << setprecision(2) << book->price << endl; } else { cout << "抱歉,指定位置上的图书不存在!" << endl; } } return 0; } ``` 代码说明: 1. 结构体定义:`Book` 结构体包含书号、书名、价格和指向下一个节点的指针。 2. 链表管理类:`BookList` 类负责管理链表,提供添加书籍和获取指定位置书籍的功能。 3. 添加书籍:通过 `addBook` 方法在链表尾部添加新的书籍。 4. 查找书籍:通过 `getBookAt` 方法根据位置查找书籍,返回相应的书籍指针。 5. 主函数: - 读入图书数量及每本书的信息并存入链表。 - 读入查询次数和查询位置,输出对应的图书信息或错误提示。 注意事项: - 为了简化输入,假设书名没有空格。如果需要处理书名中的空格,可以考虑使用 `getline` 并根据需要调整输入方式。 ######[AI写代码神器 | 1650点数解答 | 2024-12-18 09:04:49]
- Python 实现简易密码设置系统:多种功能交互与安全要点揭秘(字节豆包 | 286点数解答 | 2025-03-28 10:43:21)355
- C语言实现多功能密码设置系统:含代码及安全注意要点(字节豆包 | 414点数解答 | 2025-03-28 10:43:55)343
- C 语言实现:超简单密码设置系统,含代码与注意要点!(字节豆包 | 519点数解答 | 2025-03-28 12:42:02)384
- C语言实现密码管理系统:含功能代码与安全注意事项(字节豆包 | 409点数解答 | 2025-04-05 18:09:56)333
- C语言实现多功能密码系统:初始化、确认、设置、显示、重置与退出(字节豆包 | 454点数解答 | 2025-04-05 18:48:42)332
- C语言实现密码管理系统:含初始化、确认、设置、显示、重置及退出功能(字节豆包 | 413点数解答 | 2025-04-06 15:37:16)279
- C 语言实现密码管理系统:含初始化、确认、设置、显示、重置及退出功能(字节豆包 | 403点数解答 | 2025-04-06 15:37:54)292
- 数轴旅行:从原点出发,能否到达目标位置?(字节豆包 | 225点数解答 | 2026-01-23 19:51:03)45
- Java:抽象类 Vehicle 及子类 Car、MotorBike 实战演示(讯飞星火 | 440点数解答 | 2024-06-06 23:18:54)310
- 用 Pandas 深度剖析数据:从读取到统计分析全流程实战(GPT | 642点数解答 | 2024-06-30 15:39:49)355
- 用 Pandas 深入分析招聘数据:从数据读取到可视化全流程解析(GPT | 1539点数解答 | 2024-06-30 15:56:50)367
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343