这个哪里出错了,新手求救大神

#include
#include
using namespace std;
class Student
{
int no;
string name;
float score;
Student *next;
Student *per;
public:
Student();
static string school;
Student * find(int i_no);
void erase();
int add(Student * i_newStudent);
int getno();
string getname();
float getscore();
void edit(string i_newname,float i_score);
static int maxno;
};
Student::Student()
{
score=0.0;
per=NULL;
next=NULL;
}
Student *Student::find(int i_no)
{
if(i_no==no)
return this;
if(next!=NULL)
return next->find(i_no);
return NULL;
}
void Student::erase()
{
if(no return;
if(per!=NULL)
per->next=next;
if(next!=NULL)
next->per=per;
next=NULL;
per=NULL;
}
int Student::add(Student *i_newStudent)
{
int no=maxno+1;
while(no>0)
{
if(NULL==find(no))
break;
no=no+1;
}
Student *tmp=this;
while(no>0)
{if(tmp->next==NULL)
break;
tmp=tmp->next;
}
tmp->next=i_newStudent;
i_newStudent->next=NULL;
i_newStudent->per=tmp;
i_newStudent->no=no;
return no;
}
int Student::getno(){return no;}
string Student::getname(){return name;}
float Student::getscore(){return score;}
int Student::maxno=1000;
int main()
{
Student * studentroot=new Student();
string input1;
float input2;
Student * tmp=NULL;
while(true)
{
cout<<"输入指令:查找(F),增加(A),编译(E),删除(D),退出(Q)"< cin>>input1;
if(("F"==input1)||("f"==input1))
{
cout<<"输入学号:";
int id=-1;
cin>>id;
tmp=studentroot->find(id);
if(tmp==NULL)
{
cout<<"没找到"< continue;
}
coutgetno();
cout<<"姓名:";
string name;
if((name=tmp->getname())!=" ")
cout< else
cout coutgetscore()< }
else if((input1=="A")||(input1=="a"))
{
cout cin>>input1>>input2;
tmp=new Student();
tmp->edit(input1,input2);
cout<<"学号:"<add(tmp)< }
else if((input1=="E")||(input1=="e"))
{
cout int id=0;
cin>>id;
tmp=studentroot->find(id);
if(tmp==NULL)
{
cout<<"空号"< continue;
}
cout cin>>input1>>input2;
tmp->edit(input1,input2);
cout<<"更改成功."< }
else if((input1=="D")||(input1=="d"))
{
cout int id=0;
cin>>id;
tmp=studentroot->find(id);
tmp->erase();
cout<<"已成功删除"<<endl;
delete tmp;
}
else if((input1=="Q")||(input1=="q"))
{
break;
}
else
{
cout<<"输入有误!"<<endl;
}
}
delete studentroot;
return 0;
}

看着好费劲啊!看着好费劲啊!看着好费劲啊!

不知道楼主的问题是?编译错误还是运行错误?
楼主把代码放在代码标签里面,这样直接赋值粘贴很多地方少东西的

崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。

代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。

楼主 我把你这代码粘贴进vs,发现很多错误呀,你的这个代码没有占全,头两行连头文件都没有~~~~

楼主,你把所有程序粘上把,不然没法调

报啥错,根据错误进行排查