输入学生各科考试成绩,计算每个学生的平均分,输出每名学生的各科考试成绩和个人平均分,计算输出各科目的平均分、最高分、最低分、及格率(自行选择2个输出),按学生总评成绩进行排名并输出排名。(c++ #include<stdio.h>回答)
#include<cstring>
#include<iostream>
#include<map>
using namespace std;
class Stu
{
public:
int id;
float math;
float english;
float chinese;
float sum;
Stu(float ma,float eng,float ch,float s)
{
math = ma;
english = eng;
chinese = ch;
sum = s;
};
float pj();
void print_s(float sum);
void sum1();
};
float Stu::pj()
{
float pjsorce = 0;
pjsorce = (math + english + chinese) / 3;
return pjsorce;
}
void Stu::print_s(float s)
{
cout << "各科成绩(数学,英语,语文):" << math << " " << english << " " << chinese << endl;
cout << "个人平均成绩:" << sum/3 << endl;
}
void Stu::sum1()
{
sum = math + english + chinese;
}
int main()
{
Stu s1(86, 56, 70, 0);
Stu s2(46, 89, 23, 0);
Stu s3(69, 69, 99, 0);
Stu s4(56, 99, 99, 0);
s1.sum1();
s2.sum1();
s3.sum1();
s4.sum1();
cout << "-----------------------" << endl;
float sum2 = s1.pj();
s1.print_s(sum2);
float sum3 = s2.pj();
s2.print_s(sum2);
float sum4 = s3.pj();
s3.print_s(sum2);
float sum5 = s4.pj();
s4.print_s(sum2);
cout << "-----------------------" << endl;
// 各科平均分
float math_a = (s1.math + s2.math + s3.math + s4.math) / 4;
float english_a = (s1.english + s2.english + s3.english + s4.english) / 4;
float chinese_a = (s1.chinese + s2.chinese + s3.chinese + s4.chinese) / 4;
cout << "数学平均分:" << math_a << endl;
cout << "英语平均分:" << english_a << endl;
cout << "语文平均分:" << chinese_a << endl;
cout << "-----------------------" << endl;
//最高分 & 最低分
float m[4] = {s1.math,s2.math,s3.math,s4.math};
float e[4] = {s1.english,s2.english,s3.english,s4.english};
float c[4] = {s1.chinese,s2.chinese,s3.chinese,s4.chinese};
float math_max = m[0], math_min = m[0];
float english_max = e[0], english_min = e[0];
float chinese_max = c[0], chinese_min = c[0];
float ma = 0, en = 0, ch =0; // 及格率
for(int i=0; i<4; i++)
{
// 数学
if(m[i] > math_max && i != 0)
{
math_max = m[i];
}
if(m[i] < math_min && i != 0)
{
math_min = m[i];
}
if(m[i] >= 60)
{
ma++;
}
// 英语
if(e[i] > english_max && i != 0)
{
english_max = e[i];
}
if(e[i] < english_min && i != 0)
{
english_min = e[i];
}
if(e[i] >= 60)
{
en++;
}
// 语文
if(c[i] > chinese_max && i != 0)
{
chinese_max = c[i];
}
if(c[i] < chinese_min && i != 0)
{
chinese_min = c[i];
}
if(c[i] >= 60)
{
ch++;
}
}
ma = ma / 4;
en = en / 4;
ch = ch / 4;
cout << "数学最高分:" << math_max << ",最低分:" << math_min << ",及格率:" << ma << endl;
cout << "英语最高分:" << english_max << ",最低分:" << english_min << ",及格率:" << en << endl;
cout << "语文最高分:" << chinese_max << ",最低分:" << chinese_min << ",及格率:" << ch << endl;
cout << "-----------------------" << endl;
// 排名
float sum[4] = {s1.sum,s2.sum,s3.sum,s4.sum};
for(int i=0; i<4; i++)
{
for(int j=i+1; j < 4; j++)
{
if(sum[i] <= sum[j])
{
float temp = sum[i];
sum[i] = sum[j];
sum[j] = temp;
}
}
}
cout << "排名(高到低): ";
for(int i=0; i<4; i++)
{
cout << sum[i] << " ";
}
cout << endl;
cout << "-----------------------" << endl;
return 0;
}