读书人

求高手看看程序那里错啦多谢啦

发布时间: 2012-05-21 18:04:41 作者: rapoo

求高手看看,程序那里错啦,谢谢啦,急!!
#include <iostream.h>
const int n=2;
const int m=3;

class A
{ //int a[n][m];
public:
A(int q,int w,int e,int r,int t,int y)
{ a[n][m]={q,w,e,r,t,y}
void Total () ;
void Average ( );
void print();
private:
int a[n][m];
};
void A:: Total()
{

for(int i=0; i<n; i++)
{
int sum= 0;
for(j=0;j<m;j++ )
sum[i]=sum+a[i][j];

}
}
void A:: Average()
{
for( i=0; i<m; i++)
{
int sum= 0;
for(j=0;j<n;j++ )
sum[i]=sum+a[i][j];

}
}
void A:: print()
{ int sum;
for(int i=0; i<n; i++)
cout<<"第" << (i + 1)<< "个学生总分:"<< sum[i+1]<< endl;
for( i=0; i<m; i++)
cout<<"第"<<i+1<<"课程的平均成绩 average is:"<<double(sum[i+1])/n<<endl;
}
class B:public A
{
public:
B(int q,int w,int e,int r,int t,int y,int i,int j):A(q,w,e,r,t,y),b(i,j)
{A::print();cout<<i<<","<<j<<endl;}
// void print();
private:
//A a;
int b;
};


#include <iostream.h>
#include "xsl.h"
void main()
{B bb(1,2,3,4,5,6,7,8);
bb.print();
// a.print();
}

定义一个学生类,2个学生3门成绩,计算没人的总成绩,每一门平均分,定义协会类,当然继承学生类,输出2个成绩,

[解决办法]

C/C++ code
const int n=2;const int m=3;class A{ //int a[n][m];public:    A(int q,int w,int e,int r,int t,int y)    {         a[0][0] = q;        a[0][1] = w;        a[0][2] = e;        //下面自己写吧,由于你已经定义了int a[n][m]数组,不支持这样的初始化了。    //    a[n][m]={q,w,e,r,t,y};    }    void Total () ;    void Average ( );    void print();    private:        int a[n][m];};    void A:: Total()    {    int sum = 0;        for(int i=0; i<n; i++)        {            for(int j=0;j<m;j++ )                sum=sum+a[i][j];        }    }    void A:: Average()    {        int sum = 0;        for(int  i=0; i<m; i++)        {    //        int sum= 0;            //我不知道你这想定义什么?sum还是数组sum[]??            for(int j=0;j<n;j++ )                sum=sum+a[i][j];        }    }    void A:: print()    { //具体的这个我觉得你理解错了,你在这定义了sum???这里的sum不是你上面的sum,没有值啊?        //好好的修改下吧        int sum;    for(int i=0; i<n; i++)        cout<<"第" << (i + 1)<< "个学生总分:"<< sum<< endl;    for(int i=0; i<m; i++)        cout<<"第"<<i+1<<"课程的平均成绩 average is:"<<double(sum)/n<<endl;    }    class B:public A    {    public:        B(int q,int w,int e,int r,int t,int y,int i,int j):A(q,w,e,r,t,y),b(i)        {A::print();cout<<i<<","<<j<<endl;}        // void print();    private:        //    A a;        int b;    };#include "xsl.h"    void main()    {B bb(1,2,3,4,5,6,7,8);    bb.print();    // a.print();    }
[解决办法]
没见过这么写代码的,2个学生,3们成绩,就在class定义1个6个元素的数组,如果3个学生呢,重新修改数组定义,构造函数的接口也得修改。如果需求变了,某高校有1万个人,100们课,是不就要定义100×10000个参数的构造函数的。

替你改好了,下面是代码
//定义一个学生类,2个学生3门成绩,计算没人的总成绩,每一门平均分,定义协会类,当然继承学生类,输出2个成绩,

C/C++ code
#include <iostream>using namespace std;const int n=2;const int m=3;class A{ //int a[n][m];public:    A(int s1,int s2,int s3);    int Total () ;    int Average ( );    void print();        private:        int a[m];};A::A(int s1,int s2,int s3){    a[0]=s1;    a[1]=s2;    a[2]=s3;}int  A:: Total(){    int sum=0;    for(int i=0; i<m; i++)        sum+= this->a[i];    return sum;}int  A::Average(){    int i,ave;    ave=0;    for( i=0; i<m; i++)        ave+=this->a[i];    return ave/m;}void A:: print(){    int sum,ave;    sum=this->Total();    ave=this->Average();        cout << "总分:"<< sum << endl;    cout << "课程的平均成绩" << ave <<endl;}class B:public A{public:    B(int s1,int s2,int s3);private:    int b;};B::B(int s1,int s2,int s3):A(s1,s2,s3) //调用基类的构造函数{ }void main(){    B  stu1(80,88,90);    B  stu2(50,60,70);        cout << "第1个学生的总成绩和平均成绩是:" << endl;    stu1.print();    cout << "第2个学生的总成绩和平均成绩是:" << endl;    stu2.print();} 


[解决办法]
看看这个

C/C++ code
#include <iostream>using namespace std;const int m=3;class A{ //int a[n][m];public:    A(int s1,int s2,int s3);    int Total () ;    int Average ( );    void print();private:    int a[m];};A::A(int s1,int s2,int s3){    a[0]=s1;    a[1]=s2;    a[2]=s3;}int  A:: Total(){    int sum=0;    for(int i=0; i<m; i++)        sum+= this->a[i];    return sum;}int  A::Average(){    int i,ave;    ave=0;    for( i=0; i<m; i++)        ave+=this->a[i];    return ave/m;}void A:: print(){    int sum,ave;    sum=this->Total();    ave=this->Average();    cout << "总分:"<< sum << endl;    cout << "课程的平均成绩" << ave <<endl;}class B:public A{public:    B(int s1,int s2,int s3,int s4,int s5);    void print();private:    int b1;    int b2;};B::B(int s1,int s2,int s3,int s4,int s5):A(s1,s2,s3) //调用基类的构造函数{    b1=s4;    b2=s5;}void B:: print(){    A::print();cout << "协会2课成绩" << endl;    cout << b1 << "," << b2 <<endl;}void main(){        B stu1(80,88,90,70,80);        B stu2(50,60,70,78,89);        cout << "第1个学生的总成绩和平均成绩是:" << endl;        stu1.print();        cout << "第2个学生的总成绩和平均成绩是:" << endl;        stu2.print();} 

读书人网 >C++

热点推荐