Sie sind auf Seite 1von 4

//Nombres: Angel Gonzalez y Laura Torres

//Correo electrónico: angel.gonzalez02@uptc.edu.co- laura.torres03@uptc.edu.co


//Códigos: 201722358-201421760
#include<iostream>
#include <conio.h> //Para que cada caracter se pinte como un asterisco
#include<cstdlib> //Libreria que convierte un string a int
using namespace std;

int numeroDeCandidatos=0;
int numeroDeVotantes=0;
string listaCandidatos[100];
int listaDeVotaciones[100];

/*Mètodo que pide la cantidad de votantes y de candidatos*/

void obtenerNVotantesYCandidatos(){
cout<<"Digite cantidad de candidatos: ";cin>>numeroDeCandidatos;
cout<<"Digite cantidad de votantes: ";cin>>numeroDeVotantes;
listaCandidatos[numeroDeCandidatos];
listaDeVotaciones[numeroDeCandidatos];
}

/*Mètodo escribe un valor en astericos y lo retorna*/

int obtenerAstericos(){
string opcion;
char value= 13;
char caracter;
string aux[13];
int i=0;
do{
caracter=getch();
putchar('*');
aux[i]=caracter;
i++;
}while(caracter!=value);
aux[i-1]='\0';

for(int j=0; j<13;j++){


opcion=opcion+aux[j];
}
int finalOpcion= atoi(opcion.c_str());
return finalOpcion;
}

/*Mètodo que pide el nombre de los candidatos y los guarda en un array*/

void pedirCandidatos(){
string nombre,apellido,nombrecompleto;
for(int i=0;i<numeroDeCandidatos;i++){ //Este for se utiliza para ir agregando candidato por candidato
cout<<"Digite el nombre y apellido del candidato que estará en la votación: ";
cin>>nombre;cin>>apellido;
nombrecompleto=nombre+" "+apellido;
listaCandidatos[i]=nombrecompleto;
}
}

/*Mètodo que imprime listado de candidatos*/

void imprimirCandidatos(){
cout<<"Los candidatos a votar son: "<<endl;
for(int i=0;i<numeroDeCandidatos;i++){
cout<<i+1<<". "<<listaCandidatos[i]<<endl;
}
}

/*Metodo para ingresar las votaciones para cada candidato*/

void votar(){
int opcion=0;
for(int i=0;i<numeroDeVotantes;i++){
cout<<"Votante No "<<i+1<<" por favor digite el numero del candidato por el cual va a votar: ";
opcion= obtenerAstericos();
for(int j=0;j<numeroDeCandidatos;j++){
if(opcion-1==j){
listaDeVotaciones[j]+=1;
}
}
cout<<endl;
}
}

/*Metodo para imprimir el listado de la suma de las votaciones*/

void imprimirListadoDeVotaciones(){
for(int i=0;i<numeroDeCandidatos;i++){
cout<<"Candidato "<<i+1<<": "<<listaDeVotaciones[i]<<endl;
}
}

/*Metodo para obtener la votacion mas alta*/

int obtenerVotacionMayor(){
int mayor=0;
for(int i=0;i<numeroDeCandidatos;i++){
if(mayor<listaDeVotaciones[i]){
mayor=listaDeVotaciones[i];
}
}
return mayor;
}

/*Metodo para obtener el candidato con la votacion mas alta*/


int obtenerCandidatoVotacionMayor(){
int mayor=0,posicion=0;
for(int i=0;i<numeroDeCandidatos;i++){
if(mayor<listaDeVotaciones[i]){
mayor=listaDeVotaciones[i];
posicion=i;
}
}
return posicion;
}

/*Metodo para saber cuantos candidatos quedaron empatados*/

int obtenerNumeroDeVecesMayor(){
int contador=0;
int numMax=obtenerVotacionMayor();
for(int i=0;i<numeroDeCandidatos;i++){
if(numMax==listaDeVotaciones[i]){
contador=contador+1;
}
}
return contador;
}

/*Metodo para imprimir ganador(es) */

void imprimirGanadores(){
int numVeces=obtenerNumeroDeVecesMayor();
if(numVeces==1){
cout<<"El ganador fue "<<listaCandidatos[obtenerCandidatoVotacionMayor()]<<" con (No)
"<<obtenerVotacionMayor()<<" votos.";
} else{
int mayor=obtenerVotacionMayor(),posicion=0;
cout<<"Hubo un empate entre: "<<endl;
for(int i=0;i<numeroDeCandidatos;i++){
if(mayor==listaDeVotaciones[i]){
posicion=i;
cout<<"Candidato: "<<listaCandidatos[posicion]<<" con (No) "<<obtenerVotacionMayor()<<"
votos."<<endl;
}
}
}
}

/*Metodo que ejecuta la aplicacion*/

int main () {
setlocale(LC_ALL,"");
int respuesta;
cout<<" Programa sobre votaciones "<<endl;
cout<<" Presentado por Angel Gonzalez y Laura Torres " <<endl<<endl;
obtenerNVotantesYCandidatos();
pedirCandidatos();
imprimirCandidatos();
votar();
imprimirListadoDeVotaciones();
imprimirGanadores();
return 0;
}