#include<iostream>
using namespace std;
#include<stdlib.h>
#include<time.h>
/*1、一个班有6个学生,开5门课。
(1)求第一门课的平均分
(2)找出有2门及以上不及格的学生,输出他们的学号,姓名,全部课程成绩和平均成绩
(3)找出平均成绩90分以上或全部课程成绩在85分及以上的学生
*/
typedef struct
{
string cname;
int grade;
}Course;
typedef struct
{
int sno;
string sname;
Course C[5];
} Student;
void Init_fuc(Student *S)
{
int x;
srand((unsigned int)time(NULL));
for(int i=0;i<6;i++)
for(int j=0;j<5;j++)
{
x = rand()%101;
S[i].C[j].grade=x;
}
for(int i=0;i<6;i++)
{
cout <<"学号: "S[i].sno <<" ";
for(int j=0;j<5;j++)
cout <<"各科成绩: "S[i].C[j].grade<<' ';
cout << endl;
}
cout <<endl;
}
/*(1)求第一门课的平均分*/
int avg_grade(Student *S)
{
int sum =0;
for(int i=0;i<6;i++)
sum+=S[i].C[0].grade;
sum /=6;
return sum;
}
/*(2)找出有2门及以上不及格的学生,输出他们的学号,姓名,全部课程成绩和平均成绩*/
void is_pass(Student *S)
{
cout <<"输出不及格学生的学号,姓名,全部课程成绩和平均成绩:"<<endl;
for(int i=0;i<6;i++)
{
int count =0;
for(int j=0;j<5;j++)
if(S[i].C[j].grade<60) count++;
if(count >=2)
{
cout<<"学号:"<<S[i].sno <<endl;
cout<<"姓名: "<<S[i].sname<<endl;
for(int j=0;j<5;j++)
cout<<S[i].C[j].grade<< ' ';
cout <<endl;
int sum1=0;
for(int i=0;i<5;i++) sum1+=S[i].C[0].grade;
cout<<"平均成绩: "<<sum1/5<<endl;
}
}
}
/*3)找出平均成绩90分以上或全部课程成绩在85分及以上的学生*/
void is_find(Student *S)
{
for(int i=0;i<6;i++)
{
int sum2 =0;
bool flag =1;
for(int j=0;j<5;j++)
{
if(S[i].C[0].grade <85)
{
flag =0;
break;
}
sum2+=S[i].C[0].grade;
}
if(flag || sum2/5 >90) cout << "平均成成绩90分以上或全部课程成绩在85分及以上的学生" <<S[i].sno<<endl;
}
}
int main()
{
Student S[6];
Init_fuc(S);
int avg =avg_grade(S);
cout << "请输出第一门课的平均分:"<<avg<<endl;
is_pass(S);
is_find(S);
return 0;
}