YAMILDIAZ

LEGAJO Y DNI validado

Jun 11th, 2024
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.81 KB | Source Code | 0 0
  1. #include <iostream>
  2. #include <limits>
  3. using namespace std;
  4.  
  5.  
  6. // Función para contar el número de dígitos en un número Dni
  7. int contarDigitos(long long num) {
  8.     int contador = 0;
  9.     while (num > 0) {
  10.         num /= 10;
  11.         contador++;
  12.     }
  13.     return contador;
  14. }
  15.  
  16. //sobrecarga para contar numero de digitos en un numero Legajo
  17. int contarDigitos(int num){
  18.     int contador = 0;
  19.     while(num > 0){
  20.         num /= 10;
  21.         contador++;
  22.     }
  23.     return contador;
  24. }
  25.  
  26. // Función para validar el DNI
  27. bool validar(long long  dni){
  28.     int numDigitos = contarDigitos(dni);
  29.     int  minimoDigito = 8;
  30.     int maximoDigito = 10;
  31.  
  32.     if (numDigitos >= minimoDigito && numDigitos <= maximoDigito) {
  33.         return true;
  34.     }
  35.     return false;
  36. }
  37.  
  38. //Sobrecarga funcion para validar Legajo
  39. bool validar(int legajo){
  40.     int numDigitos = contarDigitos(legajo);
  41.     int minimoDigito = 4;
  42.     int maximoDigito = 6;
  43.  
  44.     if(numDigitos >= minimoDigito && numDigitos <= maximoDigito){
  45.         return true;
  46.     }
  47.     return false;
  48. }
  49.  
  50.  
  51. int main() {
  52.  
  53.     long long dni;
  54.     cout << "DNI: ";
  55.     cin >> dni;
  56.  
  57.     while (!validar(dni)) {
  58.         cin.clear();//limpia el estado de error
  59.         cin.ignore(numeric_limits<long long>::max(), '\n');
  60.         cout << "DNI no valido."<<endl;
  61.         cout<<"DNI: ";
  62.         cin >> dni;
  63.     }
  64.  
  65.     int legajo;
  66.     cout << "LEGAJO: ";
  67.     cin >> legajo;
  68.  
  69.     while (!validar(legajo)) {
  70.         cin.clear();//limpia el estado de error
  71.         cin.ignore(numeric_limits<int>::max(), '\n');
  72.         cout << "Legajo no valido."<<endl;
  73.         cout<<"LEGAJO: ";
  74.         cin >> legajo;
  75.     }
  76.  
  77.  
  78.  
  79.     return 0;
  80. }
  81.  
  82. //numeric_limits para obtener el valor máximo posible de un tipo de datos del bufer
  83. //<long long - int> :es el tipo de datos y max(): devuelve el valor máximo posible para ese tipo
  84.  
Advertisement
Add Comment
Please, Sign In to add comment