用C++语言编写一个图书管理系统,使用类和对象的概念实现程序设计,并将图书信息保存到文件,所有操作都针对文件中的数据,不要用指针
时间: 2024-12-30 13:37:34 浏览: 14
在C++中,我们可以创建一个简单的图书管理系统,通过类和对象来组织数据并操作文件。这里有一个基本的图书类Book和一个用于读写的FileHandler类。首先,我们定义Book类:
```cpp
class Book {
public:
std::string title;
std::string author;
int publicationYear;
// 构造函数和析构函数
Book(const std::string& title, const std::string& author, int year)
: title(title), author(author), publicationYear(year) {}
~Book() {}
};
```
接着,创建FileHandler类来处理文件操作:
```cpp
class FileHandler {
private:
std::ofstream out; // 写入流
std::ifstream in; // 读取流
public:
void saveBooksToFile(const std::vector<Book>& books) {
for (const auto& book : books) {
out << book.title << "," << book.author << "," << book.publicationYear << "\n";
}
out.close();
}
std::vector<Book> loadBooksFromFile() {
std::vector<Book> books;
if (in.is_open()) {
std::string line;
while (getline(in, line)) {
std::istringstream iss(line);
std::string title, author, yearStr;
if (!(iss >> title >> author >> yearStr)) {
break; // 遇到错误或结束符跳过
}
int year = std::stoi(yearStr); // 将字符串转换为整数
books.push_back(Book(title, author, year));
}
in.close();
}
return books;
}
};
```
然后,在主程序中使用这两个类:
```cpp
int main() {
FileHandler fileManager;
// 添加书籍到文件
std::vector<Book> books = {{"The Great Gatsby", "F. Scott Fitzgerald", 1925},
{"Pride and Prejudice", "Jane Austen", 1813}};
fileManager.saveBooksToFile(books);
// 从文件加载书籍
std::vector<Book> loadedBooks = fileManager.loadBooksFromFile();
// 打印加载的书籍
for (const auto& book : loadedBooks) {
std::cout << book.title << " by " << book.author << ", published in " << book.publicationYear << std::endl;
}
return 0;
}
```
这个例子展示了如何使用类和对象以及文件I/O在C++中实现一个基础的图书管理系统。
阅读全文