c++编写一个学生成绩管理程序,完成学生信息输入、修改、统计和输出等功能。程序运行后先输入学生人数,动态创建学生信息(结构体)数组,然后循环显示功能操作菜单,提示用户根据菜单选择相应操作。
时间: 2024-02-22 08:59:33 浏览: 71
好的,我可以帮你实现这个程序。首先,我们需要定义一个学生信息的结构体,包括姓名、学号、成绩等字段。代码如下:
```c++
#include <iostream>
using namespace std;
struct Student {
string name;
string id;
float score;
};
```
接下来,我们需要实现学生信息的输入、修改、统计和输出等功能。可以定义一个函数来实现每个功能,然后在主函数中根据用户选择来调用相应的函数。代码如下:
```c++
// 添加学生信息
void addStudent(Student* students, int& count) {
cout << "请输入学生姓名:";
cin >> students[count].name;
cout << "请输入学生学号:";
cin >> students[count].id;
cout << "请输入学生成绩:";
cin >> students[count].score;
count++; // 更新学生人数
}
// 修改学生信息
void modifyStudent(Student* students, int count) {
string id;
cout << "请输入要修改的学生学号:";
cin >> id;
for (int i = 0; i < count; i++) {
if (students[i].id == id) {
cout << "请输入新的学生姓名:";
cin >> students[i].name;
cout << "请输入新的学生成绩:";
cin >> students[i].score;
cout << "修改成功!" << endl;
return;
}
}
cout << "未找到该学生信息!" << endl;
}
// 统计学生成绩
void calculateScore(Student* students, int count) {
float sum = 0;
float average = 0;
for (int i = 0; i < count; i++) {
sum += students[i].score;
}
average = sum / count;
cout << "学生总人数为:" << count << endl;
cout << "学生总成绩为:" << sum << endl;
cout << "学生平均成绩为:" << average << endl;
}
// 输出学生信息
void printStudent(Student* students, int count) {
for (int i = 0; i < count; i++) {
cout << "姓名:" << students[i].name << ",学号:" << students[i].id << ",成绩:" << students[i].score << endl;
}
}
// 主函数
int main() {
int count = 0;
cout << "请输入学生人数:";
cin >> count;
Student* students = new Student[count]; // 动态创建学生信息数组
int choice;
while (true) {
cout << endl;
cout << "请选择操作:" << endl;
cout << "1. 添加学生信息" << endl;
cout << "2. 修改学生信息" << endl;
cout << "3. 统计学生成绩" << endl;
cout << "4. 输出学生信息" << endl;
cout << "5. 退出程序" << endl;
cout << "请选择:";
cin >> choice;
switch (choice) {
case 1:
addStudent(students, count);
break;
case 2:
modifyStudent(students, count);
break;
case 3:
calculateScore(students, count);
break;
case 4:
printStudent(students, count);
break;
case 5:
cout << "程序已退出!" << endl;
delete[] students; // 释放动态创建的数组
return 0;
default:
cout << "输入有误,请重新输入!" << endl;
break;
}
}
return 0;
}
```
这个程序可以实现学生信息的输入、修改、统计和输出等功能。希望可以帮助到你!
阅读全文