一个学习小组里有三个学生,每个学生学习三门课程,编程实现输入每个学生的姓名及其每门课程的成绩,输出每个学生的总分和平均分。
时间: 2024-09-27 13:08:10 浏览: 13
要实现这个功能,你可以创建一个包含姓名、成绩和课程数量的学生类,然后定义一个学习小组(或称班级)的容器来存储学生。以下是一个简单的C++程序设计:
```cpp
#include <iostream>
#include <string>
#include <map>
// 定义学生类
class Student {
public:
std::string name;
int total_score = 0;
int num_courses = 0;
// 构造函数
Student(const std::string& student_name)
: name(student_name) {}
// 添加课程成绩
void addCourseScore(int course_score) {
if (course_score >= 0) { // 检查成绩是否合法
total_score += course_score;
num_courses++;
}
}
// 计算平均分
double calculateAverage() const {
return total_score / num_courses;
}
};
// 学习小组类
class Classroom {
private:
std::map<std::string, Student> students; // 使用map保存学生信息
public:
// 添加学生
void addStudent(const std::string& name) {
students[name] = Student(name);
}
// 输入学生课程成绩并更新总分和平均分
void inputScores(const std::string& student_name, int course_scores[], int num_courses) {
auto it = students.find(student_name);
if (it != students.end()) {
for (int i = 0; i < num_courses; ++i) {
it->second.addCourseScore(course_scores[i]);
}
} else {
std::cout << "Student not found." << std::endl;
}
}
// 输出学生的总分和平均分
void printStudentStats(const std::string& student_name) {
auto it = students.find(student_name);
if (it != students.end()) {
std::cout << "Name: " << it->first << "\n";
std::cout << "Total Score: " << it->second.total_score << "\n";
std::cout << "Average Score: " << it->second.calculateAverage() << "\n";
} else {
std::cout << "Student not found." << std::endl;
}
}
};
int main() {
Classroom classroom;
classroom.addStudent("Alice");
classroom.addStudent("Bob");
classroom.addStudent("Charlie");
// 示例数据,输入Alices的成绩
int Alice_scores[] = {85, 90, 92};
classroom.inputScores("Alice", Alice_scores, 3);
// 输出Alice的统计信息
classroom.printStudentStats("Alice");
// 可以为其他学生重复上述过程
return 0;
}
```
在这个程序中,首先定义了`Student`类表示学生,包括姓名、总分和课程数量,以及添加成绩和计算平均分的方法。然后定义`Classroom`类,用于管理学生,提供添加学生、输入成绩和打印学生统计信息的功能。
在`main`函数中,创建了一个学习小组,并为每个学生添加了基本信息,然后模拟了输入学生成绩的过程,并展示了如何获取并显示每个学生的总分和平均分。