如何用c++写这个程序

vector向量如何使用?如何进行升序排序?不及格率如何实现?怎么才能在用户输入完之后继续输入?

img

#include <iostream>    
#include <vector>    
#include <algorithm>    
using namespace std;

struct student {    
    string id;    
    string name;    
    double math;    
    double english;    
};

int main() {    
    int choice;    
    do {    
        cout << "==================================" << endl;    
        cout << "  学成成绩计算程序" << endl;    
        cout << "==================================" << endl;    
        cout << "1. 添加学生信息" << endl;    
        cout << "2. 按照学升序排序" << endl;    
        cout << "3. 显示学生信息" << endl;    
        cout << "4. 退出" << endl;    
        cout << "请输入您的选择:";    
        cin >> choice;    
        switch (choice) {    
            case 1:    
                add_student();    
                break;    
            case 2:    
                sort_students_by_id();    
                break;    
            case 3:    
                display_students();    
                break;    
            case 4:    
                cout << "再见!" << endl;    
                return 0;    
            default:    
                cout << "无效的选择,请重新输入!" << endl;    
                break;    
        }    
    } while (choice != 4);    
    return 0;    
}

void add_student() {    
    if (students.size() >= 100) {    
        cout << "对不起,学生人数已经达到上限!" << endl;    
        return;    
    }    
    student s;    
    cout << "请输入学号:";    
    cin >> s.id;    
    cout << "请输入姓名:";    
    cin >> s.name;    
    cout << "请输入高数:";    
    cin >> s.math;    
    cout << "请输入英语:";    
    cin >> s.english;    
    students.push_back(s);    
    cout << "学生信息添加成功!" << endl;    
}

void sort_students_by_id() {    
    vector<student> v;    
    v.swap(students); // 交换 students 和 v    
    sort(v.begin(), v.end(), greater<student>()); // 使用 greater<student>函数对象进行升序排序    
    cout << "学生信息按照学号升序排序成功!" << endl;    
}

void display_students() {    
    if (students.empty()) {    
        cout << "对不起,学生信息为空!" << endl;    
        return;    
    }    
    cout << "学号\t姓名\t高数\t英语" << endl;    
    for (auto& s : students) {    
        cout << s.id << "\t" << s.name << "\t" << s.math << "\t" << s.english << endl;    
    }    
}