c++对象数组写学生管理系统有保存文件
以下是一个简单的C++对象数组实现学生管理系统并保存到文件:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class Student {
public:
string name;
int age;
float score;
void input() {
cout << "请输入学生姓名:";
cin >> name;
cout << "请输入学生年龄:";
cin >> age;
cout << "请输入学生成绩:";
cin >> score;
}
void output() {
cout << "学生姓名:" << name << endl;
cout << "学生年龄:" << age << endl;
cout << "学生成绩:" << score << endl;
}
};
const int MAX_STUDENT = 100;
int main() {
Student students[MAX_STUDENT];
int num = 0;
char choice = ' ';
// 读取文件
ifstream infile("students.txt");
if (infile.is_open()) {
while (!infile.eof()) {
Student s;
infile >> s.name >> s.age >> s.score;
if (s.name != "") {
students[num] = s;
num++;
}
}
}
infile.close();
// 显示菜单
while (true) {
cout << "========学生管理系统========" << endl;
cout << "1. 添加学生" << endl;
cout << "2. 显示学生" << endl;
cout << "3. 保存到文件" << endl;
cout << "4. 退出程序" << endl;
cout << "请输入操作编号:";
cin >> choice;
// 执行操作
switch (choice) {
case '1': // 添加学生
if (num < MAX_STUDENT) {
Student s;
s.input();
students[num] = s;
num++;
} else {
cout << "学生数量已达上限!" << endl;
}
break;
case '2': // 显示学生
for (int i = 0; i < num; i++) {
students[i].output();
}
break;
case '3': // 保存到文件
ofstream outfile("students.txt");
if (outfile.is_open()) {
for (int i = 0; i < num; i++) {
outfile << students[i].name << " " << students[i].age << " " << students[i].score << endl;
}
}
outfile.close();
cout << "已保存到文件!" << endl;
break;
case '4': // 退出程序
return 0;
default:
cout << "输入有误,请重新输入!" << endl;
break;
}
}
return 0;
}
该程序使用了一个Student类来表示学生,包含学生的姓名、年龄和成绩。使用一个对象数组students来存储多个学生,最多支持100个学生。
在程序运行时,先从文件students.txt中读取学生信息,如果文件不存在或无法打开,则使用空的学生列表。然后显示菜单,根据用户选择执行不同的操作,包括添加学生、显示学生、保存到文件和退出程序。在执行保存到文件操作时,将对象数组中的学生信息写入到文件中。
这样就实现了一个简单的学生管理系统,并可以将学生信息保存到文件中
原文地址: https://www.cveoy.top/t/topic/giUm 著作权归作者所有。请勿转载和采集!