En este caso, estamos implementando un programa de la lista de entrada C ++ de los candidatos y encontramos ganador de las elecciones en base a los votos recibidos .
Descripción: En el siguiente artículo vamos a aprender a resolver un problema de este tipo utilizando definiciones class.
Planteamiento del problema:
Escribir un programa que permite al usuario introducir los apellidos de cinco candidatos en una elección local y el número de votos recibidos por cada candidato . El programa deberá nombre de salida de cada candidato, el número de votos recibidos, y el porcentaje del total de votos recibidos por el candidato. Su programa debe también de salida del ganador de la elección .
Solución:
Construcción de objetos class el problema …
for este mismo problema, tenemos que crear un nuevo objeto, candidato, que cuenta con miembros:
- Apellido
- de votos recibidos
Sin
Así como definir un For siguiente:
class candidate{
//public member since we are not
//bothered about security of members
public:
string name;
int vote;
};
por lo tanto ahora un nuevo tipo de variable de objeto que va a crear es decir candidato y el algoritmo se basa en la definición class.
Algoritmo:
- crear una matriz de 5 elemento del tipo candidato .
- de entrada toda la entrada y asignarlos a la matriz candidato .
- Para contar el número total de votos, sumar todos los votos recibidos.
- para el cálculo de porcentaje de votos recibidos class cada uno de los candidatos, no de votos recibidos por total_vote y porcentaje maquillaje división. (Tenga cuidado de la división entera, resultado puede reflejar 0, si cambia el orden, primero se multiplican con el 100 o el cálculo flotante uso).
- class averiguar el ganador
Like for s be the input name & v be the no of
received vote for ith candidate, we assign it by-
Array[i].name=s; //members are assigned their values
Array[i].vote=v;
For i=0:4
total_vote+= array[i].vote
End for loop
Set max= INT_MIN, count=0;
for i=0:4
Find the max vote received by any candidate in the election
End for loop
For i=0:4
if no of received vote for i th candidate==max
Store i
Increase count // no of winner candidate
Print the name(s) of winner(s) using the stored indexes.
C ++ aplicación
#include <bits/stdc++.h>
using namespace std;
class candidate{
public:
string name;
int vote;
};
void outputElection(candidate* arr){
int total_vote=0;
for(int i=0;i<5;i++){
//finding total no of votes
total_vote=total_vote+arr[i].vote;
}
cout<<"result of the election............."<<endl;
cout<<"name of candidate"<<"t"<<"vote received"<<"t"<<"percentage"<<endl;
for(int i=0;i<5;i++){
cout<<arr[i].name<<"ttt";
cout<<arr[i].vote<<"tt";
cout<<(arr[i].vote*100)/total_vote<<"%"<<endl;
}
int max=INT_MIN,count=0;
int index[5]={0};
for(int i=0;i<5;i++){
if(arr[i].vote>max){
max=arr[i].vote;
}
}
for(int i=0;i<5;i++){
if(arr[i].vote==max){
index[count]=i;
count++;
}
}
if(count==1)
cout<<"The winner is "<<arr[index[count-1]].name<<endl;
else{
cout<<"There is tie between:"<<endl;
for(int i=0;i<count-1;i++)
cout<<arr[index[i]].name<<", ";
cout<<arr[index[count-1]].name<<endl;
cout<<"all are winnern";
}
return ;
}
int main(){
string s;
int v;
candidate arr[5];
cout<<"enter candidates last name, there are five candidatesn";
for(int i=0;i<5;i++){
cout<<"enter candidate "<<i<<" last namen";
cin>>s;
arr[i].name=s;
cout<<"enter no of votes received by candidate "<<i<<endl;
cin>>v;
arr[i].vote=v;
}
outputElection(arr);
return 0;
}
salida (primer experimento):
enter candidates last name, there are five candidates
enter candidate 0 last name
Peter
enter no of votes received by candidate 0
30
enter candidate 1 last name
Roy
enter no of votes received by candidate 1
20
enter candidate 2 last name
Ali
enter no of votes received by candidate 2
40
enter candidate 3 last name
Hales
enter no of votes received by candidate 3
60
enter candidate 4 last name
john
enter no of votes received by candidate 4
10
result of the election.............
name of candidate vote received percentage
Peter 30 18%
Roy 20 12%
Ali 40 25%
Hales 60 37%
john 10 6%
The winner is Hales
de salida (segunda tanda):
enter candidates last name, there are five candidates
enter candidate 0 last name
Morgan
enter no of votes received by candidate 0
25
enter candidate 1 last name
Wasim
enter no of votes received by candidate 1
15
enter candidate 2 last name
Stones
enter no of votes received by candidate 2
25
enter candidate 3 last name
Harris
enter no of votes received by candidate 3
15
enter candidate 4 last name
Enderson
enter no of votes received by candidate 4
20
result of the election.............
name of candidate vote received percentage
Morgan 25 25%
Wasim 15 15%
Stones 25 25%
Harris 15 15%
Enderson 20 20%
There is tie between:
Morgan, Stones
all are winner