c++,某班需要从文本文件1.txt或二进制文件1.dat中读入若干同学的《面向对象程序设计》成绩求平均值,并把平均值输出到屏幕上。现在要求设计一个File类完成此项工作
时间: 2024-02-12 17:05:51 浏览: 112
好的,你的问题是如何设计一个File类,用于读取文件中的成绩并计算平均值输出到屏幕上。
首先,我们需要在File类中定义一个成员函数用于读取文件中的成绩。该成员函数应该接受一个文件名作为参数,并返回读取到的成绩数据。
接下来,在File类中定义一个成员函数用于计算成绩平均值。该成员函数应该接受成绩数据作为参数,并返回平均值。
最后,在File类中定义一个成员函数用于输出平均值到屏幕上。该成员函数应该接受平均值作为参数,并将其输出到屏幕上。
以下是一个基本的File类的示例代码:
```c++
#include <iostream>
#include <fstream>
#include <vector>
class File {
public:
std::vector<int> readScores(std::string filename) {
std::vector<int> scores;
std::ifstream infile(filename);
int score;
while (infile >> score) {
scores.push_back(score);
}
infile.close();
return scores;
}
double calculateAverage(std::vector<int> scores) {
double sum = 0;
for (int i = 0; i < scores.size(); i++) {
sum += scores[i];
}
return sum / scores.size();
}
void printAverage(double average) {
std::cout << "Average score: " << average << std::endl;
}
};
int main() {
File file;
std::vector<int> scores = file.readScores("1.txt");
double average = file.calculateAverage(scores);
file.printAverage(average);
return 0;
}
```
该示例代码中,我们使用了 vector 容器来存储读取到的成绩数据。readScores 函数使用 ifstream 类来读取文件中的成绩数据,并将其存储到 scores 容器中。calculateAverage 函数接受 scores 容器作为参数,并计算平均值。printAverage 函数接受平均值作为参数,并将其输出到屏幕上。
在 main 函数中,我们实例化了一个 File 对象,并调用其成员函数来完成读取文件、计算平均值和输出平均值的工作。
阅读全文