题目:声明一个 student 类,私有成员为疫苗的次数,每次疫苗的类型。声明静态成员,记录没打疫苗的和分别打一针、二针、三针的人数,以及各类疫苗的总接种次数。
我的问题:怎么识别我输入的疫苗类型,然后在对应的次数上叠加啊?(完全没有头绪)
怎么设计一个类内函数,去识别字符并且计数?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- bostonAlen 2022-04-26 13:04关注
#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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 对于相关问题的求解与代码
- ¥15 ubuntu子系统密码忘记
- ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料