1、每个学生的数据包括:学号、姓名、3门课的成绩、3门课的平均分、3门课的总分是(学生类的数据成员),实现以下功能:
(1)从键盘输入10个学生数据
(2)打印出10个学生各课程的平均分
(3)输出总分最高分同学的所有信息
Student.h
#include <iostream>
using namespace std;
class Student{
private:
int num;
string name;
float average;
float sum;
float score[3];
public:
Student();
~Student();
void showinfo();
void input(int i);
float getMath();
float getEnglish();
float getChina();
float getSum();
};
Student.cpp
#include "Student.h"
#include <iostream>
using namespace std;
Student::Student(){
num=0;
name="";
sum=0;
average=0;
}
Student::~Student(){}
void Student::showinfo(){
cout<<"学号:"<<num<<"姓名:"<<name<<endl;
cout<<"语文成绩"<<score[0]<<endl;
cout<<"数学成绩"<<score[1]<<endl;
cout<<"英语成绩"<<score[2]<<endl;
sum=score[0]+score[1]+score[2];
average=sum/3;
cout<<"三门课的总分"<<sum;
cout<<"三门课的平均分"<<average<<endl;
}
void Student::input(int i)
{
int j=i+1;
cout<<"输入第"<<j<<"学生的学号" <<endl;
cin>>num;
cout<<"输入第"<<j<<"学生的姓名" <<endl;
cin>>name;
cout<<"输入第"<<j<<"学生的三门分数" <<endl;
for(int i=0;i<3;i++){
cin>>score[i];
}
}
float Student::getChina(){
return score[0];
}
float Student::getMath(){
return score[1];
}
float Student::getEnglish(){
return score[2];
}
float Student::getSum(){
for(int i=0;i<3;i++){
sum+=score[i];
}
return sum;
}
Student_main.cpp
#include <iostream>
#include "Student.cpp"
using namespace std;
int MaxScore(float sumSort[],int n){
float max=sumSort[0];
int counter=0;
for(int i=0;i<n;i++){
if(max<sumSort[i]){
max=sumSort[i];
counter=i;
}
}
return counter;
}
int main() {
const int size=10;
Student stu[size];
float SumChina=0,SumMath=0,SumEnglish=0;
float sumScore[3];
float sumSort[size];
int counter=0;
for(int i=0;i<size;i++){
stu[i].input(i);
stu[i].showinfo();
//所有学生的课程成绩
SumChina+=stu[i].getChina();
SumMath+=stu[i].getMath();
SumEnglish+=stu[i].getEnglish();
//将所有的学生的总分放入数组中
sumSort[i]=stu[i].getSum();
}
int index=MaxScore(sumSort,4);
cout<<"成绩最高的学生信息为:";
stu[index].showinfo();
cout<<"语文平均分:"<<SumChina/size<<" "<<"数学平均分:"<<SumMath/size<< " "<<"英语平均分:"<<SumEnglish/size<<endl;
system("pause");
return 0;
}