c++ - 找出有班级、指针和向量的男女学生的百分比
问题描述
string name
我已经介绍了一个学生类,其中包含、char gender
和的数据成员double gpa
。
该类如下所示:
class Student {
public:
Student();
Student(string name, char gender, double gpa);
void setName(string name);
void setGender(char gender);
void setGpa(double gpa);
string getName();
char getGender();
double getGpa();
private:
string name;
char gender;
double gpa;
};
我有另一个班级部门
class Department {
public:
Department();
Department(string department_name);
void setDepartment(string department_name);
string getDepartment();
void claimMajor(Student*);
void demography_by_gender();
private:
vector<Student*> majors;
string department_name;
};
这是我的主要内容
int main(int argc, const char* argv[]) {
Student* mike = new Student("Mike", 'M', 1.9);
Student* alexa = new Student("Alexa", 'F', 2.2);
Student* brook = new Student("Brook", 'F', 3.9);
Student* sam = new Student("Sam", 'F', 2.1);
Student* kevin = new Student("Kevin", 'M', 0.7);
Student* john = new Student("John", 'M', 2.5);
Student* jen = new Student("Jen", 'F', 1.8);
Department* csci = new Department("CSCI");
csci->claimMajor(mike);
csci->claimMajor(alexa);
csci->claimMajor(brook);
csci->claimMajor(sam);
csci->claimMajor(kevin);
csci->claimMajor(john);
csci->claimMajor(jen);
csci->demography_by_gender();
return 0;
}
该向量存储所有学生指针,但我无法弄清楚如何使用 计算男女学生的百分比demography_by_gender()
,然后打印出结果。
解决方案
float Department::demography_by_gender(char gender)
{
size_t found = 0;
if (majors->empty()) return 0.f;
else for (auto student: majors) {
if (student->gender == gender) found++;
}
return float(found) / majors->size();
}
推荐阅读
- reactjs - 为什么更新状态时我的待办事项列表无法更新?
- php - NODEJS / PHP WSDL SOAP:对象引用未设置为对象的实例
- python - 如何摆脱嵌套json中的反斜杠
- azure - Application Insights 在哪里将 HttpContext 注入 IHttpContextAccessor.Request?
- python - Pyfirmata Arduino:无法打开端口(串行异常)
- python - 如何在 Pandas 中将 0 和 1 的空值和非空值计算为行索引而不是 False 和 True
- python - 使用 Python 从 JSON 中删除条目
- java - 如何在 onCreate() 作为输入接收器时解决“非静态与静态”问题
- c# - NUnit TestFixtures 不适用于 RestSharp
- moqui - POPC 采购订单流程