65,210
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
using namespace std;
class Stud
{
private:
char *no;
char *name;
double deg;
static double sum;
static double num;
public:
Stud(){}
~Stud()
{
delete []no;
delete []name;
}
void setdata(char*,char *,double);
void disp();
static double avg();
};
void Stud::setdata(char*nu,char *na,double d)
{
no=new char[strlen(nu)+1];
strcpy(no,nu);
name=new char[strlen(na)+1];
strcpy(name,na);
deg=d;
sum+=deg;
num++;
}
void Stud::disp()
{
cout<<"学号:"<<no<<"\t姓名:"<<name<<"\t成绩:"<<deg<<endl;
}
double Stud::avg()
{
return sum/num;
}
double Stud::sum=0;
double Stud::num=0;
void main()
{
char no[20],na[20];
double d;
int i=0;
Stud st[20];
while(no[1]!='#' &&na[0]!='#' &&d!=0)
{
cout<<"请输入学号:";
cin>>no;
cout<<"请输入姓名:";
cin>>na;
cout<<"请输入成绩:";
cin>>d;
if(no[1]!='#' &&na[0]!='#' &&d!=0)
st[i++].setdata(no,na,d);
}
for(int j=0;j<i;j++)
st[j].disp();
cout<<st[i-1].avg()<<endl;
}
class Stud
{
private:
char *no;
char *name;
double deg;
static double sum;
static double num;
public:
Stud(){ no = NULL; name = NULL; } // 构造和析构需要修改
~Stud()
{
if (no)
{
delete []no;
}
if (name)
{
delete []name;
}
}
void setdata(char*,char *,double);
void disp();
static double avg();
};
~Stud()
{
if(no != NULL)
delete []no;
if(name != NULL)
delete []name;
}
