纠错?解决方案

纠错???
1.编写一个程序,输入N个学生的资料,包括姓名,学号,成绩,要求输出这些学生的资料并求出平均成绩。(使用静态成员函数avg();静态变量,学生数 num,总成绩 sum)
#include<iostream>
#include<cmath>
using namespace std;
class stud
{
public:
stud(char no[],char name[],float deg)
{
strcpy(x1,name);
strcpy(x2,no);
x3=deg;
num++;
}
stud(stud &s)
{
strcpy(x1,s.x1);
strcpy(x2,s.x2);
x3=s.x3;
}
void disp()
{
cout<<s.x1<<" "<<s.x2<<" "<<s.x3<<endl;
cout<<s.avg()<<endl;
}
static void avg()
{
float s;
s.sum=s.sum+s.x3;
s=s.sum/s.num;
}
private:
char x1[20],x2[20];
float x3;
  static float sum,num;
};

void main()
{
char a[],b[];
float c;
cin>>a>>b>>c;
  stud s(a,b,c);
s.disp();

}
好像写的不对,求改正。。。

------解决方案--------------------
C/C++ code
#include<iostream>
#include<cmath>
using namespace std;
class stud
{
public:
    stud(char no[],char name[],float deg)
    {
        strcpy(x1,name);
        strcpy(x2,no);
        x3=deg;
        sum=0;
        num=0;
        num++;
    }
    stud(stud &s)
    {
        strcpy(x1,s.x1);
        strcpy(x2,s.x2);
        x3=s.x3;
    }
void disp()
{
    cout<<x1<<" "<<x2<<" "<<x3<<endl;
    cout<<avg()<<endl;
}
float avg()
{
    float s;
    sum=sum+x3;
    s=sum/num;
    return s;
}
private:
    char x1[20],x2[20];
    float x3;
    float sum,num;
};

void main()
{
    char a[20]={0},b[20]={0};
    float c;
    cin>>a>>b>>c;
    stud s(a,b,c);
    s.disp();
}

------解决方案--------------------
#include <iostream>
#include <string>
using namespace std;

static int num=0;
static float sum=0;

class Student
{
public:
/*
Student()
{
name=NULL;
number=NULL;
grade=0;
num=0;
}
*/

Student(string name,string number,float grade)
{
this->name=name;
this->number=number;
this->grade=grade;
num++;
sum+=grade;
}


string GetName()
{
return name;
}

string GetNumber()
{
return number;
}

float GetGrade()
{
return grade;
}

private:
string name;
string number;
float grade;
};

float GetAverage()
{
float average=0;
average=sum/num;
return average;
}

int main()
{
string name,number;
float grade;


int num;
cout<<"The number of students:";
cin>>num;

cout<<"Please input the information of student:"<<endl;
for(int i=0;i<num;i++)
{
cout<<"student:"<<i+1<<endl;
cout<<"Name:";
cin>>name;
cout<<"Number:";
cin>>number;
cout<<"Grade:";
cin>>grade;
cout<<endl;
Student student(name,number,grade);
}

cout<<endl<<"The average score is:";
cout<<GetAverage()<<endl;

return 0;
}

运行结果
The number of students:3
Please input the information of student:
student:1
Name:Henry
Number:01
Grade:90

student:2
Name:perter
Number:02
Grade:89

student:3
Name:Justin
Number:03
Grade:91


The average score is:90