Advertisement
Re_21

Menu prinicipal

May 30th, 2023
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 25.56 KB | None | 0 0
  1. /*
  2.  * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
  3.  */
  4. package com.mycompany.proyecto_final;
  5.  
  6. /**
  7.  *
  8.  * @author victo
  9.  */
  10. //PRINCIPAL
  11. import java.io.*;
  12.  
  13. import java.util.*;
  14.  
  15. public class Proyecto_final {
  16.  
  17.     public static void main(String[] args) throws IOException {
  18.  
  19.         Scanner entrada = new Scanner(System.in);
  20.         String opcion = "";
  21.         String salirPrincipal = "";//Variable para controlar el menu principal, permite terminar el programa incluso desde los submenu
  22.         String regresar = "";//Variable para controlar los submenus y poder regresar al menu principal
  23.         //menu principal
  24.         while (salirPrincipal != "1") {
  25.             menuPrincipal();
  26.             System.out.println("Ingrese una opción");
  27.             try {
  28.                 opcion = entrada.nextLine();
  29.             } catch (Exception e) {
  30.                 System.out.println("Opcion no valida");
  31.             }
  32.             switch (opcion) {
  33.                 //Menu Clientes
  34.                 case "1":
  35.                     while (regresar != "1") {
  36.                         menuClientes();
  37.                         System.out.println("Ingrese una opción");
  38.                         try {
  39.                             opcion = entrada.nextLine();
  40.                         } catch (Exception e) {
  41.                             System.out.println("Opcion no valida");
  42.                         }
  43.                         switch (opcion) {
  44.                             //Ingresar nuevo cliente
  45.                             case "1":
  46.                                 System.out.println("Ingrese un numero de cui: ");
  47.  
  48.                                 String cui = entrada.nextLine();
  49.  
  50.                                 if (validarCui(cui) == true) {
  51.                                     System.out.println("Ingrese un numero de nit con guiones [010101010109-3]: ");
  52.                                     String nit = entrada.nextLine();
  53.                                     if (validarNIT(nit) == true) {
  54.                                         System.out.println("Ingrese una direccion de residencia: ");
  55.                                         String dResidencia = entrada.nextLine();
  56.                                         System.out.println("Ingrese un nombre de la Empresa");
  57.                                         String nEmpresa = entrada.nextLine();
  58.                                         System.out.println("Ingrese una direccion de la empresa: ");
  59.                                         String dEmpresa = entrada.nextLine();
  60.                                         System.out.println("Ingrese una fecha de nacimiento: ");
  61.                                         String fNacimiento = entrada.nextLine();
  62.                                         if (validarFecha(fNacimiento) == true) {
  63.                                             System.out.println("Ingrese el primer nombre: ");
  64.                                             String pNombre = entrada.nextLine();
  65.                                             System.out.println("Ingrese el segundo nombre: ");
  66.                                             String sNombre = entrada.nextLine();
  67.                                             System.out.println("Ingrese el primer apellido: ");
  68.                                             String pApellido = entrada.nextLine();
  69.                                             System.out.println("Ingrese el segundo apellido: ");
  70.                                             String sApellido = entrada.nextLine();
  71.                                             System.out.println("Ingrese el numero de telefono: ");
  72.                                             String nTelefono = entrada.nextLine();
  73.                                             if (validarNumeroTelefono(nTelefono) == true) {
  74.                                                 clientes cliente = new clientes(cui, nit, dResidencia, nEmpresa, dEmpresa, fNacimiento, pNombre, sNombre, pApellido, sApellido, nTelefono, "1");
  75.                                                 ArchivoSecuencial.registrarCliente(cliente);
  76.                                             }
  77.                                         }
  78.                                     }
  79.                                 }
  80.  
  81.                                 break;
  82.  
  83.                             case "2":
  84.                                 //Buscar cliente
  85.                                 System.out.println("Ingrese una opcion: \n 1. Buscar por CUI\n 2.Buscar por Nit\n 3. Buscar por primer Nombre \n 4. Buscar por segundo Nombre \n 5. buscar por primer Apellido \n 6. Buscar por segundo apellido");
  86.                                 String opcionBuscar = entrada.nextLine();
  87.                                 switch (opcionBuscar) {
  88.                                     case "1":
  89.                                         System.out.println("Ingrese un numero de cui: ");
  90.                                         String Cui = entrada.nextLine();
  91.                                         if (validarCui(Cui) == true) {
  92.                                             ArchivoSecuencial.consultarCliente(Cui, null, null, null, null, null);
  93.                                         }
  94.                                         break;
  95.                                     case "2":
  96.                                         System.out.println("Ingrese un numero de nit con guiones [010101010109-3]: ");
  97.                                         String nit = entrada.nextLine();
  98.                                         if (validarNIT(nit) == true) {
  99.                                             ArchivoSecuencial.consultarCliente(null, nit, null, null, null, null);
  100.                                         }
  101.                                         break;
  102.                                     case "3":
  103.                                         System.out.println("Ingrese un primer nombr a buscar: ");
  104.                                         String primerNombre = entrada.nextLine();
  105.                                         ArchivoSecuencial.consultarCliente(null, null, primerNombre, null, null, null);
  106.                                         break;
  107.                                     case "4":
  108.                                         System.out.println("Ingrese un segundo nombre a buscar: ");
  109.                                         String segundoNombre = entrada.nextLine();
  110.                                         ArchivoSecuencial.consultarCliente(null, null, null, segundoNombre, null, null);
  111.                                         break;
  112.                                     case "5":
  113.                                         System.out.println("Ingrese un primer apellido a buscar: ");
  114.                                         String primerApellido = entrada.nextLine();
  115.                                         ArchivoSecuencial.consultarCliente(null, null, null, null, primerApellido, null);
  116.                                         break;
  117.                                     case "6":
  118.                                         System.out.println("Ingrese un segundo apellido a buscar: ");
  119.                                         String segundoApellido = entrada.nextLine();
  120.                                         ArchivoSecuencial.consultarCliente(null, null, null, null, null, segundoApellido);
  121.  
  122.                                         break;
  123.                                 }
  124.                                 break;
  125.                             case "3":
  126.                                 //mostrar clientes
  127.                                 ArchivoSecuencial.consultarClientes();
  128.                                 break;
  129.                             //Modificar datos de cliente   
  130.                             case "4":
  131.                                 System.out.println("Ingrese una opcion: \n 1. Modificar por CUI \n 2. Modificar por NIT ");
  132.                                 String opcionModificar = entrada.nextLine();
  133.                                 switch (opcionModificar) {
  134.                                     case "1":
  135.                                         System.out.println("Ingrese un Cui");
  136.                                         cui = entrada.nextLine();
  137.                                         if (validarCui(cui) == true) {
  138.                                             ArchivoSecuencial.modificarCliente(cui, null);
  139.  
  140.                                         }
  141.                                         break;
  142.                                     case "2":
  143.  
  144.                                         System.out.println("Ingrese un Cui");
  145.                                         String nit = entrada.nextLine();
  146.                                         if (validarNIT(nit) == true) {
  147.                                             ArchivoSecuencial.modificarCliente(null, nit);
  148.  
  149.                                         }
  150.                                         break;
  151.                                 }
  152.                                 break;
  153.                             //Eliminar Cliente
  154.                             case "5":
  155.                                 System.out.println("Ingrese un cui: ");
  156.                                 cui = entrada.nextLine();
  157.                                 ArchivoSecuencial.eliminarClienteLogico(cui);
  158.  
  159.                                 break;
  160.                             //Regresar al menu principal
  161.                             case "6":
  162.                                 regresar = "1";
  163.                                 break;
  164.                             case "7":
  165.                                 regresar = "1";
  166.                                 salirPrincipal = "1";
  167.                                 break;
  168.                         }
  169.                     }
  170.                     regresar = "";
  171.                     break;//Case1
  172.                 //Menu Vehiculos
  173.  
  174.                 case "2":
  175.  
  176.                     while (regresar != "1") {
  177.                         menuVehiculos();
  178.                         System.out.println("Ingrese una opción");
  179.                         try {
  180.                             opcion = entrada.nextLine();
  181.                         } catch (Exception e) {
  182.                             System.out.println("Opcion no valida");
  183.                         }
  184.                         switch (opcion) {
  185.                             //Ingresar nuevo vehiculo
  186.                             case "1":
  187.  
  188.                                 break;
  189.                             //Buscar vehiculo
  190.                             case "2":
  191.  
  192.                                 break;
  193.                             //Modificar datos de vehiculo  
  194.                             case "3":
  195.  
  196.                                 break;
  197.                             //Eliminar vehiculo
  198.                             case "4":
  199.  
  200.                                 break;
  201.                             //Regresar al menu principal
  202.                             case "5":
  203.                                 regresar = "1";
  204.                                 break;
  205.                             case "6":
  206.                                 regresar = "1";
  207.  
  208.                                 salirPrincipal = "1";
  209.                                 break;
  210.                         }
  211.                     }
  212.                     regresar = "";
  213.                     break;//case2
  214.                 //Menu Parqueos
  215.                 case "3":
  216.  
  217.                     while (regresar != "1") {
  218.                         menuParqueos();
  219.                         System.out.println("Ingrese una opción");
  220.                         try {
  221.                             opcion = entrada.nextLine();
  222.                         } catch (Exception e) {
  223.                             System.out.println("Opcion no valida");
  224.                         }
  225.                         switch (opcion) {
  226.                             //Ingresar nuevo vehiculo
  227.                             case "1":
  228.  
  229.                                 break;
  230.                             //Buscar vehiculo
  231.                             case "2":
  232.  
  233.                                 break;
  234.                             //Modificar datos de vehiculo  
  235.                             case "3":
  236.  
  237.                                 break;
  238.                             //Eliminar vehiculo
  239.                             case "4":
  240.  
  241.                                 break;
  242.                             //Regresar al menu principal
  243.                             case "5":
  244.                                 regresar = "1";
  245.                                 break;
  246.                             case "6":
  247.                                 regresar = "1";
  248.                                 salirPrincipal = "1";
  249.                                 break;
  250.                         }
  251.                     }
  252.                     regresar = "";
  253.                     break;//case3
  254.                 //Menu pagos
  255.                 case "4":
  256.  
  257.                     while (regresar != "1") {
  258.                         menuPagos();
  259.                         System.out.println("Ingrese una opción");
  260.                         try {
  261.                             opcion = entrada.nextLine();
  262.                         } catch (Exception e) {
  263.                             System.out.println("Opcion no valida");
  264.                         }
  265.                         switch (opcion) {
  266.                             //Ingresar nuevo vehiculo
  267.                             case "1":
  268.  
  269.                                 break;
  270.                             //Buscar vehiculo
  271.                             case "2":
  272.  
  273.                                 break;
  274.                             //Modificar datos de vehiculo  
  275.                             case "3":
  276.  
  277.                                 break;
  278.                             //Eliminar vehiculo
  279.                             case "4":
  280.  
  281.                                 break;
  282.                             //Regresar al menu principal
  283.                             case "5":
  284.                                 regresar = "1";
  285.                                 break;
  286.                             case "6":
  287.                                 regresar = "1";
  288.                                 salirPrincipal = "1";
  289.                                 break;
  290.                         }
  291.                     }
  292.                     regresar = "";
  293.                     break;//case4
  294.                 case "5":
  295.                     salirPrincipal = "1";
  296.             }
  297.         }//finWhile
  298.     }
  299.  
  300.     //Funcion para opciones en el menu principal
  301.     public static void menuPrincipal() {
  302.         System.out.println("\tPARQUEO\n");
  303.         System.out.println("MENU PRINCIPAL\n");
  304.         System.out.println("1. CLIENTES");
  305.         System.out.println("2. VEHICULOS");
  306.         System.out.println("3. PARQUEOS");
  307.         System.out.println("4. PAGOS");
  308.         System.out.println("5. SALIR");
  309.     }
  310.  
  311.     //Funcion para opciones en el menu clientes
  312.     public static void menuClientes() {
  313.         System.out.println("\tCLIENTES\n");
  314.         System.out.println("1. INGRESAR CLIENTE NUEVO");
  315.         System.out.println("2. BUSCAR CLIENTE");
  316.         System.out.println("3. BUSCAR CLIENTES");
  317.         System.out.println("4. MODIFICAR DATOS DE CLIENTE");
  318.         System.out.println("5. ELIMINAR CLIENTE");
  319.         System.out.println("6. REGRESAR AL MENU PRINCIPAL");
  320.         System.out.println("7. SALIR");
  321.  
  322.     }
  323.  
  324.     //Función para opciones en el menu vehiculos
  325.     public static void menuVehiculos() {
  326.         System.out.println("\tVEHICULOS\n");
  327.         System.out.println("1. INGRESAR VEHICULO NUEVO");
  328.         System.out.println("2. BUSCAR VEHICULO");
  329.         System.out.println("3. MODIFICAR DATOS DE UN VEHICULO");
  330.         System.out.println("4. ELIMINAR VEHICULO");
  331.         System.out.println("5. REGRESAR AL MENU PRINCIPAL");
  332.         System.out.println("6. SALIR");
  333.  
  334.     }
  335.  
  336.     //Funcion para opciones en el menu parqueos
  337.     public static void menuParqueos() {
  338.         System.out.println("\tPARQUEOS\n");
  339.         System.out.println("1. ASIGNAR PARQUEO");
  340.         System.out.println("2. BUSCAR PARQUEO");
  341.         //System.out.println("3. ");
  342.         //System.out.println("4. ");
  343.         System.out.println("5. REGRESAR AL MENU PRINCIPAL");
  344.         System.out.println("6. SALIR");
  345.  
  346.     }
  347.  
  348.     //Funcion para opciones en el menu pagos
  349.     public static void menuPagos() {
  350.         System.out.println("\tPAGOS\n");
  351.         System.out.println("1. REGISTRAR PAGO");
  352.         System.out.println("2. BUSCAR PAGO");
  353.         System.out.println("3. MOSTRAR PAGOS");
  354.         //System.out.println("4. ");
  355.         System.out.println("5. REGRESAR AL MENU PRINCIPAL");
  356.         System.out.println("6. SALIR");
  357.  
  358.     }
  359.  
  360.     public static boolean validarCui(String cui) {
  361.         int contadorDigitos = 0;
  362.         boolean cuiValido = false;
  363.         String ultimosCuatroDigitos;
  364.         //Validamos que el CUI tenga 13 caracteres para que sea correcto
  365.         if (cui.length() == 13) {
  366.             for (int i = 0; i < cui.length(); i++) {
  367.                 //Validamos que el primer caracter no sea cero
  368.                 if (i == 0) {
  369.                     switch (cui.charAt(i)) {
  370.                         case '1':
  371.                         case '2':
  372.                         case '3':
  373.                         case '4':
  374.                         case '5':
  375.                         case '6':
  376.                         case '7':
  377.                         case '8':
  378.                         case '9':
  379.                             contadorDigitos++;//Si son todos numeros 1-9 se aumenta el contador
  380.                             break;
  381.                     }
  382.                 }
  383.                 //Validamos que los digitos de las posiciones 1-12 sean todos digitos
  384.                 switch (i) {
  385.                     case 1:
  386.                     case 2:
  387.                     case 3:
  388.                     case 4:
  389.                     case 5:
  390.                     case 6:
  391.                     case 7:
  392.                     case 8:
  393.                     case 9:
  394.                     case 10:
  395.                     case 11:
  396.                     case 12:
  397.                         switch (cui.charAt(i)) {
  398.                             case '0':
  399.                             case '1':
  400.                             case '2':
  401.                             case '3':
  402.                             case '4':
  403.                             case '5':
  404.                             case '6':
  405.                             case '7':
  406.                             case '8':
  407.                             case '9':
  408.                                 contadorDigitos++;//Si son todos digitos 0-9 se aumenta el contador
  409.                                 break;
  410.                         }
  411.                 }
  412.             }
  413.         } else {
  414.             System.out.println("Ingrese un cui correcto");
  415.         }
  416.         ultimosCuatroDigitos = cui.substring(9);
  417.         if (contadorDigitos == cui.length()) {//Validamos que el tamaño del contador sea igual que el cui
  418.             if (!buscarEnArchivo(ultimosCuatroDigitos)) {//Se llama la funcion buscarEnArchivo para validar que los ultimos cuatro digitos se encuentren en el archivo
  419.                 cuiValido = false; //Se cambia a false cuando los ultimos 4 digitos no existen en el archivo
  420.             } else {
  421.                 cuiValido = true;//Si encuentra los cuatro digitos se cabia a true
  422.             }
  423.         }
  424.  
  425.         return cuiValido;
  426.     }
  427.  
  428.     public static boolean buscarEnArchivo(String ultimosCuatroDigitos) {
  429.         //String archivo = "DepartamentosMunicipios.txt";//Variable con el nombre del archivo donde se encuentran los codigos
  430.         boolean codigoEncontrado = false;
  431.         //Abrimos el archivo para lectura
  432.         try {
  433.             BufferedReader br = new BufferedReader(new FileReader("DepartamentosMunicipios.txt"));
  434.             String linea;
  435.             //Leemos cada linea del archivo para comprobar que los ultimos 4 caracteres del cui existan en el archivo
  436.             while ((linea = br.readLine()) != null) {
  437.                 if (linea.length() >= 4) {//Verifica si la linea tiene por lo menos 4 caracteres y a partir de esto se crea el siguiente substring
  438.                     String codigo = linea.substring(0, 4);//Crea un sub string con los 4 primeros caracteres de la linea
  439.                     if (codigo.equals(ultimosCuatroDigitos)) {//compara si los 4 caracteres de la linea son iguales a los ultimos 4 caracteres del CUI
  440.                         codigoEncontrado = true;
  441.                         break;
  442.                     }
  443.                 }
  444.             }
  445.         } catch (IOException e) {
  446.             System.out.println("No se encontro el archivo");
  447.  
  448.         }
  449.  
  450.         return codigoEncontrado;
  451.     }
  452.  
  453.     public static boolean validarNIT(String nit) {
  454.         // Asegurarse de que el NIT tenga 10 caracteres
  455.         if (nit.length() >= 2 && nit.length() <= 13) {
  456.             // Realizar validación adicional si es necesario
  457.  
  458.         } else {
  459.             return false;
  460.         }
  461.  
  462.         String partes[] = nit.split("-");
  463.  
  464.         String parte1 = partes[0];
  465.         String parte2 = partes[1];
  466.         // Separamos los primeros  dígitos del NIT, y el dígito verificador es el último
  467.         // String primerosocho = nit.substring(0, 8);
  468.         String digitoVerificador = parte2;
  469.  
  470.         int factor = parte1.length() + 1;
  471.         int valor = 0;
  472.         //10482781-5
  473.         //8+1=9 AQUI EMPIEZA EL FACTOR
  474.         //9*1=9 8*0=0 4*7=28 Y ASI SUSECIMAMENTE CON EL RESTO DE NUMEROS DEL NIT SIN INCLUIR EL DIGITO VERIFICADOR
  475.         for (int i = 0; i < parte1.length(); i++) {
  476.             // Convertimos carácter por carácter de los primeros 9 y los multiplicamos por el factor
  477.             valor += Character.getNumericValue(parte1.charAt(i)) * factor;
  478.             factor--;
  479.         }
  480.  
  481.         // A VALOR QUE ES EL NUMERO DE LA SUMA DE LAS MULTIPLICACIONES DEL FACTOR POR EL NIT SE LE SACA MOD 11
  482.         //System.out.println("este es el valor" + valor);
  483.         int residuo = valor % 11;
  484.         //System.out.println("aqui eta elresiduio" + residuo);
  485.         int resultado = 11 - residuo;
  486.         //System.out.println("aqui eta resultado" + resultado);
  487.  
  488.         if (resultado >= 10) {
  489.             resultado = 0;
  490.         }
  491.  
  492.         if (Integer.parseInt(digitoVerificador) == resultado) {
  493.             return true;
  494.         }
  495.  
  496.         return false;
  497.     }
  498.  
  499.     //validar fecha del cliente
  500.     public static boolean validarFecha(String fechaNacimiento) {
  501.         boolean validarFecha = false;
  502.         // dd/mm/yyyy
  503.         if (fechaNacimiento.length() == 10) {
  504.             if (fechaNacimiento.charAt(2) == '/' && fechaNacimiento.charAt(5) == '/') {
  505.                 int cuentaLetras = 0;
  506.                 for (int i = 0; i < fechaNacimiento.length(); i++) {
  507.                     switch (fechaNacimiento.charAt(i)) {
  508.                         case '1':
  509.                             cuentaLetras++;
  510.                             break;
  511.                         case '2':
  512.                             cuentaLetras++;
  513.                             break;
  514.                         case '3':
  515.                             cuentaLetras++;
  516.                             break;
  517.                         case '4':
  518.                             cuentaLetras++;
  519.                             break;
  520.                         case '5':
  521.                             cuentaLetras++;
  522.                             break;
  523.                         case '6':
  524.                             cuentaLetras++;
  525.                             break;
  526.                         case '7':
  527.                             cuentaLetras++;
  528.                             break;
  529.                         case '8':
  530.                             cuentaLetras++;
  531.                             break;
  532.                         case '9':
  533.                             cuentaLetras++;
  534.                             break;
  535.                         case '0':
  536.                             cuentaLetras++;
  537.                             break;
  538.                         case '/':
  539.                             cuentaLetras++;
  540.                             break;
  541.                         default:
  542.                             System.out.println("La fecha no es valida");
  543.                     }
  544.                 }
  545.                 if (cuentaLetras == fechaNacimiento.length()) {
  546.                     System.out.println("La fecha es valida");
  547.                     validarFecha = true;
  548.                 }
  549.             }
  550.         }
  551.         return validarFecha;
  552.     }
  553.     //validar numero de telefono
  554.  
  555.     public static boolean validarNumeroTelefono(String NumeroTelefono) {
  556.         boolean validarNumero = false;
  557.         int cuentaNumero = 0;
  558.         for (int i = 0; i < NumeroTelefono.length(); i++) {
  559.             switch (NumeroTelefono.charAt(i)) {
  560.                 case '1':
  561.                     cuentaNumero++;
  562.                     break;
  563.                 case '2':
  564.                     cuentaNumero++;
  565.  
  566.                     break;
  567.                 case '3':
  568.                     cuentaNumero++;
  569.  
  570.                     break;
  571.                 case '4':
  572.                     cuentaNumero++;
  573.  
  574.                     break;
  575.                 case '5':
  576.                     cuentaNumero++;
  577.  
  578.                     break;
  579.                 case '6':
  580.                     cuentaNumero++;
  581.  
  582.                     break;
  583.                 case '7':
  584.                     cuentaNumero++;
  585.  
  586.                     break;
  587.                 case '8':
  588.                     cuentaNumero++;
  589.  
  590.                     break;
  591.                 case '9':
  592.                     cuentaNumero++;
  593.  
  594.                     break;
  595.                 case '0':
  596.                     cuentaNumero++;
  597.  
  598.                     break;
  599.             }
  600.         }
  601.         if (cuentaNumero == NumeroTelefono.length()) {
  602.             validarNumero = true;
  603.         }
  604.         return validarNumero;
  605.     }
  606. }
  607.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement