C ++ Lista de entrada del programa de los candidatos y encontrar ganador de las elecciones en base a los votos recibidos

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:

  1. Apellido
  2. Sin

  3. de votos recibidos

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:

  1. crear una matriz de 5 elemento del tipo candidato .
  2. de entrada toda la entrada y asignarlos a la matriz candidato .
  3. 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;

  4. Para contar el número total de votos, sumar todos los votos recibidos.
  5. For i=0:4
    total_vote+= array[i].vote
    End for loop

  6. 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).
  7. class averiguar el ganador
  8. 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


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *