#include<iostream>
#include<vector>
#include<windows.h>
using namespace std;
bool b=false;
int m,l_m,age,grade;
string name;
struct Student{
int id;
string name;
int age;
int grade;
}s;
void maininterface(){
cout<<"*欢迎来到学生管理系统*"<<endl;
cout<<"1.新建学生信息(输入1后直接输入:姓名 年龄 年级)"<<endl;
cout<<"2.查找学生信息"<<endl;
cout<<"3.修改学生信息"<<endl;
cout<<"4.删除学生信息"<<endl;
cout<<"5.退出该系统"<<endl;
}
vector<Student> insert(vector<Student> a){
if(s.id==0){
s.id=1000;
}else{
s.id=s.id+1;
}
cin>>s.name>>s.age>>s.grade;
a.push_back(s);
return a;
}
vector<Student> search(vector<Student> a){
system("cls");
while(1){
cout<<"请选择你的查找方式:"<<endl;
cout<<"1.输入ID查找"<<endl;
cout<<"2.输入姓名查找(模糊查询)"<<endl;
cout<<"3.输入年龄查找"<<endl;
cout<<"4.输入年级查找"<<endl;
cout<<"5.返回主菜单"<<endl;
cin>>m;
system("cls");
if(m==1){
cout<<"请输入要查找学生的ID"<<endl;
cin>>l_m;
for(int i=0;i<a.size();i++){
if(l_m==a[i].id){
b=true;
cout<<"你所查找的学生信息为:\n"<<"学生学号:"<<a[i].id<<"\n学生姓名:"<<a[i].name<<"\n学生年龄:"<<a[i].age<<"\n学生年级:"<<a[i].grade<<"\n______________"<<endl;
}
}
if(!b){
cout<<"没有查询到该学生的信息"<<endl;
Sleep(1000);
break;
}
}else if(m==2){
cout<<"请输入要查找学生的姓名(模糊查询)"<<endl;
cin>>name;
for(int i=0;i<a.size();i++){
if(a[i].name.find(name)!=string::npos){
b=true;
cout<<"你所查找的学生信息为:\n"<<"学生学号:"<<a[i].id<<"\n学生姓名:"<<a[i].name<<"\n学生年龄:"<<a[i].age<<"\n学生年级:"<<a[i].grade<<"\n______________"<<endl;
}
}
if(!b){
cout<<"没有查询到该学生的信息"<<endl;
Sleep(1000);
break;
}
}else if(m==3){
cout<<"请输入要查找学生的ID"<<endl;
cin>>l_m;
for(int i=0;i<a.size();i++){
if(l_m==a[i].age){
b=true;
cout<<"你所查找的学生信息为:\n"<<"学生学号:"<<a[i].id<<"\n学生姓名:"<<a[i].name<<"\n学生年龄:"<<a[i].age<<"\n学生年级:"<<a[i].grade<<"\n______________"<<endl;
}
}
if(!b){
cout<<"没有查询到该学生的信息"<<endl;
Sleep(1000);
break;
}
}else if(m==4){
cout<<"请输入要查找学生的ID"<<endl;
cin>>l_m;
for(int i=0;i<a.size();i++){
if(l_m==a[i].grade){
b=true;
cout<<"你所查找的学生信息为:\n"<<"学生学号:"<<a[i].id<<"\n学生姓名:"<<a[i].name<<"\n学生年龄:"<<a[i].age<<"\n学生年级:"<<a[i].grade<<"\n______________"<<endl;
}
}
if(!b){
cout<<"没有查询到该学生的信息"<<endl;
Sleep(1000);
break;
}
}else if(m==5){
break;
}
}
return a;
}
vector<Student> revise(vector<Student> a){
cout<<"请输入要修改学生的ID"<<endl;
cin>>l_m;
for(int i=0;i<a.size();i++){
if(l_m==a[i].id){
b=true;
cout<<"你所查找的学生信息为:\n"<<"学生学号:"<<a[i].id<<"\n学生姓名:"<<a[i].name<<"\n学生年龄:"<<a[i].age<<"\n学生年级:"<<a[i].grade<<"\n请选择你要修改的信息:"<<endl;
cout<<"1.修改姓名\n2.修改年龄\n3.修改年级"<<endl;
int o;
cin>>o;
if(o==1){
cout<<"请输入要改的姓名:";
cin>>a[i].name;
}else if(o==2){
cout<<"请输入要改的年龄:";
cin>>a[i].age;
}else if(o==3){
cout<<"请输入要改的年级:";
cin>>a[i].grade;
}
}
}
if(!b){
cout<<"没有查询到该学生的信息"<<endl;
Sleep(1000);
return a;
}
cout<<endl<<"修改成功!";
Sleep(1000);
return a;
}
vector<Student> del(vector<Student> a){
cout<<"请输入要删除学生的ID"<<endl;
cin>>l_m;
for(int i=0;i<a.size();i++){
if(l_m==a[i].id){
b=true;
cout<<"你所要删除的学生信息为:\n"<<"学生学号:"<<a[i].id<<"\n学生姓名:"<<a[i].name<<"\n学生年龄:"<<a[i].age<<"\n学生年级:"<<a[i].grade<<"\n确定删除此学生的信息吗?\n1.确定\n2.返回主菜单"<<endl;
}
}
if(!b){
cout<<"没有查询到该学生的信息"<<endl;
return a;
}
cin>>l_m;
if(l_m==1){
a.erase(a.begin()+l_m);
cout<<"删除成功"<<endl;
return a;
}else{
return a;;
}
}
int main(){
vector<Student> a;
int n;
system("cls");
while(1){
maininterface();
cin>>n;
if(n==5){
break;
}
switch(n){
case 1:{
a=insert(a);
cout<<"新建成功.你的学号:"<<s.id<<endl;
Sleep(1000);
system("cls");
break;
}
case 2:{
a=search(a);
system("cls");
break;
}
case 3:{
a=revise(a);
system("cls");
break;
}
case 4:{
a=del(a);
Sleep(1000);
system("cls");
break;
}
case 5:{
break;
}
}
}
return 0;
}