#include <iostream>
#include <string>
using namespace std;
class student
{public:
string name;
int num;
float YuWen; //语文
float ShuXue; //数学
float English; //英语
float WuLi; //物理
float HuaXue; //化学
float sum; //总分
float average; //平均成绩
};
void Srgkcj(student stu[10]); //函数声明
void Qmpzcj(student stu[10]);
void Qmkpjz(student stu[10]);
float sum_YuWen=0; //初始所有同学总分为零
float sum_ShuXue=0;
float sum_English=0;
float sum_WuLi=0;
float sum_HuaXue=0;
float average_YuWen;//初始所有学生的单门科目平均分为零
float average_ShuXue;
float average_English;
float average_WuLi;
float average_HuaXue;
int main() //主函数
{
int a;
student stu[10];
while (1)
{
cout<<"录入每名学生的各科成绩->请按1"<<endl;
cout<<"求出每名学生的平均成绩和总分->请按2"<<endl;
cout<<"求每门课程的平均分、及格率、最高成绩和最低成绩->请按3"<<endl;
cout<<"输出总成绩前5名的学生学号、各科成绩和总分->请按4"<<endl;
cout<<"输出各科补考学生的学号和成绩->请按5"<<endl;
while (1)
{
cin>>a;
if(a>=1&&a<=5)break;
else cout<<endl<<"请选择1-4"<<endl;
}
switch (a)
{
case 1:Srgkcj(&stu[10]);break ;
case 2:Qmpzcj(&stu[10]);break ;
case 3:Qmkpjz(&stu[10]);break ;
}
}
return 0;
}
void Srgkcj(student stu[10]) //输入每名学生各科成绩
{
int i;
for(i=0;i<10;i++)
{
cout<<"请输入第 %d 个学生的编号:"<<endl;
cin>>stu[i].num;
cout<<"请输入该学生的姓名:"<<endl;
cin>>stu[i].name;
cout<<"请输入该学生的语文成绩:"<<endl;
cin>>stu[i].YuWen;
cout<<"请输入该学生的数学成绩:"<<endl;
cin>>stu[i].ShuXue;
cout<<"请输入该学生的英语成绩:"<<endl;
cin>>stu[i].English;
cout<<"请输入该学生的物理成绩:"<<endl;
cin>>stu[i].WuLi;
cout<<"请输入该学生的化学成绩:"<<endl;
cin>>stu[i].HuaXue;
}
}
void Qmpzcj(student stu[10]) //求出每名学生的平均成绩和总分
{
int i;
for(i=0;i<10;i++)
{stu[i].sum=stu[i].WuLi+stu[i].ShuXue+stu[i].English+stu[i].WuLi+stu[i].HuaXue;
stu[i].average=stu[i].sum/5;
}
for (i=0;i<10;i++)
{cout<<stu[i].name<<"总成绩为 :"<<stu[i].sum<<" ";
cout<<"平均成绩为 :"<<stu[i].average<<endl;
}
}
void Qmkpjz(student stu[10]) //求每门课程的平均分、及格率、最高成绩和最低成绩
{int i,j;
int m=0;
float n;
for(j=0;j<10;j++) sum_YuWen=sum_YuWen+stu[j].YuWen;
average_YuWen=sum_YuWen/10;
for(j=0;j<10;j++) sum_ShuXue=sum_ShuXue+stu[j].ShuXue;
average_ShuXue=sum_ShuXue/10;
for(j=0;j<10;j++) sum_English=sum_English+stu[j].English;
average_English=sum_English/10;
for(j=0;j<10;j++) sum_WuLi=sum_WuLi+stu[j].WuLi;
average_WuLi=sum_WuLi/10;
for(j=0;j<10;j++) sum_HuaXue=sum_HuaXue+stu[j].HuaXue;
average_HuaXue=sum_HuaXue/10;
cout<<"全班语文平均分为:"<<average_YuWen<<endl;
cout<<"全班数学平均分为:"<<average_ShuXue<<endl;
cout<<"全班英语平均分为:"<<average_English<<endl;
cout<<"全班物理平均分为:"<<average_WuLi<<endl;
cout<<"全班化学平均分为:"<<average_HuaXue<<endl;
for(i=0;i<10;i++) //语文及格率
if(stu[i].YuWen>=60) m=m+1;
n=m/10;
cout<<"语文及格率为:"<<n<<endl;
for(i=0;i<10;i++) //数学及格率
if(stu[i].YuWen>=60) m=m+1;
n=m/10;
cout<<"数学及格率为:"<<n<<endl;
for(i=0;i<10;i++) //英语及格率
if(stu[i].YuWen>=60) m=m+1;
n=m/10;
cout<<"英语及格率为:"<<n<<endl;
for(i=0;i<10;i++) //物理及格率
if (stu[i].YuWen>=60) m=m+1;
n=m/10;
cout<<"物理及格率为:"<<n<<endl;
for(i=0;i<10;i++) //化学及格率
if(stu[i].YuWen>=60) m=m+1;
n=m/10;
cout<<"化学及格率为:"<<n<<endl;
}