用STL的vector容器实现对一批学生信息的统计管理功能 c++ 从文件中读入以下信息(学号,姓名,性别,专业,年龄,中间用空格隔开)放入vector中 13122004 张山 M computer 20 13124003 赵四 M software 21 13124006 王五 F math 19 13125007 王总 M english 22 13125008 曾勇 M english 21 13126009 马大庆 M math 18 (1)计算并返回平均年龄 (2)按成绩排名并输出到显示
时间: 2024-03-07 18:47:50 浏览: 234
好的,我来解答你的问题:
```c++
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
struct Student {
string id;
string name;
string gender;
string major;
int age;
};
bool cmp(Student a, Student b) {
return a.age < b.age;
}
int main() {
vector<Student> students;
ifstream in("students.txt");
if (!in.is_open()) {
cout << "文件打开失败!" << endl;
return 0;
}
string id, name, gender, major;
int age;
while (in >> id >> name >> gender >> major >> age) {
Student s = {id, name, gender, major, age};
students.push_back(s);
}
in.close();
// 计算平均年龄
int sum_age = 0;
for (auto s : students) {
sum_age += s.age;
}
double avg_age = static_cast<double>(sum_age) / students.size();
cout << "平均年龄:" << avg_age << endl;
// 按年龄排序并输出
sort(students.begin(), students.end(), cmp);
cout << "按年龄排序:" << endl;
for (auto s : students) {
cout << s.id << " " << s.name << " " << s.gender << " " << s.major << " " << s.age << endl;
}
return 0;
}
```
以上是一个完整的程序,它可以实现对一批学生信息的统计管理功能,包括从文件中读入学生信息,计算平均年龄,按年龄排序并输出等。其中,用到了STL的vector容器存储学生信息,用到了sort算法对学生信息进行排序。
阅读全文