设计简单C++学生成绩统计输出保存退出系统源代码
时间: 2023-12-29 21:06:09 浏览: 27
以下是一个简单的C++学生成绩统计输出保存退出系统的源代码,其中包括了基本的输入、统计、输出、保存和退出功能:
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
struct Student {
string name;
int score;
};
void input(vector<Student>& students) {
int n;
cout << "请输入学生人数:";
cin >> n;
for (int i = 0; i < n; i++) {
Student s;
cout << "请输入第" << i + 1 << "个学生的姓名和分数:";
cin >> s.name >> s.score;
students.push_back(s);
}
}
void statistics(const vector<Student>& students) {
int sum = 0, max_score = 0, min_score = 100;
for (const auto& s : students) {
sum += s.score;
max_score = max(max_score, s.score);
min_score = min(min_score, s.score);
}
cout << "平均分:" << sum / students.size() << endl;
cout << "最高分:" << max_score << endl;
cout << "最低分:" << min_score << endl;
}
void output(const vector<Student>& students) {
for (const auto& s : students) {
cout << s.name << " " << s.score << endl;
}
}
void save(const vector<Student>& students) {
ofstream ofs("scores.txt");
for (const auto& s : students) {
ofs << s.name << " " << s.score << endl;
}
ofs.close();
cout << "保存成功!" << endl;
}
int main() {
vector<Student> students;
while (true) {
cout << "请选择操作:1.录入学生信息 2.统计成绩 3.输出成绩单 4.保存成绩单 5.退出系统" << endl;
int choice;
cin >> choice;
switch (choice) {
case 1:
input(students);
break;
case 2:
statistics(students);
break;
case 3:
output(students);
break;
case 4:
save(students);
break;
case 5:
cout << "谢谢使用!" << endl;
return 0;
default:
cout << "输入有误,请重新输入!" << endl;
break;
}
}
}
```
这个程序通过一个 `Student` 结构体来保存学生姓名和分数,使用了 `vector` 容器来保存所有的学生信息。程序提供了五个操作:录入学生信息、统计成绩、输出成绩单、保存成绩单和退出系统。其中,录入学生信息和保存成绩单需要用户手动输入,而统计成绩、输出成绩单和退出系统则直接输出或返回。在保存成绩单时,程序将所有学生的信息按照姓名和分数的顺序保存到一个名为 `scores.txt` 的文件中。