请用c++实现2. 某班需要从磁盘文件1.txt中读入若干同学的《面向对象程序设计》成绩求平均值,并把平均值输出到屏幕上。现在要求设计一个File类完成此项工作。
时间: 2024-03-06 14:51:21 浏览: 88
好的,以下是用C++实现的代码:
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
class File {
public:
static double calculateAverage(std::string fileName) {
std::ifstream file(fileName);
double sum = 0;
int count = 0;
std::string line;
while (std::getline(file, line)) {
double score = std::stod(line);
sum += score;
count++;
}
file.close();
return sum / count;
}
};
int main() {
try {
double average = File::calculateAverage("1.txt");
std::cout << "平均成绩为:" << average << std::endl;
} catch (const std::exception& e) {
std::cerr << "文件读取错误:" << e.what() << std::endl;
}
return 0;
}
```
这个类中的calculateAverage方法接受一个字符串类型的文件名作为参数,并返回一个double类型的平均值。该方法通过std::ifstream来读取文件中的数据,并计算平均值。如果文件不存在或者无法读取,会抛出std::exception异常。
在你的主程序中,你可以这样使用该类:
```c++
double average = File::calculateAverage("1.txt");
std::cout << "平均成绩为:" << average << std::endl;
```
在这个示例程序中,我们通过调用File类的calculateAverage方法来计算1.txt文件中的平均值,并将结果输出到控制台上。如果文件不存在或者无法读取,则会捕获std::exception异常并输出错误信息。
阅读全文