#include "PersonSet.h"
#include
#include
using namespace std;
class PersonSet;
class Voter;
class Candidate:public Person{
/*******************************************
函数名称:ostream& operator<<(ostream& ,Person&)
函数功能:输出运算符重载函数
传入参数:N/A
返回 值 :N/A
********************************************/
friend ostream& operator<<(ostream&,Candidate&);
/*******************************************
函数名称:bool operator<(Candidate& a,Candidate& b);
函数功能:重载运算符,判断是否a 传入参数:N/A
返回 值 :N/A
********************************************/
friend bool operator<(Candidate& a,Candidate& b);
protected:
//定义一个PersonSet 对象
PersonSet _votorSet;
double average_age;//平均年龄
double average_salary;//平均薪水
static int _numCandidates;//统计比赛中有多少候选人参加
public:
/*******************************************
函数名称:PersonSet& Candidate::getPersonSet()
函数功能:PersonSet对象的get方法
传入参数:N/A
返回 值 :N/A
********************************************/
PersonSet& getPersonSet();
/*******************************************
函数名称: Candidate(string name="lisi",int age=5,int salary=1222);
函数功能:带参构造函数
传入参数:N/A
返回 值 :N/A
********************************************/
Candidate(string name="lisi",int age=5,double salary=0);
/*******************************************
函数名称: int getVotesNum();
函数功能:当前选举人所得到的票数
传入参数:N/A
返回 值 :N/A
********************************************/
int getVotesNum();//得到每个候选人的票数
/*******************************************
函数名称: void AddVoter(Voter& aVoter);
函数功能:得到选举人所给的票,记住给当前候选人投票人的信息
传入参数:N/A
返回 值 :N/A
********************************************/
void AddVoter(Voter& aVoter);
/*******************************************
函数名称: int getAverageVotersAge();
函数功能:获取所以给当前候选人投票的所有选举人的平均年龄
传入参数:N/A
返回 值 :N/A
********************************************/
double getAverageVotersAge();
/*******************************************
函数名称: int getAverageVotersSalary();
函数功能:获取所以给当前候选人投票的所有选举人的平均薪资
传入参数:N/A
返回 值 :N/A
********************************************/
double getAverageVotersSalary();
/*******************************************
函数名称: static int Candidates();
函数功能:获取所有的候选人个数
传入参数:N/A
返回 值 :N/A
********************************************/
static int Candidates();
};
#endif
/***************************************************
文件名称:Candidate.cpp
作 者:zz
备 注:候选人的实现文件
创建时间:2012-4-1
修改历史:2012-4-5
版权声明:CSDN
***************************************************/
#include "Candidate.h"
#include "Voter.h"
#include "PersonSet.h"
#include "Person.h"
#include
#include
using namespace std;
//初始化 总候选人的个数
int Candidate::_numCandidates=0;
/*******************************************
函数名称:PersonSet& Candidate::getPersonSet()
函数功能:PersonSet对象的get方法
传入参数:N/A
返回 值 :N/A
********************************************/
PersonSet& Candidate::getPersonSet(){
return _votorSet;
}
/*******************************************
函数名称: Candidate(string name="lisi",int age=5,int salary=1222);
函数功能:带参构造函数
传入参数:N/A
返回 值 :N/A
********************************************/
Candidate:: Candidate(string name,int age,double salary):Person(name,age,salary)
{
_numCandidates++;
}
/*******************************************
函数名称: int getVotesNum();
函数功能:当前