Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // compilacion ---- > g++ -std=c++11 -o votos votos.cc
- #include <iostream>
- #include <vector>
- #include <array>
- #include <iostream>
- #include <fstream>
- using namespace std;
- class voto{
- public:
- voto ();//El constructor inicializa el vector con 4 int a 0
- void voto_a(size_t persona);
- string ha_ganado()const;//Quien ha ganado ?
- //Por cada votante se elaboró un registro así: Cédula de Identidad y el valor del voto.
- void escribe_registro(string nombre_fichero,int cedula=1,int valor_voto=0);
- private:
- const array <string,4> nombre={{"Nulo","Pedro","Maria","Juan"}};//array con nombres candidatos
- vector <int> cand ;//Vector contiene los diferentes votos
- };
- //----------------------------------------------------------------------
- voto::voto ():cand(4,0){};//El constructor inicializa 4 int a 0
- //----------------------------------------------------------------------
- void voto::voto_a(size_t persona){
- if (persona<=3){cand[persona]++;}
- else {cand[0]++;}
- };
- //----------------------------------------------------------------------
- string voto::ha_ganado()const{// c) Quien gano las elecciones.
- int mayor(0),pos(0);
- for (size_t i=0; i<cand.size(); i++){
- cout <<nombre[i]<<" = "<<cand[i]<<endl;//a) Cuantos votos obtuvo cada candidato.
- if (cand[i]> mayor){
- mayor=cand[i];
- pos=i;
- }
- }
- if ( !( cand[0] & cand[1] & cand[2] & cand [3] )){//Condicion de empate a 3 !...mejorable...
- cout <<"Ha ganado con "<<cand[pos]<<" votos, "<<nombre [pos];//c) Quien gano las elecciones.
- }else {cout <<"Empate !"<<endl;}
- return "";
- }
- //----------------------------------------------------------------------
- void voto::escribe_registro(string nombre_fichero,int cedula,int valor_voto){
- ofstream fichero;
- fichero.open (nombre_fichero,std::fstream::in | std::fstream::out | std::fstream::app);
- fichero << "cedula "<<cedula<<" , "<<"valor voto= "<<valor_voto<<endl;;
- fichero.close();
- }
- //----------------------------------------------------------------------
- //----------------------------------------------------------------------
- int main(){
- int votacion(0),cedula(0);
- voto v;//Instancio la clase voto
- while (votacion>-1){//Voto manual por bucle ,Utilizar el ciclo while con respuesta al operador.
- cout <<"Su Cédula de Identidad ? ";
- cin>>cedula;
- cout <<"Por quien quieres votar ?"<<endl<<"Pedro (1),Maria (2),Juan (3) o Nulo (0 o >3 ) Salir (letra) ? "<<endl;
- cin>>votacion;
- if (cin.fail()){cin.clear();cin.ignore();break;}//salimos con cualquier letra ...
- v.voto_a(votacion);
- v.escribe_registro("Registro.txt",cedula,votacion);//Escribe en fichero texto, Cédula de Identidad y el valor del voto.
- }
- cout <<v.ha_ganado(); //resultados
- return 0;
- }
- /*
- 18.- En una elección realizada en un municipio, se presentaron tres candidatos: Pedro, María y Juan.
- Por cada votante se elaboró un registro así: Cédula de Identidad y el valor del voto.
- El voto puede desarrollarse de la siguiente manera:
- - Si votó por Pedro su valor es uno.
- - Si votó por María su valor es dos.
- - Si votó por Juan su valor es tres.
- Se pide:
- a) Cuantos votos obtuvo cada candidatos.
- b) Cuántos votos son nulos (voto nulo cualquier otro dígito).
- c) Quien gano las elecciones.
- Utilizar el ciclo while con respuesta al operador.
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement