c++用模块化设计方法实现:依次输入班内每个学生一门课成绩,成绩在0-100之间,当成绩超出范围时停止输入,输出统计的学生人数和所有学生的总成绩。
时间: 2024-09-30 08:15:10 浏览: 18
在 C++ 中,我们可以采用模块化的思路来实现这个功能。首先,我们可以创建一个模块(例如一个名为 `Student` 的类),它包含学生的姓名和成绩。然后,我们再创建一个模块(如 `GradeBook` 类)用于管理班级信息,包括存储学生、处理输入、检查成绩范围以及计算统计数据。
以下是一个简单的步骤和代码片段:
1. 定义 `Student` 类:
```cpp
class Student {
public:
std::string name;
int score;
// 构造函数和设置分数的方法
Student(const std::string& n, int s) : name(n), score(s) {}
};
```
2. 定义 `GradeBook` 类:
```cpp
class GradeBook {
private:
std::vector<Student> students; // 存储学生的容器
public:
void addStudent(int score) {
if (score >= 0 && score <= 100) {
students.push_back(Student("未知", score));
} else {
std::cout << "Score out of range, input stopped.\n";
return;
}
}
int getTotalScore() const {
int total = 0;
for (const auto& student : students) {
total += student.score;
}
return total;
}
int getStudentCount() const {
return students.size();
}
};
```
3. 主程序入口:
```cpp
int main() {
GradeBook gradeBook;
while (true) {
int score;
std::cout << "Enter a student's score (0-100): ";
std::cin >> score;
gradeBook.addStudent(score);
}
int totalScore = gradeBook.getTotalScore();
int studentCount = gradeBook.getStudentCount();
std::cout << "Total students: " << studentCount << "\n";
std::cout << "Total score: " << totalScore << "\n";
return 0;
}
```
在这个例子中,用户可以持续输入成绩直到超出范围。程序会计算并输出学生总数和总分。如果需要提前结束输入,可以在主循环中添加条件判断或提供一个退出命令。