写一个学生成绩管理系统C++程序·
时间: 2023-09-05 14:15:07 浏览: 114
以下是一个简单的学生成绩管理系统C++程序:
```C++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
struct Student {
string name;
int id;
vector<int> grades;
};
// 根据成绩计算平均分
double calculateAverage(vector<int> grades) {
int sum = 0;
for (int grade : grades) {
sum += grade;
}
return static_cast<double>(sum) / grades.size();
}
// 打印学生信息
void printStudentInfo(Student student) {
cout << "学生姓名:" << student.name << endl;
cout << "学生学号:" << student.id << endl;
cout << "学生成绩:";
for (int grade : student.grades) {
cout << grade << " ";
}
cout << endl;
cout << "平均分数:" << calculateAverage(student.grades) << endl;
}
int main() {
vector<Student> students;
int choice = 0;
while (true) {
// 打印菜单
cout << "学生成绩管理系统" << endl;
cout << "1. 添加学生信息" << endl;
cout << "2. 显示学生信息" << endl;
cout << "3. 退出" << endl;
cout << "请选择操作:" << endl;
cin >> choice;
if (choice == 1) {
// 添加学生信息
Student student;
cout << "请输入学生姓名:" << endl;
cin >> student.name;
cout << "请输入学生学号:" << endl;
cin >> student.id;
cout << "请输入学生成绩(以-1结束):" << endl;
int grade = 0;
while (true) {
cin >> grade;
if (grade == -1) {
break;
}
student.grades.push_back(grade);
}
students.push_back(student);
cout << "添加成功!" << endl;
} else if (choice == 2) {
// 显示学生信息
if (students.empty()) {
cout << "没有学生信息!" << endl;
} else {
for (Student student : students) {
printStudentInfo(student);
}
}
} else if (choice == 3) {
// 退出
cout << "谢谢使用!" << endl;
break;
} else {
// 无效输入
cout << "无效的操作,请重新选择!" << endl;
}
}
return 0;
}
```
该程序使用了结构体 `Student` 保存学生信息,包括姓名、学号和成绩。程序提供了以下菜单选项:
1. 添加学生信息:用户可以输入学生的姓名、学号和成绩,成绩以-1为结束标志,程序会将输入的学生信息保存到一个 `vector` 中。
2. 显示学生信息:程序会遍历保存学生信息的 `vector`,并调用 `printStudentInfo` 函数打印每个学生的信息和平均分数。
3. 退出:结束程序运行。
该程序使用了函数 `calculateAverage` 计算平均分,函数 `printStudentInfo` 打印学生信息。
该程序的主要逻辑是一个无限循环,根据用户的选择执行不同的操作。如果用户输入了无效的操作,程序会提示用户重新选择。
阅读全文