设计一个菜单操作页面c++,录入学生信息,从文件中提取
时间: 2024-02-28 12:57:04 浏览: 147
好的,为了方便操作,我会使用 C++ 的面向对象编程思想实现这个菜单操作页面。
首先,我会创建一个名为 `Student` 的类来表示学生信息,包含以下成员变量:
```cpp
class Student {
public:
std::string name; // 姓名
int age; // 年龄
std::string gender; // 性别
std::string id; // 学号
};
```
然后,我会创建一个名为 `Menu` 的类来实现菜单操作页面,包含以下成员函数:
```cpp
class Menu {
public:
void showMenu(); // 显示菜单
void addStudent(); // 录入学生信息
void showStudents(); // 显示所有学生信息
void saveToFile(); // 将学生信息保存到文件
void loadFromFile(); // 从文件中读取学生信息
private:
std::vector<Student> students; // 学生信息列表
std::string filename = "students.txt"; // 存储学生信息的文件名
};
```
其中,`showMenu()` 函数用于显示菜单,`addStudent()` 函数用于录入学生信息,`showStudents()` 函数用于显示所有学生信息,`saveToFile()` 函数用于将学生信息保存到文件,`loadFromFile()` 函数用于从文件中读取学生信息。
下面是具体实现:
```cpp
#include <iostream>
#include <fstream>
#include <vector>
class Student {
public:
std::string name;
int age;
std::string gender;
std::string id;
};
class Menu {
public:
void showMenu() {
std::cout << "请选择操作:\n";
std::cout << "1. 录入学生信息\n";
std::cout << "2. 显示所有学生信息\n";
std::cout << "3. 保存学生信息到文件\n";
std::cout << "4. 从文件中读取学生信息\n";
std::cout << "0. 退出\n";
}
void addStudent() {
Student s;
std::cout << "请输入学生姓名:";
std::cin >> s.name;
std::cout << "请输入学生年龄:";
std::cin >> s.age;
std::cout << "请输入学生性别:";
std::cin >> s.gender;
std::cout << "请输入学生学号:";
std::cin >> s.id;
students.push_back(s);
std::cout << "学生信息已录入。\n";
}
void showStudents() {
if (students.empty()) {
std::cout << "还没有录入学生信息。\n";
return;
}
std::cout << "所有学生信息如下:\n";
for (const auto& s : students) {
std::cout << "姓名:" << s.name << " 年龄:" << s.age << " 性别:" << s.gender << " 学号:" << s.id << "\n";
}
}
void saveToFile() {
if (students.empty()) {
std::cout << "还没有录入学生信息。\n";
return;
}
std::ofstream fout(filename);
for (const auto& s : students) {
fout << s.name << " " << s.age << " " << s.gender << " " << s.id << "\n";
}
fout.close();
std::cout << "学生信息已保存到文件 " << filename << "。\n";
}
void loadFromFile() {
std::ifstream fin(filename);
if (!fin) {
std::cout << "文件 " << filename << " 不存在。\n";
return;
}
students.clear();
while (!fin.eof()) {
Student s;
fin >> s.name >> s.age >> s.gender >> s.id;
students.push_back(s);
}
fin.close();
std::cout << "从文件 " << filename << " 中读取了 " << students.size() << " 条学生信息。\n";
}
private:
std::vector<Student> students;
std::string filename = "students.txt";
};
int main() {
Menu menu;
int choice;
do {
menu.showMenu();
std::cin >> choice;
switch (choice) {
case 1:
menu.addStudent();
break;
case 2:
menu.showStudents();
break;
case 3:
menu.saveToFile();
break;
case 4:
menu.loadFromFile();
break;
case 0:
std::cout << "再见!\n";
break;
default:
std::cout << "无效的选择,请重新输入。\n";
break;
}
} while (choice != 0);
return 0;
}
```
这样,我们就实现了一个简单的菜单操作页面,可以录入学生信息,显示所有学生信息,将学生信息保存到文件,从文件中读取学生信息。
阅读全文