求助,程序改错
【要求】编写一个程序,已有若干个学生数据,包括学号、姓名、成
绩,要求输出这些学生数据并计算平均分。
【分析】定义一个类Stud,数据成员no表示学号,整型;数据成员
name表示姓名,10个字符的数组;数据成员deg表示学生成绩,整
型;
为了记录学生的人数和成绩总和,
添加了两个静态整型变量num
和sum;定义构造函数完成数据的初始化,disp()函数显示数据成员
信息,avg()函数完成平均分的计算。
在主函数外部,记得为类Stud中的静态整型变量赋初值。在主
函数中,定义3个Stud对象s1、s2和s3,通过disp()成员函数完成
信息输出,通过avg()成员函数完成三个对象的平均分计算。
#include<iostream>
using namespace std;
class Stud
{public:
int no,
string name,
int deg,
static int num,
static int sum,
int avg,
Stud(int no1,string name1,int deg1)
{ no=no1;
name=name1;
deg=deg1;
}
}
void disp()
{
cout << "Student" <<No<<" ";
cout<<"Name"<<name<<" ";
cout<<"Mark"<<deg<<endl;
}
int avg()
{ int A;
A=num/sum;
cout<<"Avg="<<A<<endl;
}
int main()
Stud s1(13,小B,80),
Stud s2(18,小C,90);
Stud s3(17,小D,75);
s1.disp();
S2.disp();
s3.disp();
Stud::avg();
return 0;
}
请求大佬帮忙改错,不胜感激。 改好了,解释全在注释里。
代码如下:
#include<iostream>
using namespace std;
class Stud
{
public:
void disp();
void avg();
int no;//学号
string name;//姓名
int deg;//成绩
static int num;
static int sum;
Stud(int no1,string name1,int deg1);
};
int Stud::num=0;//假设有3门课
int Stud::sum=0;
//定义构造函数完成数据的初始化
Stud::Stud(int no1,string name1,int deg1)
{
no=no1;
name=name1;
deg=deg1;
sum+=deg;
num++;
}
//disp()函数显示数据成员
void Stud::disp()
{
cout << "Student no:" <<no<<endl;
cout<<"Name:"<<name<<endl;
cout<<"Mark:"<<deg<<endl;
}
//avg()函数完成平均分的计算
void Stud::avg()
{
cout<<"Avg="<<(sum/num)<<endl;
}
int main()
{
/* Stud s1(13,"小B",80);
Stud s2(18,"小C",90);
Stud s3(17,"小D",75);
s1.disp();
s2.disp();
s3.disp();*/
Stud s={
Stud(13,"小B",80),
Stud(18,"小C",90),
Stud(17,"小D",75)
};
for(int i=0;i<3;i++)
s.disp();
//通过avg()成员函数完成三个对象的平均分计算。
s.avg();
//Stud.avg();
return 0;
}
运行结果如下:
OK 希望有点用吧!{:5_110:}
页:
[1]