首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求大神啊帮忙修改下。这段程序各种异常啊

2012-05-03 
求大神啊,帮忙修改下。这段程序各种错误啊。。。#include fstream.h#include iomanip.h#includeiostream.

求大神啊,帮忙修改下。这段程序各种错误啊。。。
#include <fstream.h>
#include <iomanip.h>
#include<iostream.h>
#include<string>
using namespace std;
class student {
? int id;
string name;
int age;
float score1,score2,score3;
? public:
? student (int nid, string nname, int nage,float s1, float s2,float s3)
? { id=nid;
name=nname;
Score1=s1;scpore2=s2;score3=s3;
}
? friend ostream &operator << (ostream &stream, student s);
};
ostream &operator<<( ostream &stream, student s)
{ int i,j;
? for(i=1;i<=ob.leg;i++)
stream<<"* ";
? stream<<endl;
for(i=2;i<ob.leg;i++)
{ for(j=1;j<=ob.leg;j++)
? if((j==1)||(j==ob.leg))
? stream<<"* ";
? else?
? stream<<" ";
? stream<<endl;
}
? for(i=1;i<=ob.leg;i++)
stream<<"* ";
? stream<<endl;
? return stream;
}

int main ()
{ struct student
{ int snum;
? char *name;
? float score[3];
? float avg;
};
? struct student s[5];
? int i;
? ofstream fout("STUD.REC");
? if(!fout)
? { cout<<"cannot open output file .\n"; return 1; }
? for(i=0;i<5;i++)
{ cout<<"\n输入第"<<i+1<<"号学生的学号:";
cin>>s[i].snum;
? cout<<" 输入学生的姓名:";
? s[i].name=new char[20];
cin>>s[i].name;
? cout<<" 输入三门课的成绩:";
? cin>>s[i].score[0]>>s[i].score[1]>>s[i].score[2];
s[i].avg=(s[i].score[0]+s[i].score[1]+s[i].score[2])/3;
fout<<s[i].snum<<' '<<s[i].name<<' '<<s[i].avg<<' ';
}
? fout.close ();
? ifstream fin("STUD.REC");
? if(!fin)
? { cout<<"cannot open input file .\n"; return 1; }
? struct student outs;
? outs.name=new char[20];
? for(i=0;i<5;i++)
{ fin>>outs.snum>>outs.name>>outs.avg;
cout<<"\n第"<<i+1<<"号学生的学号是:";
cout<<outs.snum;
? cout<<"\n 姓名是:";
cout<<outs.name;
? cout<<"\n 平均分成绩是:";
cout<<outs.avg<<endl;
}
? cout<<endl;
? fin.close();
? return 0;
}


[解决办法]
operator <<里面的ob是什么?我猜不出来

C/C++ code
#include <fstream>#include <iomanip>#include<iostream>#include<string>using namespace std;class student{    int id;    string name;    int age;    float score1,score2,score3;public:    student (int nid, string nname, int nage,float s1, float s2,float s3)    {        id=nid;        name=nname;        score1=s1;        score2=s2;        score3=s3;    }    friend ostream &operator << (ostream &stream, student s);};ostream &operator<<( ostream &stream, student s){    int i,j;    for(i=1; i<=ob.leg; i++)        stream<<"* ";    stream<<endl;    for(i=2; i<ob.leg; i++)    {        for(j=1; j<=ob.leg; j++)            if((j==1)||(j==ob.leg))                stream<<"* ";            else                stream<<" ";        stream<<endl;    }    for(i=1; i<=ob.leg; i++)        stream<<"* ";    stream<<endl;    return stream;}int main (){    struct student    {        int snum;        char *name;        float score[3];        float avg;    };    struct student s[5];    int i;    ofstream fout("STUD.REC");    if(!fout)    {        cout<<"cannot open output file .\n";        return 1;    }    for(i=0; i<5; i++)    {        cout<<"\n输入第"<<i+1<<"号学生的学号:";        cin>>s[i].snum;        cout<<" 输入学生的姓名:";        s[i].name=new char[20];        cin>>s[i].name;        cout<<" 输入三门课的成绩:";        cin>>s[i].score[0]>>s[i].score[1]>>s[i].score[2];        s[i].avg=(s[i].score[0]+s[i].score[1]+s[i].score[2])/3;        fout<<s[i].snum<<' '<<s[i].name<<' '<<s[i].avg<<' ';    }    fout.close ();    ifstream fin("STUD.REC");    if(!fin)    {        cout<<"cannot open input file .\n";        return 1;    }    struct student outs;    outs.name=new char[20];    for(i=0; i<5; i++)    {        fin>>outs.snum>>outs.name>>outs.avg;        cout<<"\n第"<<i+1<<"号学生的学号是:";        cout<<outs.snum;        cout<<"\n 姓名是:";        cout<<outs.name;        cout<<"\n 平均分成绩是:";        cout<<outs.avg<<endl;    }    cout<<endl;    fin.close();    return 0;} 


[解决办法]
看你的代码后想问你几个问题。为什么即定义class student又定义struct student??重复定义吗??

C/C++ code
class student{};    struct student    {         int snum;        char *name;        float score[3];        float avg;    }; 

热点排行