#include<iostream>
#include<list>
#include<string>
#include<cstdlib>
using namespace std;
//使用list(双向链表)容器对象实现简单的学生管理系统
//list简单使用
class Student{ //学生基本信息结构
public:
string num; //学号
string name; //姓名
string sex; //性别
int age; //年龄
};
int main()
{
Student stu;
list<Student> L;
list<Student>::iterator pos;
char ch;
cout<<" **********学生信息管理系统********"<<endl;
while(1){
cout<<" 1.追加学生信息"<<endl;
cout<<" 2.删除最后一个学生的信息"<<endl;
cout<<" 3.显示学生信息"<<endl;
cout<<" 4.删除所有学生信息"<<endl;
cout<<" 5.统计学生个数"<<endl;
cout<<" 0.退出"<<endl;
cout<<" 请输入操作序号:";
cin>>ch;
switch(ch){
case '1':{
system("cls");
cout<<" ************追加学生信息的界面************"<<endl;
Student s;
int n;
cout<<" 请输入要追加的学生个数:";
cin>>n;
if(n>0){
cout<<" 学号,学生姓名,学生性别,学生年龄:
";
}
for(int i=0;i<n;i++){
cout<<" ";
cin>>s.num>>s.name>>s.sex>>s.age;
L.push_back(s);
}
cout<<" ";
system("pause");
system("cls");
break;
}
case '2':{
system("cls");
cout<<" *********删除最后一个学生的信息界面************"<<endl;
if(!L.empty()){
L.pop_back();
cout<<" 删除成功!"<<endl;
}else{
cout<<" 数据库为空!"<<endl;
}
cout<<" ";
system("pause");
system("cls");
break;
}
case '3':{
system("cls");
cout<<" *********显示学生信息的界面*********"<<endl;
if(L.empty()){
cout<<" 数据库为空,无法显示!"<<endl;
}else{
int i=1;
for(list<Student>::iterator it=L.begin();it!=L.end();it++,i++){
cout<<" "<<i<<". 学号:"<<(*it).num<<" "<<"学生姓名:"<<(*it).name<<" "<<"学生性别:"<<(*it).sex<<" "<<"学生年龄:"<<(*it).age<<endl;
}
}
cout<<" ";
system("pause");
system("cls");
break;
}
case '4':{
system("cls");
cout<<" *********删除所有学生信息的界面*********"<<endl;
if(L.empty()){
cout<<" 数据库为空!"<<endl;
} else{
L.clear();
cout<<" 删除成功!"<<endl;
}
cout<<" ";
system("pause");
system("cls");
break;
}
case '5':{
system("cls");
cout<<" *********统计学生人数界面********"<<endl;
cout<<" 学生总人数为:"<<L.size()<<endl;
cout<<" ";
system("pause");
system("cls");
break;
}
case '0':{
cout<<" 是否退出?(y是,n不是):";
cin>>ch;
switch(ch){
case 'y':{
exit(0);
break;
}
case 'n':{
system("cls");
break;
}
}
break;
}
}
}
return 0;
}