C++创建学生课程系统

img

这个要怎么写?简单学生课程系统设计,不需要删除和修改信息的内容



#include <iostream>
#include <string>
#include <vector>
#include <memory>
using namespace std;

class Student
{
public:
    Student() {}
    ~Student() {}
    Student(string name, string sex, string studentID) :m_name(name), m_sex(sex), m_studentID(studentID){}

//private:
    string m_sex;
    string m_name;
    string m_studentID;
};

class Course
{
public:
    Course() {}
    ~Course() {}
    Course(string coursename,  unsigned int score) :m_coursename(coursename), m_score(score) {}
//private:
    string m_coursename;
    unsigned int m_score;
};

class SSC
{
public:
    SSC() {}
    ~SSC() {}
    SSC(const string name, const string sex, const string studentID
        , const string aname,int ascor
        , const string bname, int bscor
        , const string cname, int cscor
        , const string dname, int dscor):m_student(new Student(name,sex, studentID))
    {
        shared_ptr<Course>c1(new Course(aname,ascor));
        shared_ptr<Course>c2(new Course(bname, bscor));
        shared_ptr<Course>c3(new Course(cname, cscor));
        shared_ptr<Course>c4(new Course(dname, dscor));

        m_cources.push_back(c1);
        m_cources.push_back(c2);
        m_cources.push_back(c3);
        m_cources.push_back(c4);
    }
    
//private:
    shared_ptr<Student> m_student;
    vector<shared_ptr<Course>> m_cources;
};
vector <SSC> g_ssc;
void createSSC()
{
    vector <SSC> _ssc;
    SSC ssc1("Zhang", "男", "001", "A", 78, "B", 70, "C", 53, "D", 80);
    SSC ssc2("Cheng", "女", "002", "A", 75, "B", 75, "C", 85, "D", 78);
    SSC ssc3("Li", "女", "003", "A", 68, "B", 45, "C", 95, "D", 72);
    SSC ssc4("Cha", "男", "004", "A", 67, "B", 70, "C", 64, "D", 62);
    SSC ssc5("Xun", "男", "005", "A", 65, "B", 90, "C", 78, "D", 85);
    g_ssc.push_back(ssc1);
    g_ssc.push_back(ssc2);
    g_ssc.push_back(ssc3);
    g_ssc.push_back(ssc4);
    g_ssc.push_back(ssc5);

    for (auto it =g_ssc.begin();it != g_ssc.end();++it)
    {
        cout << "姓名 :" << (*(*it).m_student).m_name << " 性别:"<< (*(*it).m_student).m_sex<<" 学号:"<< (*(*it).m_student).m_studentID << " 成绩 :"  ;
        for (auto iter = (*it).m_cources.begin(); iter != (*it).m_cources.end(); ++iter)
        {
            cout << " "<<(*(*iter)).m_coursename <<" "<< (*(*iter)).m_score;
        }
        cout << endl;
    }
    cout << endl;

}

void selectHSorce(string cname)
{
    unsigned int tem = 0;
    string tempName;
    for (auto it = g_ssc.begin(); it != g_ssc.end(); ++it)
    {
        for (auto iter = (*it).m_cources.begin(); iter != (*it).m_cources.end(); ++iter)
        {
            if (tem < (*(*iter)).m_score && (*(*iter)).m_coursename == cname)
            {
                tem = (*(*iter)).m_score;
                tempName = (*(*it).m_student).m_name;
            }
        }
    }
    for (auto it1 = g_ssc.begin(); it1 != g_ssc.end(); ++it1)
    {
        if ((*(*it1).m_student).m_name == tempName)
        {
            cout << cname << "科目分数最高的 :" << endl;
            cout << "姓名 :"<< tempName << endl;
            cout << "性别 :" << (*(*it1).m_student).m_sex << endl;
            cout << "学号 :" << (*(*it1).m_student).m_studentID << endl;
            cout << " 成绩 :";
            for (auto iter1 = (*it1).m_cources.begin(); iter1 != (*it1).m_cources.end(); ++iter1)
            {
                cout << " " << (*(*iter1)).m_coursename << " " << (*(*iter1)).m_score;
            }
            cout << endl;
        }    
    }
    cout << endl;
}
void selectLSorce(string cname)
{
    unsigned int tem = 100;
    string tempName;
    for (auto it = g_ssc.begin(); it != g_ssc.end(); ++it)
    {
        for (auto iter = (*it).m_cources.begin(); iter != (*it).m_cources.end(); ++iter)
        {
            if (tem > (*(*iter)).m_score && (*(*iter)).m_coursename == cname)
            {
                tem = (*(*iter)).m_score;
                tempName = (*(*it).m_student).m_name;
            }
        }
    }
    for (auto it1 = g_ssc.begin(); it1 != g_ssc.end(); ++it1)
    {
        if ((*(*it1).m_student).m_name == tempName)
        {
            cout << cname << "科目分数最低的 :" << endl;
            cout << "姓名 :" << tempName << endl;
            cout << "性别 :" << (*(*it1).m_student).m_sex << endl;
            cout << "学号 :" << (*(*it1).m_student).m_studentID << endl;
            cout << " 成绩 :";
            for (auto iter1 = (*it1).m_cources.begin(); iter1 != (*it1).m_cources.end(); ++iter1)
            {
                cout << " " << (*(*iter1)).m_coursename << " " << (*(*iter1)).m_score;
            }
            cout << endl;
        }
    }
    cout << endl;

}

void studentSorce(string sname)
{
    unsigned int h = 0;
    string hname;
    unsigned int l = 100;
    string lname;
    for (auto it1 = g_ssc.begin(); it1 != g_ssc.end(); ++it1)
    {
        if ((*(*it1).m_student).m_name == sname)
        {
            cout << "姓名 :" << sname << endl;
            cout << "性别 :" << (*(*it1).m_student).m_sex << endl;
            cout << "学号 :" << (*(*it1).m_student).m_studentID << endl;
            //cout << " 成绩 :";
            for (auto iter1 = (*it1).m_cources.begin(); iter1 != (*it1).m_cources.end(); ++iter1)
            {
                if ((*(*iter1)).m_score > h)
                {
                    hname = (*(*iter1)).m_coursename;
                    h = (*(*iter1)).m_score;
                }
                if((*(*iter1)).m_score <l)
                {
                    lname = (*(*iter1)).m_coursename;
                    l = (*(*iter1)).m_score;
                }
            }
            cout << "最高成绩 :" << hname<<" " << h << endl;
            cout << "最低成绩 :" << lname << " " << l << endl;
        }
    }
    cout << endl;
    cout << endl;
}

int main()
{
    createSSC();
    selectHSorce("C");
    selectLSorce("B");
    studentSorce("Cheng");

    return 0;
}