Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.55 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. bool numerovalido(int a, int li, int ls);
  6. bool stringvalido(string nombre);
  7. bool bisiesto(int);
  8. bool fechavalida( int d, int m, int a);
  9.  
  10.  
  11. int main()
  12. {
  13.     string nombre= " ";
  14.     int genero=0;
  15.     int nivel=0;
  16.     int estrato=0;
  17.     int dia=0;
  18.     int mes=0;
  19.     int year=0;
  20.     int ecivil=0;
  21.     int salario=0;
  22.     int linf=0;
  23.     int lsup=0;
  24.  
  25.  
  26.     //captura y validación del nombre
  27.  
  28.     while(!stringvalido(nombre))
  29.     {
  30.         cout << "\n\nDigite el nombre del empleado (use solo letras): ";
  31.         getline(cin ,nombre);
  32.     }
  33.  
  34.     // captura y validación del genero
  35.     linf=1;
  36.     lsup=2;
  37.     while (!numerovalido(genero,linf,lsup))
  38.     {
  39.         cout << "\n\nIngrese el genero (1.Masculino  2. Femenino): ";
  40.         cin >> genero;
  41.     }
  42.  
  43.     // captura y validación del nivel eductivo
  44.     linf=1;
  45.     lsup=4;
  46.     while (!numerovalido(nivel,linf,lsup))
  47.     {
  48.         cout << "\n\nIngrese el Nivel Educativo(1.Ninguno. 2.Básica 3.Univ. 4.Posgrado ): ";
  49.         cin >> nivel;
  50.     }
  51.  
  52.  
  53.     // captura y validación del estrato
  54.     linf=1;
  55.     lsup=6;
  56.     while (!numerovalido(estrato,linf,lsup))
  57.     {
  58.         cout << "\n\nIngrese el Estrato (1 a 6 ): ";
  59.         cin >> estrato;
  60.     }
  61.  
  62.     // captura y validación de la fecha
  63.  
  64.     while (!fechavalida(dia, mes, year))
  65.     {
  66.         cout << "\n\nIngrese la fecha de nacimiento: \n";
  67.         cout <<"\n     Dia : ";
  68.         cin >> dia;
  69.         cout <<"\n     Mes : ";
  70.         cin >> mes;
  71.         cout <<"\n     A\244o : ";
  72.         cin >> year;
  73.     }
  74.  
  75.     // captura y validación del estado civil
  76.  
  77.     linf=1;
  78.     lsup=5;
  79.     while (!numerovalido(ecivil,1,5))
  80.     {
  81.         cout << "\n\nIngrese el Estado Civil (1.Soltero 2.Casado 3.Separado 4.Viudo 5.Otro): ";
  82.         cin >> ecivil;
  83.     }
  84.  
  85.     // captura y validación del estado salario
  86.  
  87.     linf=828116;
  88.     lsup=1000000000;
  89.     while (!numerovalido(salario,linf,lsup))
  90.     {
  91.         cout << "\n\nIngrese el Salario(No inferior al minimo de $ 828116): ";
  92.         cin >> salario;
  93.     }
  94.  
  95.     //se muestran a continuación los datos capturados y validados
  96.  
  97.     cout << "\n\nLos datos ingresados y validados son los siguientes:";
  98.     cout << "\n----------------------------------------------------";
  99.     cout <<"\n\nNombre del Empleado: " <<  nombre;
  100.     cout <<"\n\nGenero:  " <<  genero;
  101.     cout <<"\n\nNivel Educativo: " <<  nivel;
  102.     cout <<"\n\nEstrato: " <<  estrato;
  103.     cout <<"\n\nFecha de Nacimiento: " <<  dia << "/" << mes << "/" << year;
  104.     cout <<"\n\nEstado Civil: " <<  ecivil;
  105.     cout <<"\n\nSalario: " <<  salario;
  106.     cout << "\n----------------------------------------------------\n\n";
  107.  
  108.  
  109.  
  110.  
  111. }
  112.  
  113. bool numerovalido(int valor, int linf, int lsup)
  114. {
  115.     if (valor < linf || valor > lsup)
  116.         return false;
  117.     else
  118.         return true;
  119. }
  120.  
  121. bool stringvalido(string dato)
  122. {
  123.     int espacios, i;
  124.     bool valido;
  125.     bool error=true;
  126.     while (error)        //la variable error=true si el dato ingresado no es valido
  127.     {
  128.         espacios=0;      //variable para contar la cantidad de espacios que haya
  129.         i=0;
  130.         valido=true;
  131.         while(dato[i])   //validar cada uno de los caracteres
  132.         {
  133.           if(!isalpha(dato[i]) && !isspace(dato[i])) //si NO es letra o espacio
  134.           {
  135.              valido=false;
  136.           }
  137.  
  138.           if(isspace(dato[i]))      // si es espacio, actualiza el contador
  139.              espacios++;
  140.           i++;
  141.         }
  142.  
  143.         if(!valido || espacios==i)  //si es invalido o si todos son espacios            
  144.             return false;
  145.         else
  146.             error=false;
  147.     }
  148.     return true;
  149. }
  150.  
  151.  
  152. bool fechavalida( int d, int m, int y)
  153. {
  154.     if(d < 1 or d > 31 or m < 1 or m > 12 or y < 1)
  155.     {
  156.         return false;
  157.     }
  158.     switch(m)
  159.     {
  160.         case 4:
  161.         case 6:
  162.         case 9:
  163.         case 11: if(d > 30)
  164.                  {
  165.                     return false;
  166.                  }
  167.                  break;
  168.         case 2: if(bisiesto(y))
  169.                 {
  170.                     if(d > 29)
  171.                     {
  172.                        return false;
  173.                     }
  174.                 }
  175.                 else if(d > 28)
  176.                      {
  177.                         return false;
  178.                      }
  179.                 break;
  180.     }
  181.     return true;
  182. }
  183.  
  184. bool bisiesto(int a)   //definición de la función
  185. {
  186.   if (a%400 == 0)
  187.     return true;
  188.   else
  189.     if (a%4 == 0 && a%100 != 0 )
  190.        return true;
  191.     else
  192.        return false;
  193. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement