C++学生选课 代码求改

实验内容
学生选课,假设每一个课程只有一个任课teacher,每个teacher只上一门课,每个学生最多选择3门课,输出每个学生的姓名、学号、所选课程的总学分、总课时;以及每门所选课程的名称、学分、课时。请输出每门课程对应的选课总学生数。
基本:设计一个课程类CCourse、学生类CStudent,有4个学生,5门课,所有类的数据成员必须私有。
2)CCourse有课程名(string)、课程学分(int)、课程学时(int)、静态成员选课学生数(静态)等数据成员。
函数成员有:构造函数、析构函数、后的课程学分、学时的函数(const)、选择该课程、输出选课学生数(静态)。调用选择该课程时,选课学生数加1。
3)CStudent类有数据成员:姓名(string)、学号(string)、selectedCourse (数组类型,动态或者静态数据都可以)、已选课程门数, 函数成员构造函数、析构函数、选择课程、所选课程列表、所选课程的总学分、总课时。是否初次选课的成员变量,初始值为false,第一次选课变为true,一个参与选课的学生数静态成员变量,统计一共有多少学生参与选课。如必要增加必要的成员函数
4)以上2个类,在主函数中定义4个学生 5门课 对象名可以不同。每个学生选至多三门课;
5)输出每个学生的所选课程的有关信息及汇总信息。
6)输出每门课的选课学学生数。
7)输出一共有多少学生参与选课。
8)自己对该问题进行完善设计,增加必要的成员变量、成员函数,以及必要的输出信息。


#pragma once
#include <iostream>
using std::string;
#include <string>
using namespace std;
class CCourse
{
public:
    int studentnum = 0;
    CCourse(int, int);

    int diplaynum() {
        cout << "选择该课程的学生数量为" << studentnum << endl;
    }
    int getscore() {
        return score;
    }
    int gethour() {
        return hour;
    }
private:

    string Cname;
    int score;
    int hour;



};
CCourse::CCourse(int a, int b)
{
    score = a;
    hour = b;
}

class CStudent
{
public:
    CStudent();

  int choosecourse(CCourse* pl)
    {
        selectedCourse[coursenum] = *pl; coursenum++;
        return coursenum;
    }

   void displaycourse()
  {
       int i=0, j=0, k=0;
       for (i = 0; i < coursenum; i++)

        {
            j = selectedCourse[i].getscore();
            k = selectedCourse[i].gethour();
           cout << j << k << endl;
       }

     
    }
    void totalnum();
    void totalhour();
private:
   static string name;
    static string sn;
    CCourse selectedCourse[10];

    int coursenum = 0;

};

int main(int argc, char** argv) {
    CCourse c1(5, 16), c2(4, 16), c3(3, 8), c4(4, 8), c5(2, 6);
    CStudent s1, s2, s3, s4;
    s1.choosecourse(&c2);
    s1.choosecourse(&c1);
    s1.displaycourse();
    return 0;
}



怎么修改

img

想问问解决了么,我也不会

解决了吗?

同样的题目同样的IP属地,很难不相信不是zstu的XD