大家好,帮我看看这道程序题错在哪?

定义一个学生类(Student),数据成员包括:姓名,学号,数学和英语的成绩、用重载运算符“<<”和“>>”实现学生类对象的直接输入和输出。增加转换函数,实现姓名和总成绩... 定义一个学生类(Student),数据成员包括:姓名,学号,数学和英语的成绩、用重载运算符“<<”和“>>”实现学生类对象的直接输入和输出。增加转换函数,实现姓名和总成绩的转换。设计一个完整的程序,实现成员函数和重载运算符的正确性。
#include <iostream>
#include <cmath>
using namespace std;

class Student{
char name[10];
int number;
int mathe;
int eng;
public:
friend ostream& operator<<(ostream&,Student&);
friend istream& operator>>(istream&,Student&);
};

ostream& operator<<(ostream& os,Student& p)
{os<<p.name<<p.number<<p.mathe<<p.eng;}

istream& operator>>(istream& is,Student& p)
{is>>p.name>>p.number>>p.mathe>>p.eng;}

int main(void)
{int a;
cin>>"请输入学生人数";
cin>>a;
cout<<"请输入\n"<<"学生姓名"<<" "<<"学号"<<" "<<"数学成绩"<<" "<<"英语成绩";
Student* p=new Student[a];
for(int i=0;i<a;i++) cin>>p[i];
cout<<"学生姓名"<<" "<<"学号"<<" "<<"数学成绩"<<" "<<"英语成绩\n";
for(int j=0;j<a;j++) cout<<p[j];
return 0;
}
D:\zuoye\d13zd11t\d13zd11t1.cpp(16) : error C2248: 'name' : cannot access private member declared in class 'Student'
每个私有成员来2次
D:\zuoye\d13zd11t\d13zd11t1.cpp(27) : error C2593: 'operator >>' is ambiguous
D:\zuoye\d13zd11t\d13zd11t1.cpp(29) : error C2593: 'operator <<' is ambiguous
展开
 我来答
huifeng00
2009-12-01 · TA获得超过5235个赞
知道大有可为答主
回答量:808
采纳率:0%
帮助的人:711万
展开全部
#include <iostream>
#include <cmath>
using namespace std;
class Student;
ostream& operator<<(ostream&,Student&);
istream& operator>>(istream&,Student&);
class Student{
char name[10];
int number;
int mathe;
int eng;
public:
friend ostream& operator<<(ostream&,Student&);
friend istream& operator>>(istream&,Student&);
};

ostream& operator<<(ostream& os,Student& p)
{os<<p.name<<p.number<<p.mathe<<p.eng;
return os;}

istream& operator>>(istream& is,Student& p)
{is>>p.name>>p.number>>p.mathe>>p.eng;
return is;}

int main(void)
{int a;
cin>>"请输入学生人数";
cin>>a;
cout<<"请输入\n"<<"学生姓名"<<" "<<"学号"<<" "<<"数学成绩"<<" "<<"英语成绩";
Student* p=new Student[a];
for(int i=0;i<a;i++) cin>>p[i];
cout<<"学生姓名"<<" "<<"学号"<<" "<<"数学成绩"<<" "<<"英语成绩\n";
for(int j=0;j<a;j++) cout<<p[j];
return 0;
}
可以运行了。
weyoin
2009-12-01 · TA获得超过169个赞
知道小有建树答主
回答量:293
采纳率:0%
帮助的人:187万
展开全部
#include <iostream>

using namespace std;

class Student;

ostream& operator<<(ostream&,Student&);
istream& operator>>(istream&,Student&);

class Student
{
public:
Student();
~Student();

private:
char* pName;
char* pStuID;
int Math;
int Eng;

public:
friend ostream& operator<<(ostream&,Student&);
friend istream& operator>>(istream&,Student&);
};

Student::Student():Math(0),Eng(0)
{
pName=new char[20];
pStuID=new char[20];
}

Student::~Student()
{
delete[] pName;
delete[] pStuID;
}

ostream& operator <<(ostream& os,Student& stu)
{
os<<stu.pName<<"\t"<<stu.pStuID<<"\t"
<<stu.Math<<"\t"<<stu.Eng<<endl;
return os;
}

istream& operator>>(istream& is,Student& stu)
{
is>>stu.pName>>stu.pStuID>>stu.Math>>stu.Eng;
return is;
}

int main(int argc,char* argv[])
{
int s;
cout<<"请输入学生人数: ";
cin>>s;
cout<<"请输入\n"<<"学生姓名"<<" "<<"学号"<<" "<<"数学成绩"<<" "<<"英语成绩\n";
Student* pStu=new Student[s];

for(int i=0;i<s;i++)
cin>>pStu[i];

cout<<"学生姓名"<<" "<<"学号"<<" "<<"数学成绩"<<" "<<"英语成绩\n";
for(int j=0;j<s;j++)
cout<<pStu[j];

delete[] pStu;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式