
求高手帮忙
这是一个简单的输入学生信息的类,是一道习题,我编译成功运行出错,它很简单,求高手看看哪儿有问题#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++,怎么看都看不出问题,求高手看看哪儿的问题 展开
#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++,怎么看都看不出问题,求高手看看哪儿的问题 展开
1个回答
展开全部
#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我吧
#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我吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询