传世镇魔录安卓破解版:c++的问题

来源:百度文库 编辑:高考问答 时间:2024/04/26 06:25:36
我准备写个学生信息管理的程序,可以实现查找,添加,打印的功能
在调试时无误,在运行时出现"非法执行",希望大家帮我改一下!!!!
QQ:419979711!!!!
#include<iostream>
#include<string>
using namespace std;

class Student // 类声明
{private:
string name;
char sex;
string adress;
long int number;

public:
friend void find2(string name1,Student *p);
friend void find1(long int num,Student *p);
friend Student* insert(Student *p);
friend void putout(Student *p);
Student *next;

void output()//输出
{cout<<name<<sex<<number<<adress<<endl;}

void compare(string name1)//姓名比较
{if(name==name1)
cout<<name<<sex<<number<<adress<<endl;
}

void compare2(long int num)//学号比较
{if(number==num)
cout<<name<<sex<<number<<adress<<endl;
}

void enter()//输入
{cin>>name>>sex>>number>>adress;}

Student(string n,char s,string a,long int num): name(n),sex(s),adress(a),number(num){}
}stu[4]={Student("liukai",'F',"anhui",20054723),Student("zhangdong",'F',"qinghai",20054724),Student("xingdong",'F',"hebei",2054725),Student("daijun",'F',"sichuan",20054725)};

void find2(string name1,Student *p)//姓名查找函数
{for(;p->next!=NULL;p=p->next)
{p->compare(name1);
if(p->next=NULL) cout<<"无此人!"<<endl;}
}

void find1(long int num,Student *p)//学号查找函数
{if(num<20054723||num>20054726)
cout<<"wrong!"<<endl;
else for(;p->next!=NULL;p=p->next)
p->compare2(num);
}

Student* insert(Student *p)//插入函数
{Student *t;
t=(Student *)malloc(sizeof(Student));
cout<<"输入学生的姓名,性别,学号,地址"<<endl;
t->enter();
for(;p->next!=NULL;p=p->next) ;
p->next=t;
t->next=NULL;
return p;
}

void putout(Student *p)//打印函数
{for(;p->next!=NULL;p=p->next)
p->output();
}

void main()//主函数
{Student *head;
int i;
for(i=0;i<=3;i++)
stu[i].next=&stu[i+1];
stu[i-1].next=NULL;
head=stu;
int m;
cout<<"选择操作:1-按姓名查找;2-按学号查找;3-添加学生信息;4-打出;5-结束"<<endl;
cin>>m;
if(m==1)
{ string name1;
cout<<"请输入学生姓名 "<<endl;
cin>>name1;
find2(name1,head);
}
else if(m==2) {long int num;
cout<<"请输入学生学号 "<<endl;
cin>>num;
find1(num,head);
}
else if(m==3) head=insert(head);
else if(m==4) putout(head);

else cout<<"退出系统!"<<endl;
}