c++做一个图书管理系统,建立头文件SqList.h,包含数据类型定义和基本操作。 2、建立程序文件SqListApp.cpp,通过调用头文件中的操作实现以下功能. (1)从数据文件读入数据到顺序表 (2)遍历 (3)查找 (4)插入(5)删除(6)修改。
时间: 2024-09-22 11:03:33 浏览: 16
首先,在`SqList.h`头文件中,我们已经包含了数据类型定义以及基本操作的声明。接下来,我们将编写`SqListApp.cpp`程序文件,以实现上述的功能。
```cpp
// SqList.h (省略已有的链表类声明)
// 在SqListApp.cpp中
#include "SqList.h"
#include <fstream>
#include <iostream>
// 实现从数据文件读取数据到顺序表
void loadBooks(SqList& list, const std::string& filename) {
std::ifstream file(filename);
if (!file.is_open()) {
std::cerr << "Failed to open the file." << std::endl;
return;
}
Book book;
while (file >> book.id >> book.title >> book.author) {
list.insert(book);
}
file.close();
}
// 遍历顺序表
void traverse(const SqList& list) {
Node* current = list.head;
while (current != nullptr) {
std::cout << "ID: " << current->book.id << ", Title: " << current->book.title << ", Author: " << current->book.author << std::endl;
current = current->next;
}
}
// 查找书籍
bool findBook(SqList& list, int id, Book& foundBook) {
Node* current = list.head;
while (current != nullptr) {
if (current->book.id == id) {
foundBook = current->book;
return true;
}
current = current->next;
}
return false;
}
// 主函数实现(省略了错误处理)
int main() {
SqList myList;
// 从文件加载数据
loadBooks(myList, "books.txt");
// 遍历书籍
traverse(myList);
// 查找特定书籍
Book searchBook;
if (findBook(myList, 1, searchBook)) {
std::cout << "Found book with ID: " << searchBook.id << std::endl;
} else {
std::cout << "Book not found." << std::endl;
}
// 插入、删除和修改操作(省略了具体的实现,因为需要交互式的用户输入)
return 0;
}
```