c++学生信息管理系统

请问问题出在哪里呢运行不出来,望得到正确代码


#include<iostream>
#include<list>
#include<windows.h>
using namespace std;
//定义结构体
typedef struct
{
    string name;
    int age;
    string sex;
    string id;
    string phone;
}student;
list<student> stulist;
list<student>::iterator stu;
int Select()
{
    int select;
    cout << "\n输入选择:****************0.上一级****************1.继续****************"<<endl;
    cin>>select;
    return select;
}

//录入信息
void inputStudent()
{
    cout <<"\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话"<<endl;
    Student data;
    cin >>data.name>>data.age>>data.sex>>data.id>>data.phone;
    stulist.push_back(data);
    int select = Select();
loop1:
    if (select==0);
    else if (select==1)
        inputStudent();
    else{
        cout <<"错误请重新输入:";
        cin>>select;
        goto loop1;
    }
    return;
}
//浏览信息
void printfStudent()
{
    cout <<"\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话"<<endl;
    for (stu = stulist.begin(); stu!=stulist.end(); stu++)
        cout<<(*stu).name<<"\t\t"<<(*stu).age<<"\t\t"<<(*stu).sex
        <<"\t\t"<<(*stu).id<<"\t"<<(*stu).phone
        <<endl;
    int select=Select();
    loop1:
        if (select==0);
    else if (select==1)
        printfStudent();
    else{
        cout <<"错误请重新输入:";
        cin>>select;
        goto loop1;
    }
}
//修改信息
void changeStudent()
{
    string str;
    bool f=true;
    cout<<"请输入需要修改信息的学生姓名:\n";
    cin>>str;
    for (stu = stulist.begin(); stu!=stulist.end(); stu++)
        if(str==(*stu).name)
    {
        cout<<"请输入需要修改后的学生信息:\n";
        cout <<"\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话"<<endl;
        Student data;
        cin>>data.name>>data.age>>data.sex>>data.id>>data.phone;
        *stu=data;
        cout<<"已修改";
        f=!f;

}
if(f)
        cout <<"不存在该信息!"<<endl;
        int select =Select();
loop1:
    if(select==0);
    else if (select==1)
        changeStudent();
    else
    {
        cout<<"发生错误,请重新输入:";
        cin>>select;
        goto loop1;
    }
    return;
}
//删除信息
void delectStudent()
{
     string str;
    bool f=true;
    cout<<"\n请输入需要删除信息的学生姓名:\n";
    cin>>str;
    for (stu = stulist.begin(); stu!=stulist.end(); stu++)
        if(str==(*stu).name)
    {
        stulist.erase(stu);
        cout<<"\n已删除";
        f=!f;
        break;
}

if(f)
        cout <<"\n不存在该信息!"<<endl;
        int select =Select();
loop1:
    if(select==0);
    else if (select==1)
        deleteStudent();
    else
    {
        cout<<"选择错误,请重新输入:";
        cin>>select;
        goto loop1;
    }
    return;
}


//查找信息
void searchStudent()
{
    string str;
    bool f=true;
    cout<<"\n请输入需要查找信息的学生姓名:\n";
    cin>>str;
    for (stu = stulist.begin(); stu!=stulist.end(); stu++)
        if(str==(*stu).name)
    {
        cout <<"\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话"<<endl;
        cout<<(*stu).name<<"\t\t"<<(*stu).age<<"\t\t"<<(*stu).sex
        <<"\t\t"<<(*stu).id<<"\t"<<(*stu).phone
        <<endl;
        f=!f;
        break;
}
if(f)
        cout <<"未查到该信息!"<<endl;
        int select =Select();
loop1:
    if(select==0);
    else if (select==1)
        searchStudent();
    else
    {
        cout<<"选择错误,请重新输入:";
        cin>>select;
        goto loop1;
    }
    return;
}

//设计菜单页面
void menu()
{
    cout << "\n                               学生信息管理系统\n\n"
         <<"*************************************************************************************\n\n"
         <<"\t\t\t\t0.退出系统\n\n"
         <<"\t\t\t\t1.录入信息\n\n"
         <<"\t\t\t\t2.浏览信息\n\n"
         <<"\t\t\t\t3.修改信息\n\n"
         <<"\t\t\t\t4.删除信息\n\n"
         <<"\t\t\t\t5.查找信息\n\n"
         <<"***************************************************************************************\n";

}

void keydown()
{
    int choice{0};
    cin>>choice;
    switch (choice)
    {
        case 0:
        exit(0);
        break;
        case 1:
            system("cls");
            cout <<"\n****************************【录入信息】**********************************\n";
            inputStudent();
            break;
        case 2:
            system("cls");
            cout <<"\n****************************【浏览信息】**********************************\n";
            printfStudent();
            break;
        case 3:
            system("cls");
            cout <<"\n****************************【改变信息】**********************************\n";
            changeStudent();
            break;
        case 4:
            system("cls");
            cout <<"\n****************************【修改信息】**********************************\n";
            deleteStudent();
            break;
        case 5:
            system("cls");
            cout <<"\n****************************【查找信息】**********************************\n";
            searchStudent();
            break;
        default:
            cout<<"错误,请重新输入\n";
            system("pause");
            break;

    }
}

int main()
{
    system("color F0");
    while (1)
    {
        system("cls");
        menu();
        keydown();
    }
    system("pause");
    return 0;
}

img


#include<iostream>
#include<list>
#include<windows.h>
#include <string>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;
//定义结构体
typedef struct Stude
{
    string name;
    int age;
    string sex;
    string id;
    string phone;
}student;

list<student> stulist;
list<student>::iterator stu;
int Select()
{
    int select;
    cout << "\n输入选择:****************0.上一级****************1.继续****************" << endl;
    cin >> select;
    return select;
}

//录入信息
void inputStudent()
{
    cout << "\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话" << endl;
    student data;
    cin >> data.name >> data.age >> data.sex >> data.id >> data.phone;
    stulist.push_back(data);
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        inputStudent();
    else {
        cout << "错误请重新输入:";
        cin >> select;
        goto loop1;
    }
    return;
}
//浏览信息
void printfStudent()
{
    cout << "\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话" << endl;
    for (stu = stulist.begin(); stu != stulist.end(); stu++)
        cout << (*stu).name << "\t\t" << (*stu).age << "\t\t" << (*stu).sex
        << "\t\t" << (*stu).id << "\t" << (*stu).phone
        << endl;
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        printfStudent();
    else {
        cout << "错误请重新输入:";
        cin >> select;
        goto loop1;
    }
}
//修改信息
void changeStudent()
{
    string str;
    bool f = true;
    cout << "请输入需要修改信息的学生姓名:\n";
    cin >> str;
    for (stu = stulist.begin(); stu != stulist.end(); stu++)
        if (str == (*stu).name)
        {
            cout << "请输入需要修改后的学生信息:\n";
            cout << "\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话" << endl;
            student data;
            cin >> data.name >> data.age >> data.sex >> data.id >> data.phone;
            *stu = data;
            cout << "已修改";
            f = !f;

        }
    if (f)
        cout << "不存在该信息!" << endl;
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        changeStudent();
    else
    {
        cout << "发生错误,请重新输入:";
        cin >> select;
        goto loop1;
    }
    return;
}
//删除信息
void delectStudent()
{
    string str;
    bool f = true;
    cout << "\n请输入需要删除信息的学生姓名:\n";
    cin >> str;
    for (stu = stulist.begin(); stu != stulist.end(); stu++)
        if (str == (*stu).name)
        {
            stulist.erase(stu);
            cout << "\n已删除";
            f = !f;
            break;
        }

    if (f)
        cout << "\n不存在该信息!" << endl;
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        delectStudent();
    else
    {
        cout << "选择错误,请重新输入:";
        cin >> select;
        goto loop1;
    }
    return;
}


//查找信息
void searchStudent()
{
    string str;
    bool f = true;
    cout << "\n请输入需要查找信息的学生姓名:\n";
    cin >> str;
    for (stu = stulist.begin(); stu != stulist.end(); stu++)
        if (str == (*stu).name)
        {
            cout << "\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话" << endl;
            cout << (*stu).name << "\t\t" << (*stu).age << "\t\t" << (*stu).sex
                << "\t\t" << (*stu).id << "\t" << (*stu).phone
                << endl;
            f = !f;
            break;
        }
    if (f)
        cout << "未查到该信息!" << endl;
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        searchStudent();
    else
    {
        cout << "选择错误,请重新输入:";
        cin >> select;
        goto loop1;
    }
    return;
}

//设计菜单页面
void menu()
{
    cout << "\n                               学生信息管理系统\n\n"
        << "*************************************************************************************\n\n"
        << "\t\t\t\t0.退出系统\n\n"
        << "\t\t\t\t1.录入信息\n\n"
        << "\t\t\t\t2.浏览信息\n\n"
        << "\t\t\t\t3.修改信息\n\n"
        << "\t\t\t\t4.删除信息\n\n"
        << "\t\t\t\t5.查找信息\n\n"
        << "***************************************************************************************\n";

}

void keydown()
{
    int choice{ 0 };
    cin >> choice;
    switch (choice)
    {
    case 0:
        exit(0);
        break;
    case 1:
        system("cls");
        cout << "\n****************************【录入信息】**********************************\n";
        inputStudent();
        break;
    case 2:
        system("cls");
        cout << "\n****************************【浏览信息】**********************************\n";
        printfStudent();
        break;
    case 3:
        system("cls");
        cout << "\n****************************【改变信息】**********************************\n";
        changeStudent();
        break;
    case 4:
        system("cls");
        cout << "\n****************************【修改信息】**********************************\n";
        delectStudent();
        break;
    case 5:
        system("cls");
        cout << "\n****************************【查找信息】**********************************\n";
        searchStudent();
        break;
    default:
        cout << "错误,请重新输入\n";
        system("pause");
        break;

    }
}

int main()
{
    system("color F0");
    while (1)
    {
        system("cls");
        menu();
        keydown();
    }
    system("pause");
    return 0;
}

报错 信息是什么

代码不是你自己写的吧,我觉得是你直接复制网上的,但是缺少了windows.h头文件库



#include<iostream>
#include<list>
#include<windows.h>
using namespace std;
//定义结构体
typedef struct
{
    string name;
    int age;
    string sex;
    string id;
    string phone;
}student;
list<student> stulist;
list<student>::iterator stu;
void delectStudent();
int Select()
{
    int select;
    cout << "\n输入选择:****************0.上一级****************1.继续****************" << endl;
    cin >> select;
    return select;
}

//录入信息
void inputStudent()
{
    cout << "\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话" << endl;
    student data;
    cin >> data.name >> data.age >> data.sex >> data.id >> data.phone;
    stulist.push_back(data);
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        inputStudent();
    else {
        cout << "错误请重新输入:";
        cin >> select;
        goto loop1;
    }
    return;
}
//浏览信息
void printfStudent()
{
    cout << "\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话" << endl;
    for (stu = stulist.begin(); stu != stulist.end(); stu++)
        cout << (*stu).name << "\t\t" << (*stu).age << "\t\t" << (*stu).sex
        << "\t\t" << (*stu).id << "\t" << (*stu).phone
        << endl;
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        printfStudent();
    else {
        cout << "错误请重新输入:";
        cin >> select;
        goto loop1;
    }
}
//修改信息
void changeStudent()
{
    string str;
    bool f = true;
    cout << "请输入需要修改信息的学生姓名:\n";
    cin >> str;
    for (stu = stulist.begin(); stu != stulist.end(); stu++)
        if (str == (*stu).name)
        {
            cout << "请输入需要修改后的学生信息:\n";
            cout << "\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话" << endl;
            student data;
            cin >> data.name >> data.age >> data.sex >> data.id >> data.phone;
            *stu = data;
            cout << "已修改";
            f = !f;

        }
    if (f)
        cout << "不存在该信息!" << endl;
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        changeStudent();
    else
    {
        cout << "发生错误,请重新输入:";
        cin >> select;
        goto loop1;
    }
    return;
}
//删除信息
void deleteStudent()
{
    string str;
    bool f = true;
    cout << "\n请输入需要删除信息的学生姓名:\n";
    cin >> str;
    for (stu = stulist.begin(); stu != stulist.end(); stu++)
        if (str == (*stu).name)
        {
            stulist.erase(stu);
            cout << "\n已删除";
            f = !f;
            break;
        }

    if (f)
        cout << "\n不存在该信息!" << endl;
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        deleteStudent();
    else
    {
        cout << "选择错误,请重新输入:";
        cin >> select;
        goto loop1;
    }
    return;
}


//查找信息
void searchStudent()
{
    string str;
    bool f = true;
    cout << "\n请输入需要查找信息的学生姓名:\n";
    cin >> str;
    for (stu = stulist.begin(); stu != stulist.end(); stu++)
        if (str == (*stu).name)
        {
            cout << "\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话" << endl;
            cout << (*stu).name << "\t\t" << (*stu).age << "\t\t" << (*stu).sex
                << "\t\t" << (*stu).id << "\t" << (*stu).phone
                << endl;
            f = !f;
            break;
        }
    if (f)
        cout << "未查到该信息!" << endl;
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        searchStudent();
    else
    {
        cout << "选择错误,请重新输入:";
        cin >> select;
        goto loop1;
    }
    return;
}

//设计菜单页面
void menu()
{
    cout << "\n                               学生信息管理系统\n\n"
        << "*************************************************************************************\n\n"
        << "\t\t\t\t0.退出系统\n\n"
        << "\t\t\t\t1.录入信息\n\n"
        << "\t\t\t\t2.浏览信息\n\n"
        << "\t\t\t\t3.修改信息\n\n"
        << "\t\t\t\t4.删除信息\n\n"
        << "\t\t\t\t5.查找信息\n\n"
        << "***************************************************************************************\n";

}

void keydown()
{
    int choice{ 0 };
    cin >> choice;
    switch (choice)
    {
    case 0:
        exit(0);
        break;
    case 1:
        system("cls");
        cout << "\n****************************【录入信息】**********************************\n";
        inputStudent();
        break;
    case 2:
        system("cls");
        cout << "\n****************************【浏览信息】**********************************\n";
        printfStudent();
        break;
    case 3:
        system("cls");
        cout << "\n****************************【改变信息】**********************************\n";
        changeStudent();
        break;
    case 4:
        system("cls");
        cout << "\n****************************【修改信息】**********************************\n";
        deleteStudent();
        break;
    case 5:
        system("cls");
        cout << "\n****************************【查找信息】**********************************\n";
        searchStudent();
        break;
    default:
        cout << "错误,请重新输入\n";
        system("pause");
        break;

    }
}

int main()
{
    system("color F0");
    while (1)
    {
        system("cls");
        menu();
        keydown();
    }
    system("pause");
    return 0;
}

有多个错误,1、首先你的student大小写不一致,2、deletestudent拼写错误了,3、头文件包含缺失。针对错误都做了修复,

img

参考如下代码:

// VCConsole.cpp : 定义控制台应用程序的入口点。
//

#include <string>
#include<iostream>
#include<list>
#include<windows.h>
using namespace std;
//定义结构体
typedef struct
{
    string name;
    int age;
    string sex;
    string id;
    string phone;
}Student;
list<Student> stulist;
list<Student>::iterator stu;
int Select()
{
    int select;
    cout << "\n输入选择:****************0.上一级****************1.继续****************" << endl;
    cin >> select;
    return select;
}

//录入信息
void inputStudent()
{
    cout << "\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话" << endl;
    Student data;
    cin >> data.name >> data.age >> data.sex >> data.id >> data.phone;
    stulist.push_back(data);
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        inputStudent();
    else {
        cout << "错误请重新输入:";
        cin >> select;
        goto loop1;
    }
    return;
}
//浏览信息
void printfStudent()
{
    cout << "\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话" << endl;
    for (stu = stulist.begin(); stu != stulist.end(); stu++)
        cout << (*stu).name << "\t\t" << (*stu).age << "\t\t" << (*stu).sex
        << "\t\t" << (*stu).id << "\t" << (*stu).phone
        << endl;
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        printfStudent();
    else {
        cout << "错误请重新输入:";
        cin >> select;
        goto loop1;
    }
}
//修改信息
void changeStudent()
{
    string str;
    bool f = true;
    cout << "请输入需要修改信息的学生姓名:\n";
    cin >> str;
    for (stu = stulist.begin(); stu != stulist.end(); stu++)
        if (str == (*stu).name)
        {
            cout << "请输入需要修改后的学生信息:\n";
            cout << "\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话" << endl;
            Student data;
            cin >> data.name >> data.age >> data.sex >> data.id >> data.phone;
            *stu = data;
            cout << "已修改";
            f = !f;

        }
    if (f)
        cout << "不存在该信息!" << endl;
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        changeStudent();
    else
    {
        cout << "发生错误,请重新输入:";
        cin >> select;
        goto loop1;
    }
    return;
}
//删除信息
void deleteStudent()
{
    string str;
    bool f = true;
    cout << "\n请输入需要删除信息的学生姓名:\n";
    cin >> str;
    for (stu = stulist.begin(); stu != stulist.end(); stu++)
        if (str == (*stu).name)
        {
            stulist.erase(stu);
            cout << "\n已删除";
            f = !f;
            break;
        }

    if (f)
        cout << "\n不存在该信息!" << endl;
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        deleteStudent();
    else
    {
        cout << "选择错误,请重新输入:";
        cin >> select;
        goto loop1;
    }
    return;
}


//查找信息
void searchStudent()
{
    string str;
    bool f = true;
    cout << "\n请输入需要查找信息的学生姓名:\n";
    cin >> str;
    for (stu = stulist.begin(); stu != stulist.end(); stu++)
        if (str == (*stu).name)
        {
            cout << "\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话" << endl;
            cout << (*stu).name << "\t\t" << (*stu).age << "\t\t" << (*stu).sex
                << "\t\t" << (*stu).id << "\t" << (*stu).phone
                << endl;
            f = !f;
            break;
        }
    if (f)
        cout << "未查到该信息!" << endl;
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        searchStudent();
    else
    {
        cout << "选择错误,请重新输入:";
        cin >> select;
        goto loop1;
    }
    return;
}

//设计菜单页面
void menu()
{
    cout << "\n                               学生信息管理系统\n\n"
        << "*************************************************************************************\n\n"
        << "\t\t\t\t0.退出系统\n\n"
        << "\t\t\t\t1.录入信息\n\n"
        << "\t\t\t\t2.浏览信息\n\n"
        << "\t\t\t\t3.修改信息\n\n"
        << "\t\t\t\t4.删除信息\n\n"
        << "\t\t\t\t5.查找信息\n\n"
        << "***************************************************************************************\n";

}

void keydown()
{
    int choice{ 0 };
    cin >> choice;
    switch (choice)
    {
    case 0:
        exit(0);
        break;
    case 1:
        system("cls");
        cout << "\n****************************【录入信息】**********************************\n";
        inputStudent();
        break;
    case 2:
        system("cls");
        cout << "\n****************************【浏览信息】**********************************\n";
        printfStudent();
        break;
    case 3:
        system("cls");
        cout << "\n****************************【改变信息】**********************************\n";
        changeStudent();
        break;
    case 4:
        system("cls");
        cout << "\n****************************【修改信息】**********************************\n";
        //deleteStudent();
        break;
    case 5:
        system("cls");
        cout << "\n****************************【查找信息】**********************************\n";
        searchStudent();
        break;
    default:
        cout << "错误,请重新输入\n";
        system("pause");
        break;

    }
}

int main()
{
    system("color F0");
    while (1)
    {
        system("cls");
        menu();
        keydown();
    }
    system("pause");
    return 0;
}


采用chatgpt:
运行结果:

img

修改后代码如下:

#include<iostream>
#include<list>
#include<windows.h>
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>


using namespace std;

// Define struct
typedef struct
{
    string name;
    int age;
    string sex;
    string id;
    string phone;
} student;

list<student> stulist;
list<student>::iterator stu;

int Select()
{
    int select;
    cout << "\n输入选择:****************0.上一级****************1.继续****************" << endl;
    cin >> select;
    return select;
}

// 录入信息
void inputStudent()
{
    cout << "\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话" << endl;
    student data; // Changed from Student data;
    cin >> data.name >> data.age >> data.sex >> data.id >> data.phone;
    stulist.push_back(data);
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        inputStudent();
    else {
        cout << "错误请重新输入:";
        cin >> select;
        goto loop1;
    }
    return;
}

// 浏览信息
void printfStudent()
{
    cout << "\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话" << endl;
    for (stu = stulist.begin(); stu != stulist.end(); stu++)
        cout << (*stu).name << "\t\t" << (*stu).age << "\t\t" << (*stu).sex
        << "\t\t" << (*stu).id << "\t" << (*stu).phone
        << endl;
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        printfStudent();
    else {
        cout << "错误请重新输入:";
        cin >> select;
        goto loop1;
    }
}

// 修改信息
void changeStudent()
{
    string str;
    bool f = true;
    cout << "请输入需要修改信息的学生姓名:\n";
    cin >> str;
    for (stu = stulist.begin(); stu != stulist.end(); stu++)
        if (str == (*stu).name)
        {
            cout << "请输入需要修改后的学生信息:\n";
            cout << "\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话" << endl;
            student data; // Changed from Student data;
            cin >> data.name >> data.age >> data.sex >> data.id >> data.phone;
            *stu = data;
            cout << "已修改";
            f = !f;
        }
    if (f)
        cout << "不存在该信息!" << endl;
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        changeStudent();
    else {
        cout << "发生错误,请重新输入:";
        cin >> select;
        goto loop1;
    }
    return;
}

// 删除信息
void delectStudent() // Changed from deleteStudent()
{
    string str;
    bool f = true;
    cout << "\n请输入需要删除信息的学生姓名:\n";
    cin >> str;
    for (stu = stulist.begin(); stu != stulist.end(); stu++)
        if (str == (*stu).name)
        {
            stulist.erase(stu);
            cout << "\n已删除";
            f = !f;
            break;
        }

    if (f)
        cout << "\n不存在该信息!" << endl;
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        delectStudent(); // Changed from deleteStudent()
    else {
        cout << "选择错误,请重新输入:";
        cin >> select;
        goto loop1;
    }
    return;
}

// 查找信息
void searchStudent()
{
    string str;
    bool f = true;
    cout << "\n请输入需要查找信息的学生姓名:\n";
    cin >> str;
    for (stu = stulist.begin(); stu != stulist.end(); stu++)
        if (str == (*stu).name)
        {
            cout << "\n姓名\t\t年龄\t\t性别\t\t学号\t\t电话" << endl;
            cout << (*stu).name << "\t\t" << (*stu).age << "\t\t" << (*stu).sex
                << "\t\t" << (*stu).id << "\t" << (*stu).phone
                << endl;
            f = !f;
            break;
        }
    if (f)
        cout << "未查到该信息!" << endl;
    int select = Select();
loop1:
    if (select == 0);
    else if (select == 1)
        searchStudent();
    else {
        cout << "选择错误,请重新输入:";
        cin >> select;
        goto loop1;
    }
    return;
}

// 设计菜单页面
void menu()
{
    cout << "\n                               学生信息管理系统\n\n"
        << "*************************************************************************************\n\n"
        << "\t\t\t\t0.退出系统\n\n"
        << "\t\t\t\t1.录入信息\n\n"
        << "\t\t\t\t2.浏览信息\n\n"
        << "\t\t\t\t3.修改信息\n\n"
        << "\t\t\t\t4.删除信息\n\n"
        << "\t\t\t\t5.查找信息\n\n"
        << "***************************************************************************************\n";
}

void keydown()
{
    int choice{ 0 };
    cin >> choice;
    switch (choice)
    {
    case 0:
        exit(0);
        break;
    case 1:
        system("cls");
        cout << "\n****************************【录入信息】**********************************\n";
        inputStudent();
        break;
    case 2:
        system("cls");
        cout << "\n****************************【浏览信息】**********************************\n";
        printfStudent();
        break;
    case 3:
        system("cls");
        cout << "\n****************************【改变信息】**********************************\n";
        changeStudent();
        break;
    case 4:
        system("cls");
        cout << "\n****************************【修改信息】**********************************\n";
        delectStudent(); // Changed from deleteStudent()
        break;
    case 5:
        system("cls");
        cout << "\n****************************【查找信息】**********************************\n";
        searchStudent();
        break;
    default:
        cout << "错误,请重新输入\n";
        system("pause");
        break;
    }
}

int main()
{
    system("color F0");
    while (1)
    {
        system("cls");
        menu();
        keydown();
    }
    system("pause");
    return 0;
}

把头文件包加上就好

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

c++实现学生信息管理系统


#include<iostream>
#include<fstream>
#include<cstring>
#include<conio.h>
#include<string>
using namespace std;

//-------------------Student类-------------------//
class Student
{
public:
    char name[10];
    char sex[5];
    char ID[20];
    double CPP;            //c++得分
    double MATH;        //数学得分
    double ENGLISH;        //英语得分
    double sum;            //所得总分
    int rank;            //学生排名
//    double avcpp;        //c++平均成绩
//    double avmath;        //数学平均成绩
//    double aveng;        //英语平均成绩
//    double avsum;        //总分平均成绩
    Student *Next;

    void Input();                //Input( )函数输入学生信息及成绩
    void ReadFile(istream &in);    //ReadFile( )函数读取文件内容
    void Show1();                //Show( )函数显示学生信息(for Display1)
    void Show2();                //Show( )函数显示学生信息(for Display2)
};
//---------------Student类函数实现---------------//
void Student::Input()
{
    cout << "\t\t 请输入学生姓名: ";        cin >> name;
    cout << "\t\t 请输入学生性别: ";        cin >> sex;
    cout << "\t\t 请输入学生的学号: ";        cin >> ID;
    cout << "\t\t 请输入c++课程成绩: ";    cin >> CPP;
    cout << "\t\t 请输入数学课程成绩: ";    cin >> MATH;
    cout << "\t\t 请输入英语课程成绩: ";    cin >> ENGLISH;
    sum = CPP + MATH + ENGLISH;
}
void Student::ReadFile(istream &in)
{
    in >> name >> sex >> ID >> CPP >> MATH >> ENGLISH >> sum >> rank;
}
void Student::Show1()
{
/*    bool flag = true;
    if (flag)
    {
        cout << "姓名: \t\t" << "性别: \t\t" << "学号: \t\t"
            << "C++: \t" << "数学: \t" << "英语:\t"
            << " 总成绩: \t" << "\n\n";
        flag = false;
    }*/
    cout << name << "\t\t" << sex << "\t\t" 
        << ID << "\t" << CPP << "\t" << MATH << "\t"
        << ENGLISH << "\t" << sum << "\n\n";
    
}
void Student::Show2()
{
/*    bool flag = true;
    if (flag)
    {
        cout << "姓名: \t\t" << "性别: \t\t" << "学号: \t\t"
            << " 总成绩: \t" << "排名: " << "\n\n";
        flag = false;
    }*/
    cout << name << "\t\t" << sex << "\t\t"
        << ID << "\t  " << sum << "\t\t" << rank << "\n\n";
}
//-----------------------------------------------------------------------------------//

//-------------------Studentmessage类-------------------//
class Studentmassage
{
public:
    Studentmassage();
    ~Studentmassage();
    void ShowMenu();
    void Find();
    void Save();
    void ModifyItem();
    void RemoveItem();
    void Swap(Student *, Student *);
    void Sort();
    int ListCount();
    void Average();
    void Display1();
    void Display2();
    void AddItem();
private:
    Student *head, *end;
    ifstream in;
    ofstream out;
    Student *FindItem(char *name)            //通过姓名查找
    {
        for (Student *p = head; p->Next != end; p = p->Next)
            if (!strcmp(p->Next->name, name))    return p;
        return NULL;
    }
    Student *FindID(char *ID)                //通过学号查找
    {
        for (Student *p = head; p->Next != end; p = p->Next)
            if (!strcmp(p->Next->ID, ID))    return p;
        return NULL;
    }
};

//-------------------------------Studentmessage类函数实现-------------------------------//
//-------------------菜单-------------------//
void Studentmassage::ShowMenu()
{
    cout << "\t\t**********************************************************************************" << endl;
    cout << "\t\t\t〒〒〒〒〒〒〒〒〒〒  ☆ 学生成绩管理系统 ☆  〒〒〒〒〒〒〒〒〒〒" << endl;
    cout << "\t\t〒〒〒〒〒〒〒★★★★★         ★★★★★★★〒〒〒〒〒〒〒" << endl;
    cout << "\t\t〒〒〒〒〒〒〒〒〒★  ☆          1.读入学生信息          ☆  ★〒〒〒〒〒〒〒〒〒" << endl;
    cout << "\t\t〒〒〒〒〒〒〒〒〒★  ☆          2.保存学生信息          ☆  ★〒〒〒〒〒〒〒〒〒" << endl;
    cout << "\t\t〒〒〒〒〒〒〒〒〒★  ☆          3.添加学生信息          ☆  ★〒〒〒〒〒〒〒〒〒" << endl;
    cout << "\t\t〒〒〒〒〒〒〒〒〒★  ☆          4.显示学生成绩(不含排名)☆  ★〒〒〒〒〒〒〒〒〒" << endl;
    cout << "\t\t〒〒〒〒〒〒〒〒〒★  ☆          5.显示学生成绩(不含排名)☆  ★〒〒〒〒〒〒〒〒〒" << endl;
//    cout << "\t\t〒〒〒〒〒〒〒〒〒★  ☆          6.排序统计成绩          ☆  ★〒〒〒〒〒〒〒〒〒" << endl;
    cout << "\t\t〒〒〒〒〒〒〒〒〒★  ☆          6.查看平均成绩          ☆  ★〒〒〒〒〒〒〒〒〒" << endl;
    cout << "\t\t〒〒〒〒〒〒〒〒〒★  ☆          7.查找学生成绩          ☆  ★〒〒〒〒〒〒〒〒〒" << endl;
    cout << "\t\t〒〒〒〒〒〒〒〒〒★  ☆          8.删除学生成绩          ☆  ★〒〒〒〒〒〒〒〒〒" << endl;
    cout << "\t\t〒〒〒〒〒〒〒〒〒★  ☆          9.修改学生信息          ☆  ★〒〒〒〒〒〒〒〒〒" << endl;
    cout << "\t\t〒〒〒〒〒〒〒〒〒★  ☆          10.清空学生信息         ☆  ★〒〒〒〒〒〒〒〒〒" << endl;
    cout << "\t\t〒〒〒〒〒〒〒〒〒★  ☆          0.安全退出系统          ☆  ★〒〒〒〒〒〒〒〒〒" << endl;
    cout << "\t\t\t\t系统中规定male为男性,fama为女性,请按该格式进行输入!!!" << endl;
    cout << "\t\t**********************************************************************************" << endl;
    cout << "\t\t\n\t\t  →请选择相应的数字进行操作: ";
}

//-------------------1.Studentmessage构造函数-------------------//
Studentmassage::Studentmassage()        //构造函数
{
    head = new Student;
    head->Next = new Student;
    end = head->Next;
    in.open("sort.txt");
    if (!in)    cout << "这是一个新系统,无学生信息,请先输入。" << endl;
    else
    {
        while (!in.eof())
        {
            end->ReadFile(in);
            if (end->name[0] == '\0')    break;
            end->Next = new Student;
            end = end->Next;
        }
        in.close();
        cout << "\t\t 读取学生信息成功!" << endl;
    }
}

//-------------------2.保存信息至文件中-------------------//
void Studentmassage::Save()
{
    out.open("sort.txt");
    for (Student *p = head->Next; p != end; p = p->Next)
    {
        out << p->name << "\t" << p->ID << "\t" << p->CPP << "\t" << p->MATH << "\t" << p->ENGLISH << "\t" << p->sum << p->rank << "\t" << endl;
    }
    out.close();
}

//-------------------3.添加新的学生信息-------------------//
void Studentmassage::AddItem()
{
    end->Input();
    //    scpp += end->CPP;
    //    smath += end->MATH;
    //    seng += end->ENGLISH;
    end->Next = new Student;
    end = end->Next;
    cout << "添加成功!" << endl;
    system("pause");
    //    cout << "请输入任意字符!继续......";
    //    getchar();
}

//-------------------4.输出信息-------------------//
void Studentmassage::Display1()
{
    cout << "姓名: \t\t" << "性别: \t\t" << "学号: \t\t"
        << "C++: \t" << "数学: \t" << "英语:\t"
        << " 总成绩: \t" << "\n\n";
    for (Student*p = head->Next; p != end; p = p->Next)
        p->Show1();
    system("pause");
    //    cout << "输入任意字符!继续······";
    //    getchar();
}

//-------------------5.输出只有总成绩和排名的信息-------------------//
void Studentmassage::Display2()
{
    Sort();
    cout << "姓名: \t\t" << "性别: \t\t" << "学号: \t\t"
        << " 总成绩: \t" << "排名: " << "\n\n";
    for (Student*p = head->Next; p != end; p = p->Next)
        p->Show2();
    system("pause");
    //    cout << "输入任意字符!继续······";
    //    getchar();
}

//-------------------6.计算各科平均成绩-------------------//
void Studentmassage::Average()
{
    double scpp = 0.0, smath = 0.0, seng = 0.0, ssum = 0.0;
    int c = 0, m = 0, e = 0;    //记录各科不及格人数
    Student *p;
    for (p = head->Next; p->Next != end; p = p->Next)
    {
        scpp += p->CPP; smath += p->MATH; seng += p->ENGLISH; ssum += p->sum;
        if (p->CPP < 60) c++;
        if (p->MATH < 60) m++;
        if (p->ENGLISH < 60) e++;
        //        cout << p->CPP << endl;
    }
    scpp += p->CPP; smath += p->MATH; seng += p->ENGLISH; ssum += p->sum;
    int num = Studentmassage::ListCount();
    //    cout << num << endl;
    double avcpp = scpp / num;            //c++平均成绩
    double avmath = smath / num;        //数学平均成绩
    double aveng = seng / num;            //英语平均成绩
    double avsum = ssum / num;            //总分平均成绩
    double procpp = (num - c) / num;    //c++及格率
    double promath = (num - m) / num;            //数学及格率
    double proeng = (num - e) / num;            //英语及格率
//    cout << scpp << "\t" << smath << "\t" << seng << "\t" << ssum << "\n";
    cout << "\n\t\t*********************************\n";
    cout << "\t\t※ 0.输出各项平均成绩\n";
    cout << "\t\t※ 1.输出c++平均成绩 \n\t\t※ 2.输出数学平均成绩 \n";
    cout << "\t\t※ 3.输出英语平均成绩 \n\t\t※ 4.输出总平均成绩 \n";
    cout << "\t\t※ 5.输出各科及格率";
    cout << "\n\t\t*********************************\n";
    char flag = 'n';
    do
    {
        cout << "\t\t →请选择相应的数字进行操作:: ";
        int x; cin >> x;
        switch (x)
        {
        case 0: {
            cout << "\t\tc++平均成绩\t" << "数学平均成绩\t" << "英语平均成绩\t" << "总平均成绩\t\n";
            cout << "\t\t" << avcpp << "\t\t" << avmath << "\t\t" << aveng << "\t\t" << avsum << "\n\n"; break;
        }
        case 1:cout << "\t\tc++平均成绩 : " << avcpp << "\n\n"; break;
        case 2:cout << "\t\t数学平均成绩 : " << avmath << "\n\n"; break;
        case 3:cout << "\t\t英语平均成绩 : " << aveng << "\n\n"; break;
        case 4:cout << "\t\t总平均成绩 : " << avsum << "\n\n"; break;
        case 5: 
        {
            cout << "\t\tc++及格率\t" << "数学及格率\t" << "英语及格率\t" << "\n\n";
            cout << "\t\t" << procpp * 100 << "%" << "\t\t" << promath * 100 << "%"
                << "\t\t" << proeng * 100 << "%" << "\t\t" << "\n\n"; break;
        }
        }
        cout << "\t\t请问是否要继续查询?(y/n) : ";
        cin >> flag;
    } while (flag == 'y');
    system("pause");
}

//-------------------7.查找函数-------------------//
void Studentmassage::Find()
{
    char c = 'n';
    do
    {
        char name[10], ID[20];
        Student *p = NULL;
        cout << "\n\t\t*********************************\n";
        cout << "\t\t※ 1.按学生的姓名查找 \n\t\t※ 2.按学生学号查找 ";
        cout << "\n\t\t*********************************\n 请选择: ";
        int x;
        cin >> x;
        switch (x)
        {
        case 1:
        {
            cout << "\t\t 请输入要查找学生姓名:  ";
            cin >> name;
            if (p = FindItem(name))
            {
                p->Next->Show1();
                //            cout << "输入任意字符!继续······ \n";
                //            getchar();
            }
            else
            {
                cout << "\t\t 没有找到相匹配的学生!  " << "\n\n";
                //            cout << "请输入任意字符!继续······";
                //            getchar();
            }
        } break;
        case 2:
        {
            cout << "\t\t 请输入要查找的学生的学号: "; cin >> ID;
            if (p = FindID(ID))
            {
                p->Next->Show1();
                //            cout << " 输入任意字符!继续…… ";
                //            getchar();
            }
            else
            {
                cout << "\t\t 没有找到相匹配的学生! " << '\n' << endl;
                //            cout << " 输入任意字符!继续…… ";
                //            getchar();
            }
        } break;
        }
        cout << "\t\t请问是否要继续查找?(y/n) : ";
        cin >> c;
    } while (c == 'y');
    system("pause");
}

//-------------------8.删除函数-------------------//
void Studentmassage::RemoveItem()
{
    char c = 'n';
    do
    {
        char name[20];
        Student *p = NULL, *temp = NULL;
        cout << "\t\t 请输入要删除学生的姓名 :" << endl; cin >> name;
        if (p = FindItem(name))
        {
            temp = p->Next;
            p->Next = p->Next->Next;
            delete temp;
            cout << "\t\t 删除成功!" << endl;
            //        cout << "输入任意字符!继续······";
            //        getchar();
        }
        else
        {
            cout << "\t\t 没有找到!" << endl;
            //        cout << "输入任意字符!继续······";
            //        getchar();
        }
        cout << "\t\t请问是否要继续删除?(y/n) : ";
        cin >> c;
    } while (c == 'y');
    system("pause");
}

//-------------------9.修改函数-------------------//
void Studentmassage::ModifyItem()
{
    char c = 'n';
    do
    {
        char name[10];
        Student *p = NULL;
        cout << "\t\t 请输入需要修改人的姓名 :"; cin >> name;
        if (p = FindItem(name))
        {
            cout << "\t\t 已找到该学生信息,请按步骤输入新的信息!" << endl;
            p->Next->Input();
            cout << "修改成功! " << endl;
            
            //        cout << "请输入任意字符!继续······";
            //        getchar();
        }
        else
        {
            cout << "\t\t 没有找到!" << endl;
            //        cout << "请输入任意字符!继续······";
            //        getchar();
        }
        cout << "\t\t请问是否要继续修改?(y/n) : ";
        cin >> c;
    } while (c == 'y');
    
    system("pause");
}

//-------------------10.Studentmessage析构函数-------------------//
Studentmassage::~Studentmassage()
{
    Save();
    Student *temp;
    //    cout << head->Next->CPP << "\n";
    for (; head->Next != end;)
    {
        temp = head->Next;
        //        cout << temp->CPP << "\t";
        head->Next = head->Next->Next;
        delete temp;
    }
    //    cout << endl << head->CPP;
    delete head;
    delete end;
    system("pause");
}

//-------------------记录当前链表总数并返回一个整数-------------------//
int Studentmassage::ListCount()
{
    if (!head)    return 0;
    int n = 0;
    for (Student *p = head->Next; p != end; p = p->Next)    n++;
    return n;
}

//-------------------交换Student类的两个变量-------------------//
void Studentmassage::Swap(Student *p1, Student *p2)
{
    Student *temp = new Student;
    strcpy(temp->name, p1->name);
    strcpy(temp->sex, p1->sex);
    strcpy(temp->ID, p1->ID);
    temp->CPP = p1->CPP;
    temp->MATH = p1->MATH;
    temp->ENGLISH = p1->ENGLISH;
    temp->sum = p1->sum;

    strcpy(p1->name, p2->name);
    strcpy(p1->sex, p2->sex);
    strcpy(p1->ID, p2->ID);
    p1->CPP = p2->CPP;
    p1->MATH = p2->MATH;
    p1->ENGLISH = p2->ENGLISH;
    p1->sum = p2->sum;

    strcpy(p2->name, temp->name);
    strcpy(p2->sex, temp->sex);
    strcpy(p2->ID, temp->ID);
    p2->CPP = temp->CPP;
    p2->MATH = temp->MATH;
    p2->ENGLISH = temp->ENGLISH;
    p2->sum = temp->sum;
}

//-------------------对当前链表进行排序-------------------//
void Studentmassage::Sort()
{
    cout << "Sorting..." << endl;
    Student *p = NULL, *p1 = NULL, *k = NULL;
    int n = Studentmassage::ListCount();
    if (n < 2)    return;
    for (p = head->Next; p != end; p = p->Next)
        for (k = p->Next; k != end; k = k->Next)
        {
            if (p->sum < k->sum)    Studentmassage::Swap(p, k);
        }
    int i = 1;
    for (p = head->Next; p != end; p = p->Next)
    {
        p->rank = i++;
    }
    cout << "排序完成!" << endl;
    system("pause");
    //    getchar();
    return;
}
//-----------------------------------------------------------------------------------//

int main()
{
    int x, i = 0;
    bool quit = false;
    cout << "\t\t §§§§§§§§§§§§§§§§§§§§§§§§§§ \n" << endl;
    Studentmassage Grade;
    system("pause");
    //    cout << "\t\t按任意键开始······";
    //    getchar();
    while (!quit)
    {
        Grade.ShowMenu();
        cin >> x;
        switch (x)
        {
        case 0:exit(0); break;
        case 1:Grade.Studentmassage::Studentmassage(); break;
        case 2:Grade.Save(); break;
        case 3:Grade.AddItem(); break;
        case 4:Grade.Display1(); break;
        case 5:Grade.Display2(); break;
//        case 6:Grade.Sort(); break;
        case 6:Grade.Average(); break;
        case 7:Grade.Find(); break;
        case 8:Grade.RemoveItem(); break;
        case 9:Grade.ModifyItem(); break;
        case 10:Grade.~Studentmassage(); break;
        }
    }
    return 0;
}


//计算平均成绩有问题(解决)
//序号选择应添加筛错选项
//Student类应在添加性别选项
//析构函数第一个数据无法删除
//清空链表后Student类Show函数出现异常