Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- bool numerovalido(int a, int li, int ls);
- bool stringvalido(string nombre);
- bool bisiesto(int);
- bool fechavalida( int d, int m, int a);
- int main()
- {
- string nombre= " ";
- int genero=0;
- int nivel=0;
- int estrato=0;
- int dia=0;
- int mes=0;
- int year=0;
- int ecivil=0;
- int salario=0;
- int linf=0;
- int lsup=0;
- //captura y validación del nombre
- while(!stringvalido(nombre))
- {
- cout << "\n\nDigite el nombre del empleado (use solo letras): ";
- getline(cin ,nombre);
- }
- // captura y validación del genero
- linf=1;
- lsup=2;
- while (!numerovalido(genero,linf,lsup))
- {
- cout << "\n\nIngrese el genero (1.Masculino 2. Femenino): ";
- cin >> genero;
- }
- // captura y validación del nivel eductivo
- linf=1;
- lsup=4;
- while (!numerovalido(nivel,linf,lsup))
- {
- cout << "\n\nIngrese el Nivel Educativo(1.Ninguno. 2.Básica 3.Univ. 4.Posgrado ): ";
- cin >> nivel;
- }
- // captura y validación del estrato
- linf=1;
- lsup=6;
- while (!numerovalido(estrato,linf,lsup))
- {
- cout << "\n\nIngrese el Estrato (1 a 6 ): ";
- cin >> estrato;
- }
- // captura y validación de la fecha
- while (!fechavalida(dia, mes, year))
- {
- cout << "\n\nIngrese la fecha de nacimiento: \n";
- cout <<"\n Dia : ";
- cin >> dia;
- cout <<"\n Mes : ";
- cin >> mes;
- cout <<"\n A\244o : ";
- cin >> year;
- }
- // captura y validación del estado civil
- linf=1;
- lsup=5;
- while (!numerovalido(ecivil,1,5))
- {
- cout << "\n\nIngrese el Estado Civil (1.Soltero 2.Casado 3.Separado 4.Viudo 5.Otro): ";
- cin >> ecivil;
- }
- // captura y validación del estado salario
- linf=828116;
- lsup=1000000000;
- while (!numerovalido(salario,linf,lsup))
- {
- cout << "\n\nIngrese el Salario(No inferior al minimo de $ 828116): ";
- cin >> salario;
- }
- //se muestran a continuación los datos capturados y validados
- cout << "\n\nLos datos ingresados y validados son los siguientes:";
- cout << "\n----------------------------------------------------";
- cout <<"\n\nNombre del Empleado: " << nombre;
- cout <<"\n\nGenero: " << genero;
- cout <<"\n\nNivel Educativo: " << nivel;
- cout <<"\n\nEstrato: " << estrato;
- cout <<"\n\nFecha de Nacimiento: " << dia << "/" << mes << "/" << year;
- cout <<"\n\nEstado Civil: " << ecivil;
- cout <<"\n\nSalario: " << salario;
- cout << "\n----------------------------------------------------\n\n";
- }
- bool numerovalido(int valor, int linf, int lsup)
- {
- if (valor < linf || valor > lsup)
- return false;
- else
- return true;
- }
- bool stringvalido(string dato)
- {
- int espacios, i;
- bool valido;
- bool error=true;
- while (error) //la variable error=true si el dato ingresado no es valido
- {
- espacios=0; //variable para contar la cantidad de espacios que haya
- i=0;
- valido=true;
- while(dato[i]) //validar cada uno de los caracteres
- {
- if(!isalpha(dato[i]) && !isspace(dato[i])) //si NO es letra o espacio
- {
- valido=false;
- }
- if(isspace(dato[i])) // si es espacio, actualiza el contador
- espacios++;
- i++;
- }
- if(!valido || espacios==i) //si es invalido o si todos son espacios
- return false;
- else
- error=false;
- }
- return true;
- }
- bool fechavalida( int d, int m, int y)
- {
- if(d < 1 or d > 31 or m < 1 or m > 12 or y < 1)
- {
- return false;
- }
- switch(m)
- {
- case 4:
- case 6:
- case 9:
- case 11: if(d > 30)
- {
- return false;
- }
- break;
- case 2: if(bisiesto(y))
- {
- if(d > 29)
- {
- return false;
- }
- }
- else if(d > 28)
- {
- return false;
- }
- break;
- }
- return true;
- }
- bool bisiesto(int a) //definición de la función
- {
- if (a%400 == 0)
- return true;
- else
- if (a%4 == 0 && a%100 != 0 )
- return true;
- else
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement