实验内容
学生选课,假设每一个课程只有一个任课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;
}
怎么修改
想问问解决了么,我也不会
解决了吗?
同样的题目同样的IP属地,很难不相信不是zstu的XD