求高手帮忙

这是一个简单的输入学生信息的类,是一道习题,我编译成功运行出错,它很简单,求高手看看哪儿有问题#include<iostream>#include<string>#inc... 这是一个简单的输入学生信息的类,是一道习题,我编译成功运行出错,它很简单,求高手看看哪儿有问题
#include<iostream>

#include<string>

#include<vector>

#include<cstdlib>

using namespace std;

class student
{
public:
student(string names,string num)

{
name=names;
number=num;
};

student();

void print();

string getnumber()
{
return number;
};

void grades(int a[]);

private:

float grade[5];

string name;

string number;
};

void student::print()
{
cout<<"姓名"<<'\t'<<"学号"<<'\t'<<"成绩"<<endl
<<name<<'\t'<<number<<"\t"<<grade[5]<<endl;
}

void student::grades(int a[])
{

for(int i=0;i<4;i++)

grade[i]=a[i];

grade[5]=grade[0]*0.5+grade[1]*0.25+(grade[2]+grade[3])*0.125;

}

int main()
{
vector<student> students;

char ans;

do{
student next;

string tpn,tpu;

int grade[4];

cout<<"输入该同学的姓名,确保你输入的姓名有意义且不要用中文,鉴于程序的体积,它不会帮助你进行"<<endl

<<"有效性的检查果你输入错误,它可能直接终止运行,后果会很严重"<<endl;

getline(cin,tpn);

cout<<"输入该同学的学号(可以用0打头),确保你输入的学号有意义并且不重复,鉴于程序的体积,它不会帮助你进行"<<endl
<<"有效性的检查果你输入错误,它可能直接终止运行,后果会很严重"<<endl;

getline(cin,tpu);

next=student(tpn,tpu);

cout<<"请按顺序输入该同学期末,期中考试和两次测验的成绩(用空格隔开),确保你输入的成绩是严格按照顺序的并且"<<endl
<<"是有意义的(只能是整数),鉴于程序的体积,它不会帮助你进行"<<endl
<<"有效性的检查果你输入错误,它可能直接终止运行,后果会很严重"<<endl;

for(int i=0;i<4;i++)

cin>>grade[i];

next.grades(grade);

students.push_back(next);

cout<<"你要结束输入吗?y or n "<<endl;

cin>>ans;

}while(ans=='y'||ans=='Y');

cout<<"你想查看某学生的信息吗?n or y?"<<endl;

char an;

cin>>an;

if(an=='y'||an=='Y')
cout<<"输入你要查询的学生的学号(不要留下空格),确保它是正确的,存在的,鉴于程序的体积"<<endl
<<"它不会帮你进行正确性的检查,如果你输入错误,它可能会终止运行!后果很严重"<<endl;

do
{
char ans;

string input;

getline(cin,input);

for(int i=0;i<students.size();i++)

if(input==students[i].getnumber()) students[i].print;

cout<<"糟糕你输错了,我说了,会很严重"<<endl;

exit(1);

cout<<"要继续吗y or n"<<endl;

cin>>ans;

}while(ans=='y'||ans=='Y');

return 0;
}
运行提示unresloved externals,我刚学c++,怎么看都看不出问题,求高手看看哪儿的问题
展开
 我来答
徐光猪
推荐于2016-01-08 · TA获得超过4168个赞
知道大有可为答主
回答量:1299
采纳率:50%
帮助的人:1841万
展开全部
#include<iostream>
#include<string>
#include<vector>
#include<cstdlib>
using namespace std;
class student
{
public:
student(string names,string num)
{
name=names;
number=num;
};

student() //定义一个默认构造函数
{};

void print();

string getnumber()
{
return number;
};

void grades(int a[]);

private:

float grade[5];

string name;

string number;
};

void student::print()
{
cout<<"姓名"<<'\t'<<"学号"<<'\t'<<"成绩"<<endl
<<name<<'\t'<<number<<"\t"<<grade[5]<<endl;
}

void student::grades(int a[])
{

for(int i=0;i<4;i++)

grade[i]=a[i];

grade[5]=grade[0]*0.5+grade[1]*0.25+(grade[2]+grade[3])*0.125;

}

int main()
{
vector<student> students;

char ans;

do{
student next;

string tpn,tpu;

int grade[4];

cout<<"输入该同学的姓名,确保你输入的姓名有意义且不要用中文,鉴于程序的体积,它不会帮助你进行"<<endl

<<"有效性的检查果你输入错误,它可能直接终止运行,后果会很严重"<<endl;

getline(cin,tpn);

cout<<"输入该同学的学号(可以用0打头),确保你输入的学号有意义并且不重复,鉴于程序的体积,它不会帮助你进行"<<endl
<<"有效性的检查果你输入错误,它可能直接终止运行,后果会很严重"<<endl;

getline(cin,tpu);

next=student(tpn,tpu);

cout<<"请按顺序输入该同学期末,期中考试和两次测验的成绩(用空格隔开),确保你输入的成绩是严格按照顺序的并且"<<endl
<<"是有意义的(只能是整数),鉴于程序的体积,它不会帮助你进行"<<endl
<<"有效性的检查果你输入错误,它可能直接终止运行,后果会很严重"<<endl;

for(int i=0;i<4;i++)

cin>>grade[i];

next.grades(grade);

students.push_back(next);

cout<<"你要结束输入吗?y or n "<<endl;

cin>>ans;

}while(ans=='y'||ans=='Y');

cout<<"你想查看某学生的信息吗?n or y?"<<endl;

char an;

cin>>an;

if(an=='y'||an=='Y')
cout<<"输入你要查询的学生的学号(不要留下空格),确保它是正确的,存在的,鉴于程序的体积"<<endl
<<"它不会帮你进行正确性的检查,如果你输入错误,它可能会终止运行!后果很严重"<<endl;

do
{
char ans;

string input;

getline(cin,input);

for(int i=0;i<students.size();i++)

if(input==students[i].getnumber())
students[i].print();//这里应该是一个公有函数

cout<<"糟糕你输错了,我说了,会很严重"<<endl;

exit(1);

cout<<"要继续吗y or n"<<endl;

cin>>ans;

}while(ans=='y'||ans=='Y');

return 0;
}
程序语法错误我帮你修改好了楼主,不过我没有看你是做什么的,有事HI我吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式