对象数组、对象指针和动态生成对象
1. 编写程序完成如下步骤:
⑴ 定义一个类Candidate代表候选人,该类应封装的数据成员有候选人编号(int num,从1开始递增)、得选票数(int count)和函数成员show显示该获选人的编号和得票数、函数成员sum为给定获选人累加选票,即每次调用该函数,对应的得票数加1。
⑵ 编写一个独立函数Intput,函数的参数为Candidate类对象数组。函数的功能是:
⑶ 假设侯选人数的10,利用前两步中已编代码,编写main函数,在其中调用Input函数完成写入候选人信息,再显示所有获选人的编号和得票数。
#include "stdafx.h"
#include "iostream.h"
#include "iomanip.h"
const NUM=10;
class Candidate
{
private:
int num;
int count;
public:
Candidate(){}
Candidate(int n,int c);
void setNum(int n){num=n;}
void setCount(int c){count=c;}
void show();
void sum();
~Candidate(){}
};
Candidate::Candidate(int n,int c)
{
num=n;
count=c;
}
void Candidate::show()
{
cout<<"候选人编号:"<>t;
cout<0&&t<=10)
candidate[t-1].sum();
if(t<0||t>10)
{
cout<<"无此编号!请重新输入"<setNum(i+1);
p->setCount(0);
}
int flag;
while(flag!=0)
{
int t;
cout<<"请输入你要支持的人的编号:";
cin>>t;
cout<0&&t<=10)
{ p=candidate+(t-1);
p->sum();
}
if(t<0||t>10)
{
cout<<"无此编号!请重新输入"<show();
}
}
3. 假设侯选人的人数由用户键盘输入,利用动态生成对象数组的方式重新编写1题。
#include "stdafx.h"
#include "iostream.h"
#include "iomanip.h"
class Candidate
{
private:
int num;
int count;
public:
Candidate(){}
Candidate(int n,int c);
void setNum(int n){num=n;}
void setCount(int c){count=c;}
void show();
void sum();
~Candidate(){}
};
Candidate::Candidate(int n,int c)
{
num=n;
count=c;
}
void Candidate::show()
{
cout<<"候选人编号:"<>n;
cout<>t;
cout<0&&t<=n)
candidate.element(t-1).sum();
if(t<0||t>n)
{
cout<<"无此编号!请重新输入"<