Advertisement
AntonioVillanueva

Votaciones objeto

Dec 9th, 2015
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.29 KB | None | 0 0
  1.  // compilacion ---- >   g++ -std=c++11 -o votos votos.cc
  2. #include <iostream>
  3. #include <vector>
  4. #include <array>
  5. #include <iostream>
  6. #include <fstream>
  7. using namespace std;
  8.    
  9. class voto{
  10.     public:
  11.     voto ();//El constructor inicializa el vector con 4 int a 0
  12.     void voto_a(size_t persona);
  13.     string ha_ganado()const;//Quien ha ganado ?
  14.     //Por cada votante se elaboró un registro así: Cédula de Identidad y el valor del voto.
  15.     void escribe_registro(string nombre_fichero,int cedula=1,int valor_voto=0);
  16.        
  17.     private:
  18.     const array <string,4> nombre={{"Nulo","Pedro","Maria","Juan"}};//array con nombres candidatos
  19.     vector <int> cand ;//Vector contiene los diferentes votos
  20. };
  21. //----------------------------------------------------------------------
  22. voto::voto ():cand(4,0){};//El constructor inicializa 4 int a 0
  23. //----------------------------------------------------------------------
  24. void voto::voto_a(size_t persona){
  25.         if (persona<=3){cand[persona]++;}
  26.         else {cand[0]++;}
  27.     };
  28. //----------------------------------------------------------------------   
  29. string voto::ha_ganado()const{// c) Quien gano las elecciones.
  30.     int mayor(0),pos(0);
  31.    
  32.     for (size_t i=0; i<cand.size(); i++){
  33.         cout <<nombre[i]<<" = "<<cand[i]<<endl;//a) Cuantos votos obtuvo cada candidato.
  34.         if (cand[i]> mayor){
  35.             mayor=cand[i];
  36.             pos=i;
  37.         }
  38.     }
  39.    
  40.     if ( !( cand[0] & cand[1] & cand[2] & cand [3] )){//Condicion de empate a 3 !...mejorable...  
  41.         cout <<"Ha ganado con "<<cand[pos]<<" votos, "<<nombre [pos];//c) Quien gano las elecciones.
  42.     }else {cout <<"Empate !"<<endl;}
  43.    
  44.     return "";
  45. }
  46. //----------------------------------------------------------------------
  47. void voto::escribe_registro(string nombre_fichero,int cedula,int valor_voto){
  48.     ofstream fichero;
  49.     fichero.open (nombre_fichero,std::fstream::in | std::fstream::out | std::fstream::app);
  50.     fichero << "cedula "<<cedula<<" , "<<"valor voto= "<<valor_voto<<endl;;
  51.     fichero.close();
  52. }
  53. //----------------------------------------------------------------------
  54. //----------------------------------------------------------------------
  55. int main(){
  56.    
  57.     int votacion(0),cedula(0);
  58.     voto v;//Instancio la clase voto
  59.  
  60.     while (votacion>-1){//Voto manual por bucle ,Utilizar el ciclo while con respuesta al operador.
  61.         cout <<"Su Cédula de Identidad ? ";
  62.         cin>>cedula;
  63.         cout <<"Por quien quieres votar ?"<<endl<<"Pedro (1),Maria (2),Juan (3) o Nulo (0 o >3 ) Salir (letra) ? "<<endl;
  64.         cin>>votacion;
  65.        
  66.         if (cin.fail()){cin.clear();cin.ignore();break;}//salimos con cualquier letra ...      
  67.         v.voto_a(votacion);
  68.         v.escribe_registro("Registro.txt",cedula,votacion);//Escribe en fichero texto, Cédula de Identidad y el valor del voto.
  69.     }  
  70.        
  71.     cout <<v.ha_ganado();   //resultados
  72. return 0;
  73. }
  74.  
  75.  
  76. /*
  77. 18.- En una elección realizada en un municipio, se presentaron tres candidatos: Pedro, María y Juan.
  78.  
  79. Por cada votante se elaboró un registro así: Cédula de Identidad y el valor del voto.
  80.  
  81. El voto puede desarrollarse de la siguiente manera:
  82. - Si votó por Pedro su valor es uno.
  83. - Si votó por María su valor es dos.
  84. - Si votó por Juan su valor es tres.
  85.  
  86. Se pide:
  87.  
  88. a) Cuantos votos obtuvo cada candidatos.
  89. b) Cuántos votos son nulos (voto nulo cualquier otro dígito).
  90. c) Quien gano las elecciones.
  91.  
  92. Utilizar el ciclo while con respuesta al operador.
  93. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement