El primer código es el del main y las funciones, en el segundo están declaradas las funciones y los arrays.
Código:
#include "Practica11Modif.h"
//int generales [10]; //************************************************
int main() {
int cens;
int &Pcens = cens;
cout << "¿Cual es el número de ciudadanos censados? " << endl;
cin >> cens;
votacion20N(Pcens);
cout << "Resultados finales de las elecciones 2011" << endl;
cout << endl;
cout << " " << "Congreso " << "Senado" << endl;
cout << endl;
cout << "1. PP " << result[0].NvotosC << " ---- " << result[0].NvotosS << endl;
cout << "2. PSOE " << result[1].NvotosC << " ---- " << result[1].NvotosS << endl;
cout << "3. IU " << result[2].NvotosC << " ---- " << result[2].NvotosS << endl;
cout << "4. CiU " << result[3].NvotosC << " ---- " << result[3].NvotosS << endl;
cout << "5. PNV " << result[4].NvotosC << " ---- " << result[4].NvotosS << endl;
cout << "6. UPiD " << result[5].NvotosC << " ---- " << result[5].NvotosS << endl;
cout << "7. BNG " << result[6].NvotosC << " ---- " << result[6].NvotosS << endl;
cout << "8. CC-NC-PNC " << result[7].NvotosC << " ---- " << result[7].NvotosS << endl;
cout << "9. ERC-RI " << result[8].NvotosC << " ---- " << result[8].NvotosS << endl;
cout << "10.Abstenerse " << result[9].NvotosC << " ---- " << result[9].NvotosS << endl;
for(int l=0;l<11;l++){ //***************************************************
gen[l].NVOTOSC << result[l].NvotosC;
gen[l].NVOTOSS << result[l].NvotosS;
};
int camara;
int nVotos;
cout << endl;
cout << "Elija una camara: " << endl;
cout << "1. Congreso" << endl;
cout << "2. Senado" << endl;
cin >> camara;
cout << endl;
while (camara < 1 || camara > 2){
cout << "Valor no valido, introduzca de nuevo el valor CAMARA: ";
cin >> camara;
}
cout << "Introduzca el número de votos: " << endl;
cin >> nVotos;
buscarPorNroVotosRecibidos(camara,nVotos);
cout << endl;
int camara1;
cout << endl;
cout << "Elija la camara para saber el partido ganador de las elecciones 2011" << endl;
cout << "1. Congreso" << endl;
cout << "2. Senado" << endl;
cin >> camara1;
buscarMaximo(camara1);
return 0;
}
/* *************************FUNCIONES******************************** */
void votacion20N (int Pcens){
int contador = 1;
int i = 0;
while (i<Pcens){
cout << "Elecciones 2011" << endl;
cout << "Elija una de las siguientes opciones para votar: " <<endl;
cout << endl;
int j=1;
while(j<11){
cout << j << " " << result[j-1].nombre << endl;
j++;
}
cout << endl;
cout << "VOTO [" << contador << "] "<< "de" << " [" << Pcens << "] "<< endl;
cout << "------------------------" << endl;
cout << "*Introduzca su voto para el Congreso de los Diputados: ";
cin >> voto.congreso;
cout << endl;
while (voto.congreso<1||voto.congreso>10){
cout << "Voto no permitido, intentelo de nuevo.";
cout << endl;
cout << endl;
cout << "(*)Introduzca su voto al Congreso de nuevo: ";
cout << endl;
cin >> voto.congreso;
}
int partido;
int &Ppartido = partido;
partido = voto.congreso-1;
mostrarResultadosCongreso(Ppartido);
cout << endl;
cout << endl;
cout << "*Introduzca su voto para el Senado(1): ";
cin >> voto.senadoPRIM;
cout << endl;
while (voto.senadoPRIM<1||voto.senadoPRIM>10){
cout << "Voto no permitido, intentelo de nuevo.";
cout << endl;
cout << endl;
cout << "(*)Introduzca su voto al Senado(1) de nuevo: ";
cout << endl;
cin >> voto.senadoPRIM;
}
int senadoP;
int &PsenadoP = senadoP;
senadoP = voto.senadoPRIM-1;
mostrarResultadosSenadoPRIM(PsenadoP);
cout << endl;
cout << endl;
cout << "*Introduzca su voto para el Senado(2): ";
cin >> voto.senadoSEG;
cout << endl;
while (voto.senadoSEG<1||voto.senadoSEG>10){
cout << "Voto no permitido, intentelo de nuevo.";
cout << endl;
cout << endl;
cout << "(*)Introduzca su voto al Senado(2) de nuevo: ";
cout << endl;
cin >> voto.senadoSEG;
}
int senadoS;
int &PsenadoS = senadoS;
senadoS = voto.senadoSEG-1;
mostrarResultadosSenadoSEG(PsenadoS);
(result[voto.congreso-1].NvotosC)++;
(result[voto.senadoPRIM-1].NvotosS)++;
(result[voto.senadoSEG-1].NvotosS)++;
cout << endl;
cout << endl;
cout << "Resultados de las elecciones 2011: "<< endl;
cout << "-------------------------------------------------------------------" << endl;
resultadosCongreso();
resultadosSenado();
cout << "-------------------------------------------------------------------" << endl;;
i++;
contador ++;
}
};
void mostrarResultadosCongreso (int partido){
cout << "Usted a votado por el partido " << result[partido].nombre << " para el Congreso de los diputados.";
};
void mostrarResultadosSenadoPRIM (int senadoP){
cout << "Usted a votado por el partido " << result[senadoP].nombre << " para el Senado(1).";
};
void mostrarResultadosSenadoSEG (int senadoS){
cout << "Usted a votado por el partido " << result[senadoS].nombre << " para el Senado(2).";
};
void resultadosCongreso(){
cout << "El partido " << result[voto.congreso-1].nombre << " tiene " << result[voto.congreso-1].NvotosC << " en el Congreso de los Diputdos" << endl;
};
void resultadosSenado(){
cout << "El partido " << result[voto.senadoPRIM-1].nombre << " tiene " << result[voto.senadoPRIM-1].NvotosS << " en el Senado(1) " << endl;
cout << "El partido " << result[voto.senadoSEG-1].nombre << " tiene " << result[voto.senadoSEG-1].NvotosS << " en el Senado(2) " << endl;
};
void buscarPorNroVotosRecibidos(int camara, int nVotos){
if (camara==1){
if (result[0].NvotosC > nVotos){
cout << " " << result[0].nombre;
}
if (result[1].NvotosC > nVotos){
cout << " " << result[1].nombre;
}
if (result[2].NvotosC > nVotos){
cout << " " << result[2].nombre;
}
if (result[3].NvotosC > nVotos){
cout << " " << result[3].nombre;
}
if (result[4].NvotosC > nVotos){
cout << " " << result[4].nombre;
}
if (result[5].NvotosC > nVotos){
cout << " " << result[5].nombre;
}
if (result[6].NvotosC > nVotos){
cout << " " << result[6].nombre;
}
if (result[7].NvotosC > nVotos){
cout << " " << result[7].nombre;
}
if (result[8].NvotosC > nVotos){
cout << " " << result[8].nombre;
}
if (result[9].NvotosC > nVotos){
cout << " " << result[9].nombre;
}
if (result[10].NvotosC > nVotos){
cout << " " << result[10].nombre;
}
}
if (camara==2){
if (result[0].NvotosS > nVotos){
cout << " " << result[0].nombre;
}
if (result[1].NvotosS > nVotos){
cout << " " << result[1].nombre;
}
if (result[2].NvotosS > nVotos){
cout << " " << result[2].nombre;
}
if (result[3].NvotosS > nVotos){
cout << " " << result[3].nombre;
}
if (result[4].NvotosS > nVotos){
cout << " " << result[4].nombre;
}
if (result[5].NvotosS > nVotos){
cout << " " << result[5].nombre;
}
if (result[6].NvotosS > nVotos){
cout << " " << result[6].nombre;
}
if (result[7].NvotosS > nVotos){
cout << " " << result[7].nombre;
}
if (result[8].NvotosS > nVotos){
cout << " " << result[8].nombre;
}
if (result[9].NvotosS > nVotos){
cout << " " << result[9].nombre;
}
if (result[10].NvotosS > nVotos){
cout << " " << result[10].nombre;
}
}
};
void buscarMaximo(int camara1){
cout << endl;
if (camara1==1){
cout << endl;
cout << "El ganador de las elecciones en el Congreso es: " << endl;
int mayorC;
int iC;
int repetidoC;
mayorC = result[0].NvotosC;
repetidoC = 1;
int PC = 0;
for (iC=0; iC<11 ;iC++){
if (mayorC < result[iC].NvotosC) {
mayorC = result[iC].NvotosC;
PC=iC;
}
else if (mayorC==result[iC].NvotosC)
repetidoC ++;
}
cout << "Es el "<< result[PC].nombre << " por " << mayorC << " votos." << endl;
}
if (camara1==2){
cout << "El ganador de las elecciones en el Senado es: " << endl;
int mayorS;
int iS;
int repetidoS;
mayorS = result[0].NvotosS;
repetidoS = 1;
int PS = 0;
for (iS=0; iS<11 ;iS++){
if (mayorS < result[iS].NvotosC) {
mayorS = result[iS].NvotosS;
PS=iS;
}
else if (mayorS==result[iS].NvotosS)
repetidoS ++;
}
cout << "Es el "<< result[PS].nombre << " por " << mayorS << " votos." << endl;
}
};
y el fichero de cabecera:
Código:
#ifndef Practica11Modif_h
#define Practica11Modif_h
#include <iostream>
using namespace std;
void votacion20N(int);
void mostrarResultadosCongreso(int);
void mostrarResultadosSenadoPRIM(int);
void mostrarResultadosSenadoSEG(int);
void resultadosCongreso();
void resultadosSenado();
void buscarPorNroVotosRecibidos(int, int);
void buscarMaximo(int);
using namespace std;
struct voto {
int congreso;
struct {
int senadoPRIM;
int senadoSEG;
};
};
struct resultados {
char nombre[20];
int NvotosC;
int NvotosS;
};
struct voto voto;
struct resultados result[10] = {{"PP", 0, 0}, {"PSOE", 0, 0}, {"IU", 0, 0}, {"CIU", 0, 0}, {"PNV", 0, 0}, {"UPyD", 0, 0}, {"BNG", 0, 0}, {"CC-NC-PNC", 0, 0}, {"ERC-RI", 0, 0}, {"Voto en blanco", 0, 0}};
#endif