20分跪求C++编程题 的答案 ~~急

2025-03-07 06:25:43
推荐回答(1个)
回答1:

#include
#include
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< cout<}

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

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

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

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

}while(flag1=0);

}