#include <iostream>
#include <string>
#include <fstream>
#include <cstdlib>
#include "link_list.h"
using namespace std;
struct Student
{
int sno;
char name[31];
int age;
char qq[15];
};
LINK_LIST<Student> stus;
//LINK_LIST<Teacher> tea;
void init();
void save();
void input_stu_info();
void del_stu();
void show_all();
int main()
{
init();
cout<<"欢迎使用本系统!\n"<<endl;
cout<<"温馨提示:"<<endl;
cout<<"录入学生信息请输入1"<<endl;
cout<<"删除学生信息请输入2"<<endl;
cout<<"查看所有学生信息请输入3"<<endl;
cout<<"离开请输入0"<<endl;
int op;
while(1)
{
cout<<"\n:> ";
cin>>op;
switch(op)
{
case 0:
{
save();
cout<<"\n谢谢使用,再见!"<<endl;
exit(0);
}
break;
case 1:
{
input_stu_info();
save();
}
break;
case 2:
{
del_stu();
save();
}
break;
case 3:
{
show_all();
}
break;
}
}
return 0;
}
void input_stu_info()
{
Student s;
cout<<"请在下面依次输入学生信息:"<<endl;
cout<<"学号:";
cin>>s.sno;
cout<<"姓名:";
cin>>s.name;
cout<<"年龄:";
cin>>s.age;
cout<<"QQ:";
cin>>s.qq;
stus.Append(s);
cout<<"\n录入成功!"<<endl;
}
void del_stu()
{
int sno;
cout<<"请输入要删除的学生的学号:";
cin>>sno;
int i;
for(i=0;i<stus.GetSize();i++)
{
if(stus[i].sno==sno) break;
}
if(i==stus.GetSize())
{
cout<<"不存在该学号,删除失败!"<<endl;
}
else
{
stus.Delete(i);
cout<<"删除成功!"<<endl;
}
}
void show_all()
{
if(stus.Empty())
{
cout<<"\n当前没有任何学生信息,请录入!"<<endl;
return;
}
cout<<"\n所有学生信息如下:"<<endl;
int i;
for(i=0;i<stus.GetSize();i++)
{
cout<<stus[i].sno<<' '<<stus[i].name<<' '<<stus[i].age<<' '<<stus[i].qq<<endl;
}
cout<<endl;
}
void init()
{
ifstream f("stu_info");
if(!f) return;
Student s;
while(!f.eof())
{
f.read((char*)&s,sizeof(Student));
if(f.gcount()>0)
stus.Append(s);
}
f.close();
}
void save()
{
ofstream f("stu_info");
int i;
for(i=0;i<stus.GetSize();i++)
{
f.write((char*)&stus[i],sizeof(Student));
}
f.close();
}