图书馆管理系统书的数量打印在txt文件中 并可以读取txt文件中书名 页数c++
时间: 2024-05-04 20:21:16 浏览: 5
以下是一个简单的图书馆管理系统的示例代码,可以实现添加书籍、删除书籍、查看所有书籍信息、将所有书籍数量打印到 txt 文件中,并可以读取 txt 文件中的书名和页数。
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
struct Book {
string name;
int pages;
};
vector<Book> books;
void addBook() {
Book book;
cout << "请输入书名:";
cin >> book.name;
cout << "请输入页数:";
cin >> book.pages;
books.push_back(book);
cout << "添加成功!" << endl;
}
void deleteBook() {
string name;
cout << "请输入要删除的书名:";
cin >> name;
auto it = find_if(books.begin(), books.end(), [&](const Book& book) {
return book.name == name;
});
if (it == books.end()) {
cout << "没有找到该书籍!" << endl;
} else {
books.erase(it);
cout << "删除成功!" << endl;
}
}
void showBooks() {
if (books.empty()) {
cout << "当前没有任何书籍!" << endl;
} else {
cout << "所有书籍信息如下:" << endl;
for (const auto& book : books) {
cout << book.name << ",页数:" << book.pages << endl;
}
}
}
void printCountToTxt() {
ofstream fout("count.txt");
if (!fout) {
cout << "无法打开文件!" << endl;
return;
}
fout << books.size();
fout.close();
cout << "书籍数量已经保存到 count.txt 文件中!" << endl;
}
void readNameFromTxt() {
ifstream fin("names.txt");
if (!fin) {
cout << "无法打开文件!" << endl;
return;
}
string name;
while (getline(fin, name)) {
cout << "书名:" << name << endl;
}
fin.close();
}
int main() {
while (true) {
cout << endl << "请选择操作:" << endl;
cout << "1. 添加书籍" << endl;
cout << "2. 删除书籍" << endl;
cout << "3. 查看所有书籍信息" << endl;
cout << "4. 将所有书籍数量打印到 txt 文件中" << endl;
cout << "5. 从 txt 文件中读取书名" << endl;
cout << "6. 退出" << endl;
int choice;
cin >> choice;
switch (choice) {
case 1:
addBook();
break;
case 2:
deleteBook();
break;
case 3:
showBooks();
break;
case 4:
printCountToTxt();
break;
case 5:
readNameFromTxt();
break;
case 6:
return 0;
default:
cout << "无效的选项!" << endl;
}
}
}
```
在这个示例代码中,我们通过使用 `vector` 来存储所有的书籍信息。`addBook` 函数用于添加一本新书,`deleteBook` 函数用于删除一本书,`showBooks` 函数用于显示所有书籍的信息。`printCountToTxt` 函数用于将所有书籍数量打印到一个 txt 文件中,`readNameFromTxt` 函数用于从另一个 txt 文件中读取书名。
注意,在使用文件操作时,要确保文件能够正确打开,操作完成后要关闭文件。此外,在读取文件时,要使用 `getline` 函数逐行读取文件内容。