谁懂!🆘C++课外兴趣小组系统怎么写啊

课外兴趣小组管理系统
系统主要处理课外兴趣小组的相关信息。学生信息主要包括:学号、姓名、性别、兴趣等内容;兴趣主要包括:兴趣编号、兴趣内容。完成以下操作:实现学生兴趣信息的添加、修改、删除和查询。录入并保存一个班级学生的多门课程的成绩,提供多种排序、查询功能和数据统计、分析功能。
这个怎么写啊🆘🆘💔

#include<iostream>
#include<vector>
#include<string>

using namespace std;

class Interest {
public:
    int id; // 兴趣编号
    string content; // 兴趣内容
};

class Student {
public:
    int id; // 学号
    string name; // 姓名
    string gender; // 性别
    vector<Interest> interests; // 兴趣列表
};

vector<Student> students; // 存储学生信息

void add_student() {
    Student s;
    cout << "请输入学号:";
    cin >> s.id;
    cout << "请输入姓名:";
    cin >> s.name;
    cout << "请输入性别:";
    cin >> s.gender;
    int n;
    cout << "请输入兴趣数目:";
    cin >> n;
    cout << "请依次输入每个兴趣的编号和内容:" << endl;
    for(int i=0; i<n; i++) {
        Interest inter;
        cin >> inter.id >> inter.content;
        s.interests.push_back(inter);
    }
    students.push_back(s);
}

void modify_student() {
    int id;
    cout << "请输入要修改的学生的学号:";
    cin >> id;
    for(int i=0; i<students.size(); i++) {
        if(students[i].id == id) {
            cout << "请输入新的学生信息:" << endl;
            cout << "请输入姓名:";
            cin >> students[i].name;
            cout << "请输入性别:";
            cin >> students[i].gender;
            int n;
            cout << "请输入兴趣数目:";
            cin >> n;
            cout << "请依次输入每个兴趣的编号和内容:" << endl;
            students[i].interests.clear();
            for(int j=0; j<n; j++) {
                Interest inter;
                cin >> inter.id >> inter.content;
                students[i].interests.push_back(inter);
            }
            return;
        }
    }
    cout << "未找到对应学生,请重新输入。" << endl;
}

void delete_student() {
    int id;
    cout << "请输入要删除的学生的学号:";
    cin >> id;
    for(int i=0; i<students.size(); i++) {
        if(students[i].id == id) {
            students.erase(students.begin()+i);
            cout << "删除成功。" << endl;
            return;
        }
    }
    cout << "未找到对应学生,请重新输入。" << endl;
}

void query_student() {
    string keyword;
    cout << "请输入查询关键字:";
    cin >> keyword;
    for(int i=0; i<students.size(); i++) {
        if(students[i].name.find(keyword) != string::npos 
            || students[i].gender.find(keyword) != string::npos 
            || students[i].id == stoi(keyword)) {
            cout << "学号:" << students[i].id << endl;
            cout << "姓名:" << students[i].name << endl;
            cout << "性别:" << students[i].gender << endl;
            cout << "兴趣列表:" << endl;
            for(int j=0; j<students[i].interests.size(); j++) {
                cout << students[i].interests[j].id << " " << students[i].interests[j].content << endl;
            }
        }
    }
}

int main() {
    while(true) {
        cout << "请选择功能(输入对应数字):" << endl;
        cout << "1. 添加学生信息" << endl;
        cout << "2. 修改学生信息" << endl;
        cout << "3. 删除学生信息" << endl;
        cout << "4. 查询学生信息" << endl;
        cout << "5. 退出程序" << endl;
        int choice;
        cin >> choice;
        switch(choice) {
            case 1:
                add_student();
                break;
            case 2:
                modify_student();
                break;
            case 3:
                delete_student();
                break;
            case 4:
                query_student();
                break;
            case 5:
                return 0;
            default:
                cout << "无效的选项,请重新选择。" << endl;
        }
    }
    return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7726446
  • 这篇博客也不错, 你可以看下数组内排序方法——直接选择排序、快速排序、插入排序
  • 除此之外, 这篇博客: C语言回顾学习(数组、函数、指针应用、最大最小值查找以及删除、平均值求解)中的 总结 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    重新回顾C语言学习,突发奇想写下文章记录一下学习过程,代码不足之处希望各位可以多多包涵,欢迎各位提意见和疑惑。

  • 您还可以看一下 李月喜老师的企业微信开发自建内部应用开发篇课程中的 开发文档如何阅读,如何寻求帮助,如何找到同行小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    我可以使用C++或者Java来开发这个系统。对于具体功能的要求,我需要实现以下内容:

    1. 学生信息和兴趣信息的添加、删除、修改和查询功能;
    2. 录入并保存一个班级学生的多门课程成绩;
    3. 提供多种排序、查询和数据统计功能。

    我可以使用面向对象的思想来实现这个系统。首先需要创建学生和兴趣两个类,包括相应的属性和方法。具体实现步骤如下:

    1. 创建一个兴趣类Interest和一个学生类Student;
    2. 在Interest类中定义兴趣编号和兴趣内容两个属性,并添加相应的添加、删除、修改和查询方法;
    3. 在Student类中定义学号、姓名、性别和兴趣等属性,并添加相应的添加、删除、修改和查询方法;
    4. 在Student类中添加多门课程成绩的属性,可以使用数组或者向量来存储,然后添加相应的添加、删除、修改和查询方法;
    5. 在主函数中,创建学生和兴趣对象,并通过调用类的方法来完成相应的功能。

    具体实现过程中需要注意以下几点:

    1. 对于学生的兴趣属性,需要使用组合类的方式进行实现。即在Student类中添加一个Interest类的对象,然后通过调用Interest类的相应方法来完成对兴趣信息的操作;
    2. 在进行数组或向量操作时需要注意边界问题,避免越界访问;
    3. 在排序、查询和数据统计功能实现时,需要使用相应的算法和数据结构来完成。如排序可以使用快速排序或者归并排序,查询可以使用二分查找,数据统计可以使用哈希表或者统计算法等。

    以上是基本的思路和实现方法,具体实现过程中还需要根据具体需求进行调整和完善。如果需要更详细的实现过程和代码实现,可以提供更多的信息或者具体功能需求。


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