为什么我的代码可以运行但是输入成绩后就结束程序了

请问一下为什么我的代码在输入学生成绩之后就自动结束程序了,编译器是dev-c++

#include <iostream>
#include <vector>
#include <string>
using namespace std;
class Course {
private:
    string courseName;
    string courseCode;
    int credit;
    string category; // "选修"或"必修"
    int enrolledStudents;
    int maxStudents;
    int year;
public:
    Course(string name, string code, int credit, string category, int maxStudents,int ye)
        : courseName(name), courseCode(code), credit(credit), category(category), enrolledStudents(0), maxStudents(maxStudents) ,year(ye){}
    string getName() { return courseName; }
    string getCode() { return courseCode; }
    int getCredit() { return credit; }
    string getCategory() { return category; }
    int getEnrolledStudents() { return enrolledStudents; }
    int getMaxStudents() { return maxStudents; }
    int getyear(){return year;}
    void enrollStudent() {
        if (enrolledStudents < maxStudents) {
            enrolledStudents++;
            cout << "选课成功!" << endl;
        } else {
            cout << "选课人数已满,无法再选该课程!" << endl;
        }
    }
};
class Student {
private:
    string name;
    string studentID;
    int enrollmentYear;
    string major;
    vector<int> Credits;
    vector<Course*> courses;
    vector<int> grades;
public:
    Student(string name, string id, int year, string major)
        : name(name), studentID(id), enrollmentYear(year), major(major) {}
    string getName() { return name; }
    string getID() { return studentID; }
    int getEnrollmentYear() { return enrollmentYear; }
    string getMajor() { return major; }
    vector<int> getCredits(){return Credits;}
    vector<Course*> getCourses() { return courses; }
    vector<int> getGrades() { return grades; }
    void addCourse(Course* course) {
        courses.push_back(course);
        grades.push_back(0); // 默认成绩为0
    }
    void addCredits(Course* course) {
        courses.push_back(course);
        Credits.push_back(0); // 默认成绩为0
    }
    void updateGrade(Course* course, int grade) {
        for (int i = 0; i < courses.size(); i++) {
            if (courses[i] == course) {
                grades[i] = grade;
                if(grades[i]>=60)
                {
                    Credits[i]+=courses[i]->getCredit();
                }
                break;
            }
        }
    }
    void printTranscript() {
        cout << "学生姓名:" << name << endl;
        cout << "学生学号:" << studentID << endl;
        cout << "入学年份:" << enrollmentYear << endl;
        cout << "专业:" << major << endl;
        for (int i = 0; i < courses.size(); i++) {
            cout << "课程名:" << courses[i]->getName() << endl;
            cout << "成绩:" << grades[i] << endl;
            cout << "学分:" << Credits[i] << endl;
            cout << "课程类型:" << courses[i]->getCategory() << endl;
            cout << "---------------------------" << endl;
        }
    }
};
vector<Student*> students;
vector<Course*> courses;
void addStudent() {
    string name, id, major;
    int year;
    cout << "请输入学生姓名:";
    cin >> name;
    cout << "请输入学生学号:";
    cin >> id;
    cout << "请输入学生入学年份:";
    cin >> year;
    cout << "请输入学生专业:";
    cin >> major;
    Student* student = new Student(name, id, year, major);
    students.push_back(student);
    cout << "添加学生信息成功!" << endl;
}
void modifyStudent() {
    string id;
    cout << "请输入要修改的学生学号:";
    cin >> id;
    for (int i = 0; i < students.size(); i++) {
        if (students[i]->getID() == id) {
            string name, major;
            int year;
            cout << "请输入学生姓名:";
            cin >> name;
            cout << "请输入学生入学年份:";
            cin >> year;
            cout << "请输入学生专业:";
            cin >> major;
            students[i] = new Student(name, id, year, major);
            cout << "修改学生信息成功!" << endl;
            return;
        }
    }
    cout << "未找到该学生信息!" << endl;
}
void deleteStudent() {
    string id;
    cout << "请输入要删除的学生学号:";
    cin >> id;
    for (int i = 0; i < students.size(); i++) {
        if (students[i]->getID() == id) {
            delete students[i];
            students.erase(students.begin() + i);
            cout << "删除学生信息成功!" << endl;
            return;
        }
    }
    cout << "未找到该学生信息!" << endl;
}
void queryStudent() {
    string id;
    cout << "请输入要查询的学生学号:";
    cin >> id;
    for (int i = 0; i < students.size(); i++) {
        if (students[i]->getID() == id) {
            students[i]->printTranscript();
            return;
        }
    }
    cout << "未找到该学生信息!" << endl;
}
void addCourse() {
    string name, code, category;
    int credit, maxStudents,year;
    cout << "请输入课程名称:";
    cin >> name;
    cout << "请输入课程代码:";
    cin >> code;
    cout << "请输入课程学分:";
    cin >> credit;
    cout << "请输入课程类型(选修/必修):";
    cin >> category;
    cout<<"请输入学年";
    cin>>year; 
    cout << "请输入课程最大可选人数:";
    cin >> maxStudents;
    Course* course = new Course(name, code, credit, category, maxStudents,year);
    courses.push_back(course);
    cout << "添加课程信息成功!" << endl;
}
void modifyCourse() {
    string code;int year;
    cout << "请输入要修改的课程代码:";
    cin >> code;
    for (int i = 0; i < courses.size(); i++) {
        if (courses[i]->getCode() == code) {
            string name, category;
            int credit, maxStudents;
            cout << "请输入课程名称:";
            cin >> name;
            cout << "请输入课程学分:";
    cin >> credit;
            cout << "请输入课程类型(选修/必修):";
            cin >> category;
            cout<<"请输入学年";
            cin>>year; 
            cout << "请输入课程最大可选人数:";
            cin >> maxStudents;
            courses[i] = new Course(name, code, credit, category, maxStudents,year);
            cout << "修改课程信息成功!" << endl;
            return;
        }
    }
    cout << "未找到该课程信息!" << endl;
}
void deleteCourse() {
    string code;
    cout << "请输入要删除的课程代码:";
    cin >> code;
    for (int i = 0; i < courses.size(); i++) {
        if (courses[i]->getCode() == code) {
            delete courses[i];
            courses.erase(courses.begin() + i);
            cout << "删除课程信息成功!" << endl;
            return;
        }
    }
    cout << "未找到该课程信息!" << endl;
}
void queryCourse() {
    string code;
    cout << "请输入要查询的课程代码:";
    cin >> code;
    for (int i = 0; i < courses.size(); i++) {
        if (courses[i]->getCode() == code) {
            cout << "课程名称:" << courses[i]->getName() << endl;
            cout << "课程学分:" << courses[i]->getCredit() << endl;
            cout << "课程类型:" << courses[i]->getCategory() << endl;
            cout << "已选人数:" << courses[i]->getEnrolledStudents() << endl;
            cout << "最大可选人数:" << courses[i]->getMaxStudents() << endl;
            return;
        }
    }
    cout << "未找到该课程信息!" << endl;
}
void addCourseSelection() {
    string studentID, courseCode;
    cout << "请输入学生学号:";
    cin >> studentID;
    cout << "请输入课程代码:";
    cin >> courseCode;
    Student* student = NULL;
    Course* course = NULL;
    // 查找学生和课程对象
    for (int i = 0; i < students.size(); i++) {
        if (students[i]->getID() == studentID) {
            student = students[i];
            break;
        }
    }
    for (int i = 0; i < courses.size(); i++) {
        if (courses[i]->getCode() == courseCode) {
            course = courses[i];
            break;
        }
    }
    // 添加选课信息
    if (student && course) {
        student->addCourse(course);
        course->enrollStudent();
        cout << "添加选课信息成功!" << endl;
    } else {
        cout << "学生或课程信息不存在!" << endl;
    }
}
void modifyCourseSelection() {
    string studentID, courseCode;
    cout << "请输入学生学号:";
    cin >> studentID;
    cout << "请输入课程代码:";
    cin >> courseCode;
    Student* student = NULL;
    Course* course = NULL;
    // 查找学生和课程对象
    for (int i = 0; i < students.size(); i++) {
        if (students[i]->getID() == studentID) {
            student = students[i];
            break;
        }
    }
    for (int i = 0; i < courses.size(); i++) {
        if (courses[i]->getCode() == courseCode) {
            course = courses[i];
            break;
        }
    }
    // 修改成绩
    if (student && course) {
        int grade;
        cout << "请输入成绩:";
        cin >> grade;
        
        student->updateGrade(course, grade);
        cout << "修改选课信息成功!" << endl;
    } else {
        cout << "学生或课程信息不存在!" << endl;
    }
}
void deleteCourseSelection() {
    string studentID, courseCode;
    cout << "请输入学生学号:";
    cin >> studentID;
    cout << "请输入课程代码:";
    cin >> courseCode;
    Student* student = NULL;
    Course* course = NULL;
    // 查找学生和课程对象
    for (int i = 0; i < students.size(); i++) {
        if (students[i]->getID() == studentID) {
            student = students[i];
            break;
        }
    }
    for (int i = 0; i < courses.size(); i++) {
        if (courses[i]->getCode() == courseCode) {
            course = courses[i];
            break;
        }
    }
    // 删除选课信息
    if (student && course) {
        vector<Course*> studentCourses = student->getCourses();
        vector<int> studentGrades = student->getGrades();
        for (int i = 0; i < studentCourses.size(); i++) {
            if (studentCourses[i] == course) {
                studentCourses.erase(studentCourses.begin() + i);
                studentGrades.erase(studentGrades.begin() + i);
                student->addCourse(studentCourses[i]);
                cout << "删除选课信息成功!" << endl;
                return;
            }
        }
    } else {
        cout << "学生或课程信息不存在!" << endl;
    }
}
void calculateStudentCredits(Student* student, int year) {
    int totalCredits = 0;
    int requiredCredits = 0;
    int electiveCredits = 0;
    vector<Course*> studentCourses = student->getCourses();
    vector<int> studentGrades = student->getGrades();
    for (int i = 0; i < studentCourses.size(); i++) {
        if (studentCourses[i]->getCategory() == "必修") {
            requiredCredits += studentCourses[i]->getCredit();
            if (studentGrades[i] >= 60) {
                totalCredits += studentCourses[i]->getCredit();
            }
        } else if (studentCourses[i]->getCategory() == "选修") {
            electiveCredits += studentCourses[i]->getCredit();
            if (studentGrades[i] >= 60) {
                totalCredits += studentCourses[i]->getCredit();
            }
        }
    }
    cout << "学生姓名:" << student->getName() << endl;
    cout << "学生学号:" << student->getID() << endl;
    cout << "学年:" << year << endl;
    cout << "必修总学分:" << requiredCredits << endl;
    cout << "选修总学分:" << electiveCredits << endl;
    cout << "已获得学分:" << totalCredits << endl;
    if (requiredCredits >= 30 && electiveCredits >= 10) {
        cout << "学生已达到学分标准!" << endl;
    } else {
        cout << "学生未达到学分标准!" << endl;
    }
}
void queryStudentCredits() {system("cls");
    string id;
    cout << "请输入要查询的学生学号:";
    cin >> id;
    for (int i = 0; i < students.size(); i++) {
        if (students[i]->getID() == id) {
            int year;
            cout << "请输入学年:";
            cin >> year;
            calculateStudentCredits(students[i], year);
            return;
        }
    }
    cout << "未找到该学生信息!" << endl;system("pause");
}
void calculateAllStudentsCredits() {
    for (int i = 0; i < students.size(); i++) {
        calculateStudentCredits(students[i], students[i]->getEnrollmentYear());
    }
}
int main() {
    int choice;
    while (true) {
        cout << "========== 学生选课系统 ==========" << endl;
        cout << "1. 增加学生信息" << endl;
        cout << "2. 修改学生信息" << endl;
        cout << "3. 删除学生信息" << endl;
        cout << "4. 查询学生信息" << endl;
        cout << "5. 录入学生成绩" << endl;
        cout << "6. 增加课程信息" << endl;
        cout << "7. 修改课程信息" << endl;
        cout << "8. 删除课程信息" << endl;
        cout << "9. 查询课程信息" << endl;
        cout << "10. 增加学生选课信息" << endl;
        cout << "11. 删除学生选课信息" << endl;
        cout << "12. 查询学生学分情况" << endl;
        cout << "13. 所有学生学分排名" << endl;
        cout << "0. 退出" << endl;
        cout << "请输入功能选项:";
        cin >> choice;
        switch (choice) {
            case 1:
                addStudent();
                break;
            case 2:
                modifyStudent();
                break;
            case 3:
                deleteStudent();
                break;
            case 4:
                queryStudent();
                break;
            case 5:
                 modifyCourseSelection();
                break;
            case 6:
                addCourse();
                break;
            case 7:
                modifyCourse();
                break;
            case 8:
                deleteCourse();
                break;
            case 9:
                queryCourse();
                break;
            case 10:
                addCourseSelection();
                break;
            case 11:
                deleteCourseSelection();
                break;
            case 12:
                queryStudentCredits();
                break;
            case 13:
                calculateAllStudentsCredits();
                break;
            case 0:
                cout << "程序已退出。" << endl;
                return 0;
            default:
                cout << "无效的选择!请重新选择";
                  }
    cout << endl;
}
return 0;}



代码不对吧
cout << "5. 录入学生成绩" << endl;
可是实际上执行的是修改: modifyCourseSelection();