在做上机实验,这是要求:1. 定义学生类,包括学号、姓名、性别、多门课程的成绩;假设有n个学生,由键盘输入学生信息;
2. 定义类成员函数,计算每个学生的平均成绩;
3. 按课程统计每门课程的平均成绩、最高分和最低分;(可选)
4. 同时输出所有学生信息;
5. 通过输入学生学号或姓名查询某学生的信息。
我只完成了124,怎么在我的这个程序里实现第五条?想不出来
#include <cstring>
#include<iostream>
#include <vector>
using namespace std;
class CStudent
{
private:
string m_StuID;
string m_Name;
string m_Gender;
vector<double> m_Grade;
public:
CStudent();
CStudent(string stuId, string name, string gender, vector<double> m_grade);
~CStudent();
double AvePerStu(vector<double> m_Grade);
void output();
};
CStudent::CStudent(string stuId, string name, string gender, vector<double> grade)
{
this->m_StuID = stuId;
this->m_Name = name;
this->m_Gender = gender;
this->m_Grade = grade;
}
CStudent::~CStudent()
{
cout << "本程序由" << "吉吉" << "编写" <<endl;
}
double CStudent::AvePerStu(vector<double> m_Grade)
{
vector<double>::iterator it = m_Grade.begin();
double sum = 0;
int num = 0;
double ave;
for (; it != m_Grade.end(); it++)
{
sum += *it;
num++;
}
ave = sum / num;
return ave;
}
void CStudent::output()
{
cout << m_Name << "\t" << m_StuID << "\t" << m_Gender << "\t";
vector<double>::iterator it = m_Grade.begin();
for (; it != m_Grade.end();it++)
{
cout << *it << "\t";
}
cout << AvePerStu(m_Grade) << "\t" << endl;
}
int main(int argc)
{
int stu_num;
vector<CStudent> verStu;
string StuID;
string Name;
string Gender;
vector<double> Grade;
int gra_num;
cout << "请输入学生的个数:";
cin >> stu_num;
cout << "请输入课程的个数:";
cin >> gra_num;
for (int i = 0; i < stu_num;i++)
{
cout << "请输入第" << i + 1 << "个学生的信息信息:" << endl;
cout << "学号:";
cin >> StuID;
cout << "姓名:";
cin >> Name;
cout << "性别:";
cin >> Gender;
cout << "请输入学生的课程成绩:"<<endl;
double temp_grad;
for (int j = 0; j < gra_num;j++)
{
cout << "课程" << j + 1 << ":";
cin >> temp_grad;
Grade.push_back(temp_grad);
}
CStudent stu(StuID, Name, Gender, Grade);
verStu.push_back(stu);
Grade.clear();
}
cout << "姓名" << "\t" << "学号" << "\t" << "性别" << "\t" << "成绩 " << "\t" << "平均成绩" << "\t" <<endl;
vector<CStudent>::iterator it = verStu.begin();
for (; it != verStu.end(); it++)
{
it->output();
}
return 0;
}
可以用map来实现吧。