天禄辟邪 2021-06-28 10:38 采纳率: 100%
浏览 106
已结题

C++ 无法解析的外部符号main

运行出来有这个错误怎么改呀 

#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;
}
  • 写回答

2条回答 默认 最新

  • 关注

    你没写main函数啊,全都是类和方法,写一个main函数再运行

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 shape_predictor_68_face_landmarks.dat
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制