学生管理系统vector&结构体

#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;
}

  

posted @ 2023-12-29 19:56  王ys  阅读(14)  评论(0编辑  收藏  举报