定义一个Course(课程)类,该类有cid(课程编号)、name(课程名称)、credits(学分)、year(开设学年:第一、第二或第三)等私有数据成员。该类还有三个私有静态数据成员count1、count2和count3分别用于统计第一、第二和第三学年的总学分。为该类定义构造函数,构造函数要负责对静态数据成员的值进行调整。再定义一个静态函数成员 void printCount(),该函数用于输出静态数据成员的值。在主函数中创建若干个课程对象,然后调用printCount输出第一、第二和第三学年的总学分。main函数已经写好,请根据main函数的内容完成Course类的设计。main函数如下: int main(){ string cid; string name; double credits; int year; cin>>cid>>name>>credits>>year; Course c1(cid,name,credits,year); cin>>cid>>name>>credits>>year; Course c2(cid,name,credits,year); cin>>cid>>name>>credits>>year; Course c3(cid,name,credits,year); cin>>cid>>name>>credits>>year; Course c4(cid,name,credits,year); cin>>cid>>name>>credits>>year; Course c5(cid,name,credits,year); Course::printCount(); return 0; }
时间: 2024-03-10 19:51:13 浏览: 155
以下是Course类的设计:
```
#include <iostream>
#include <string>
using namespace std;
class Course {
private:
string cid; // 课程编号
string name; // 课程名称
double credits; // 学分
int year; // 开设学年:第一、第二或第三
static double count1; // 第一学年总学分
static double count2; // 第二学年总学分
static double count3; // 第三学年总学分
public:
// 构造函数
Course(string c, string n, double cr, int y) {
cid = c;
name = n;
credits = cr;
year = y;
// 根据开设学年调整静态数据成员的值
switch (year) {
case 1:
count1 += credits;
break;
case 2:
count2 += credits;
break;
case 3:
count3 += credits;
break;
}
}
// 静态函数成员,用于输出静态数据成员的值
static void printCount() {
cout << "第一学年总学分:" << count1 << endl;
cout << "第二学年总学分:" << count2 << endl;
cout << "第三学年总学分:" << count3 << endl;
}
};
// 静态数据成员的初始化
double Course::count1 = 0;
double Course::count2 = 0;
double Course::count3 = 0;
```
在主函数中,我们可以创建若干个课程对象,并且调用Course类的静态函数成员printCount()输出第一、第二和第三学年的总学分。