题目:声明一个 student 类,私有成员为疫苗的次数,每次疫苗的类型。声明静态成员,记录没打疫苗的和分别打一针、二针、三针的人数,以及各类疫苗的总接种次数。
我的问题:怎么识别我输入的疫苗类型,然后在对应的次数上叠加啊?(完全没有头绪)
#include <iostream>
#include <vector>
using namespace std;
//疫苗种类
enum VACCINE_TYPE
{
miehuo = 4,//灭活疫苗
yadanw = 5,//亚单位疫苗
xianbd = 6,//腺病毒载体疫苗
};
class student
{
public:
static int people_novaccine;//没打疫苗的人数
static int people_first; //一针接种人数
static int people_second; //二针接种人数
static int people_third; //三针接种人数
static int people_miehuo; //灭活疫苗接种人数
static int people_yadanw; //亚单位疫苗接种人数
static int people_xianbd; //腺病毒载体疫苗
static void show()
{
cout<<"没打疫苗的人数:"<<people_novaccine<<endl;
cout<<"一针接种人数:"<<people_first<<endl;
cout<<"二针接种人数:"<<people_second<<endl;
cout<<"三针接种人数:"<<people_third<<endl;
cout<<"灭活疫苗接种人数:"<<people_miehuo<<endl;
cout<<"亚单位疫苗接种人数:"<<people_yadanw<<endl;
cout<<"腺病毒载体疫苗:"<<people_xianbd<<endl;
}
public:
student(){vaccine_time=0;}
student(int vtime,vector<int> _v)
{
vaccine_time = vtime;
v.resize(_v.size());
for(size_t i=0;i<_v.size();i++)
v[i]=_v[i];
if(vtime == 0) student::people_novaccine++;
else if(vtime == 1) student::people_first++;
else if(vtime == 2) {student::people_first++;student::people_second++;}
else if(vtime == 3) {student::people_first++;student::people_second++;student::people_third++;}
for(size_t i=0;i<_v.size();i++)
{
if(v[i] == miehuo)student::people_miehuo++;
if(v[i] == yadanw)student::people_yadanw++;
if(v[i] == xianbd)student::people_xianbd++;
}
}
private:
int vaccine_time;
vector<int> v;
};
int student::people_novaccine = 0;//没打疫苗的人数
int student::people_first = 0; //一针接种人数
int student::people_second = 0; //二针接种人数
int student::people_third = 0; //三针接种人数
int student::people_miehuo = 0; //灭活疫苗接种人数
int student::people_yadanw = 0; //亚单位疫苗接种人数
int student::people_xianbd = 0; //腺病毒载体疫苗接种人数
int main() {
vector<int> v1={};
vector<int> v2;
v2.resize(1);
v2[0] = miehuo;
vector<int> v3;
v3.resize(2);
v3[0] = miehuo;
v3[1] = yadanw;
vector<int> v4;
v4.resize(3);
v4[0] = miehuo;
v4[1] = yadanw;
v4[2] = xianbd;
student s1(3,v4);
student s2(2,v3);
student s3(1,v2);
student s4(0,v1);
student::show();
return 0;
}