用c++为学生输入若干门课程的成绩信息,并能够统计出每位学生的总成绩。并将所有信息需存放在文本文件中。
时间: 2024-01-21 22:17:13 浏览: 32
下面是一个简单的C++程序,可以根据学生输入的课程成绩计算每位学生的总成绩,并将所有信息存储在一个文本文件中:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
const int NUM_COURSES = 3; // 设定课程数量为3
struct Student {
string name;
double scores[NUM_COURSES];
double total_score;
};
int main() {
ofstream outfile("students.txt"); // 创建一个文件输出流对象
int num_students;
cout << "请输入学生数量: ";
cin >> num_students;
Student *students = new Student[num_students]; // 动态申请一个学生结构体数组
for (int i = 0; i < num_students; i++) {
cout << "请输入第" << i + 1 << "个学生的姓名: ";
cin >> students[i].name;
students[i].total_score = 0;
for (int j = 0; j < NUM_COURSES; j++) {
cout << "请输入第" << j + 1 << "门课程的成绩: ";
cin >> students[i].scores[j];
students[i].total_score += students[i].scores[j];
}
outfile << students[i].name << " "; // 将学生姓名写入文件
for (int j = 0; j < NUM_COURSES; j++) {
outfile << students[i].scores[j] << " "; // 将学生成绩写入文件
}
outfile << students[i].total_score << endl; // 将学生总成绩写入文件
}
outfile.close(); // 关闭文件输出流
delete[] students; // 释放动态申请的内存
return 0;
}
```
该程序首先提示用户输入学生数量,然后动态申请一个学生结构体数组,并在循环中输入每个学生的姓名和课程成绩,并计算每个学生的总成绩。接着,程序将每个学生的姓名、课程成绩和总成绩写入一个名为“students.txt”的文本文件中。
请注意,在实际应用中,您可能需要根据具体要求调整该程序,并进行错误处理等适当的修改。