要多笑噢 2022-05-19 14:37 采纳率: 75%
浏览 73
已结题

C++创建学生课程系统

img

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

  • 写回答

1条回答 默认 最新

  • SoporAeternus2022 2022-05-19 17:32
    关注
    
    
    #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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月14日
  • 已采纳回答 6月6日
  • 创建了问题 5月19日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度