运行出来有这个错误怎么改呀
#include <iostream>
#include <algorithm>
#include <string>
#include <fstream>
#include <vector>
using namespace std;
bool optNext();
class student{
public:
student(fstream &);
student(string, long, string, int, int, string, int, string, string, string)
{
this->name = name;
this->stuID = stuID;
this->sex = sex;
this->age = age;
this->CLASS = CLASS;
this->spe = spe;
this->GRADE = GRADE;
this->HA = HA;
this->MPN = MPN;
this->EM = EM;
}
int getage(){
return age;
}
int getCLASS(){
return CLASS;
}
int getGRADE(){
return GRADE;
}
string getspe(){
return spe;
}
string getHA() {
return HA;
}
string getMPN() {
return MPN;
}
string getEM() {
return EM;
}
friend bool disbyID(long);
friend bool disbyName(string &);
friend bool add();
friend bool avgSc();
friend bool resSc();
friend bool readFile(fstream &infile);
friend bool saveFile(ofstream &);
private:
string name;
long stuID;
string sex;
int age;
int CLASS;
int GRADE;
string spe;
string HA;
string MPN;
string EM;
};
vector<student> vec;
vector<student>::iterator it;
bool readFile(fstream &infile){
while (!infile.eof())
{
vec.push_back(infile);
infile.get();
}
return true;
}
student::student(fstream &infile) {
infile >> name;
infile >> stuID;
infile >> sex;
infile >> age;
infile >> CLASS;
infile >> GRADE;
infile >> spe;
infile >> HA;
infile >> MPN;
infile >> EM;
}
bool saveFile(ofstream &outfile){
bool emptyCheck = true;
it = vec.begin();
while (it != vec.end())
{
if (!emptyCheck)
outfile << endl;
outfile << it->name << " " << it->stuID << " " << it->sex
<< " " << it->age << " " << it->CLASS << " " << it->GRADE << " " << it->spe<< "" << it->HA<<""<<it->MPN<<""<<it->EM;
it++;
emptyCheck = false;
}
return true;
}
bool disbyID(long id){
it = vec.begin();
do{
if (it->stuID == id)
{
cout << it->name << " " << it->stuID << " " << it->sex << " " << it->age << " " << it->CLASS << " " << it->GRADE << " " << it->spe << "" << it->HA << "" << it->MPN << "" << it->EM<< endl;
break;
}
else it++;
} while (it != vec.end());
if (it == vec.end())
{
cout << "没有找到符合的学生ID!" << endl;
}
return true;
}
bool disbyName(string &name){
it = vec.begin();
do{
if (it->name == name)
{
cout << it->name << " " << it->stuID << " " << it->sex << " " << it->age << " " << it->CLASS << " " << it->GRADE << " " << it->spe << ""<<it->HA<<""<<it->MPN<<""<<it->EM<<endl;
break;
}
else it++;
} while (it != vec.end());
if (it == vec.end())
{
cout << "没有找到符合的学生姓名!" << endl;
}
return true;
}
bool add(){
string name;
long stuID;
string sex;
int age;
int CLASS;
int spe;
string GRADE;
string HA;
string MPN;
string EM;
cout << "请输入学生信息: " << endl;
cout << "name: ";
cin >> name;
cout << "学生 ID: ";
cin >> stuID;
cout << "学生 性别[男/女]: ";
cin >> sex;
cout << "学生年龄: ";
cin >> age;
cout << "学生班级: ";
cin >> CLASS;
cout << "学生年级: ";
cin >> GRADE;
cout << "学生专业: ";
cin >> spe;
cout << "学生家庭地址:";
cin >> HA;
cout << "学生手机号码:";
cin >> MPN;
cout << "学生邮箱:";
cin >> EM;
vec.push_back(student(name, stuID, sex, age, CLASS, GRADE, spe, HA, MPN, EM));
return true;
return 0;
}