学生选课,假设每一个课程只有一个任课teacher,每个teacher只上一门课,每个学生最多选择3门课,输出每个学生的姓名、学号、所选课程的总学分、总课时;以及每门所选课程的名称、学分、课时。请输出每门课程对应的选课总学生数。
要求:
1)基本:设计一个课程类CCourse、学生类CStudent,有4个学生,5门课,所有类的数据成员必须私有。
2)CCourse有课程名(string)、课程学分(int)、课程学时(int)、静态成员选课学生数(静态)等数据成员。函数成员有:构造函数、析构函数、后的课程学分、学时的函数(const)、选择该课程、输出选课学生数(静态)。调用选择该课程时,选课学生数加1。
。
3)CStudent类有数据成员:姓名(string)、学号(string)、selectedCourse (数组类型,动态或者静态数据都可以)、已选课程门数, 函数成员构造函数、析构函数、选择课程、所选课程列表、所选课程的总学分、总课时。是否初次选课的成员变量,初始值为false,第一次选课变为true,一个参与选课的学生数静态成员变量,统计一共有多少学生参与选课。如必要增加必要的成员函数
4)以上2个类,在主函数中定义4个学生s1,s2,s3,s4; 5门课c1,c2,c3,c4,c5; 对象名可以不同。每个学生选至多三门课;
5)输出每个学生的所选课程的有关信息及汇总信息。
6)输出每门课的选课学学生数。
7)输出一共有多少学生参与选课。
8)自己对该问题进行完善设计,增加必要的成员变量、成员函数,以及必要的输出信息。
include <iostream>
#include<string>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
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++;
}
int displaycourse()
{int i,j,k;
for(i=0;i<coursenum;i++)
{
j=selectedCourse[i].getscore();
k= selectedCourse[i].gethour();
cout<<j<<k<<endl;}
}
void totalnum();
void totalhour();
private:
string name;
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;
}
错误信息贴出来看看
CStudent类的函数没有return语句