资源描述
1.请设置候选人的个数:n
int n;
cin>>n;
2.请输入候选人的名字
class Student
{
public:
int n;//1中的人数
int poll[n];//票数
void vote();
void input();
void output();
private:
int num[n];
void name[n];
};
void Student::input()
{
for(int j=0;j<n;j++){
for(int i=0;i<n;i++)
{
cout<<"请输入第"<<j+1<<"个候选人的名字"<<endl;
cin>>name[j];
num[j]=j+1;
poll[j]=0;
}}
}
3. 显示候选人的编号和名称
void Student::output()
{
cout<<""<<""<<endl;
for(int i;i<n;i=0)
{
cout<<num[i]<<name[i]<<endl;
}
}
4. 设置投票人数
int m;
cin>>m;
5. 输入选票信息,若选票中候选人的个数大于要选举的人数,则作为无效票。(选票格式为候选人编号) 输入0结束
int i;//有效票
int j;//无效票
do{
i=0;j=0;
for(int k=0;k<m;k++)
{
int p;//当前票的数字
cin>>p;
if(p!=0){
for(int nn=0;nn<n;nn++)
{
if(p=num[n]){inpoll[n]++;i++};
else j++;
}
}
}
}while(j=i<=m)
解决方案 do...while
6. 统计总的选票数,有效票数,无效票数,每个候选人的得票数。
选票数m 有效票i 无效票j 得票inpoll
cout<<"选票数"<<m<<endl;
cout<<"有效票"<<i<<endl;
cout<<"无效票"<<j<<endl;
7.输出获选人的姓名和得票数。
cout<<"投票结果(按照票数排列)"<<endl;
更正
class Student{
public:
char name;
int num;
int poll;
};
class process{
public:
void vote();
void input();
void output();
void result();
private:
Student candidate[n];
Student middle;
};
process election;
函数中引用格式:
middle;
candidate[].name;
candidate[].num;
candidate[].poll; //更正结束
//结果排序
for(int k=n-1;k>0;k--){
for(int g=0;g<k;g++){
if(candidate[g].poll>candidate[g+1].poll){
middle=candidate[g];
candidate[g]=candidate[g+1];
candidate[g+1]=middle;
}}}
//输出结果
cout<<"编号"<<"姓名"<<"票数"<<endl;
for(int h=0;h<n;h++)
{
cout<<candidate[h].num<<candidate[h].name<<candidate[h].poll<<endl;
}
展开阅读全文