求高手编一个C语言程序(我是菜鸟)

有10个学生,每个学生的数据包括学号、姓名及3门课成绩、总成绩和平均成绩,从键盘输入10个学生的数据(包括学号,姓名及3门成绩),要求打印出3门课的总平均成绩及最高分的学生的数据(包括姓名和总成绩)
要求:1根据学生信息定义一个结构体类型,再说明一个该结构体类型的数组2用input函数从键盘上输入10个学生的数据3用average函数求出每个学生总成绩,平均成绩和所有学生的总平均成绩4用maximum函数求出最高分的学生数据5在主函数中输出每位学生的学号,姓名,三门课的成绩 ,总成绩和平均成绩以及总平均分和最高分学生的数据。
输出形式如下:
NO name score1 score2 score3 total average
101 wang 80 79 81 240 80.00
102 li 91 90 89 270 90.00
avreage=85.00
the highest score:li,score total:270

#include <iostream.h>
#include <string.h>
class stu{
char num[20];
char name[20];
double math,english,computer,sum,average;
public:
stu()
{
}
void setData(char v[20], char n[20],double ma,double eng,double comp)
{
strcpy(num,v);
strcpy(name,n);
math=ma;
english=eng;
computer=comp;
}
double getsum()
{
sum=math+english+computer;
return sum;
}
double getaverage()
{
average=getsum()/3;
return average;
}
void display()
{
cout<<"学号"<<" "<<"姓名"<<" "<<"数学"<<" "<<"英语"<<" "<<"计算机"<<" "<<"总分"<<" "<<"平均分";
cout<<endl;
cout<<num<<" "<<name<<" "<<math<<" "<<english<<" "<<computer<<" "<<sum<<" "<<average; cout<<endl;
}

friend void main();
};
void main()
{
stu s[50];
int i=0;
char num[20];
char name[20],c,p,flag,flag0=0,flag1;
double math,english,computer;
do
{
cout<<"请输入学生的学号"<<endl;
cin>>num;
cout<<"输入学生的姓名"<<endl;
cin>>name;
cout<<"请输入数学成绩"<<endl;
cin>>math;
cout<<"请输入英语成绩"<<endl;
cin>>english;
cout<<"请输入计算机的成绩"<<endl;
cin>>computer;
s[i].setData(num,name,math,english,computer);
s[i].getsum();
s[i].getaverage();
i++;
cout<<"数据输入成功,想继续输入吗(y/n)"<<endl;
cin>>c;
flag=0;
do{
if(c!='y'&&c!='n')
{
cout<<"输入选择错误,请重新输入!"<<endl;
cin>>c;
}
else
flag=1;
}while(flag==0);
}while(c=='y');
cout<<"——全部同学的信息——"<<endl;
for(int r=0;r<i;r++)
s[r].display();
do
{
cout<<"您想继续进行其他操作吗?(y/n)"<<endl;
cin>>c;
flag1=0;

if(c!='y'&&c!='n'){
cout<<"你输入错误"<<endl;
cin>>c;}
else
if(c=='y')
{
flag1=1;
cout<<"请你输入所需要的操作(0:按姓名查询)-(1:按总成绩查询)"<<endl;
cin>>p;

switch(p)
{
case '0':
{
char n[20];int j=0;char c;
do
{
int flag0=0;
cout<<"请输入你要查询的学生姓名"<<endl;
cin>>n;
for(int j=0;j<i;j++)
{
if(strcmp(n,s[j].name)==0)
{
flag0=1;
cout<<"你要查询的学生是:"<<endl;
s[j].display();
}
}
if (flag0==0)
cout<<"对不起!您要查询的学生不存在!"<<endl;
cout<<"你想继续查询吗?(y/n)"<<endl;
cin>>c;
flag0=0;
if(c!='y'&&c!='n')
{
cout<<"输入错误!请重新输入!"<<endl;
cin>>c;
}
else
if(c=='n') break;
flag0=1;
}while(flag0==0);
}
break;
case '1':
{
int z;
stu b;
cout<<"学生的总分从高到底排序以下"<<endl;
for (int x=0;x<i-1;x++)
{
z=x;
for(int y=x+1;y<i;y++)
{
if(s[x].getsum()<s[y].getsum()) z=y;

if(z!=x)
{b=s[x];s[x]=s[y];s[y]=b;}
}
}

for( int k=0;k<i;k++)
s[k].display();
}
break;
}
}
else
break;

}while(flag1=0);
温馨提示:答案为网友推荐,仅供参考
相似回答