online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
// Para la base de datos se usan arreglos y matrices import java.util.Scanner; import java.util.Calendar; import java.util.GregorianCalendar; public class Main{ //public class PagoAppB{ static TarjetaDAO td = new TarjetaDAO(); // Base de datos static Pago pago = new Pago(); // Datos del pago static Scanner sc = new Scanner(System.in); static int pagoE, pagoT; public static void main(String[] args){ System.out.println("Bienvenidos a la Casa del Pago"); for(int i=0; i<3; i++) pagar(); System.out.println("\nTotal pago Efectivo : " + pagoE); System.out.println("Total pago con tarjetas: " + pagoT); System.out.println("Total pagos : " + (pagoE+ pagoT)); System.out.println("Muchas gracias por su visita."); } static void pagar(){ System.out.println("\nPago de telĂ©fono"); // monto pago.monto = Validator.getInt(sc, "Monto: ", 0); // forma de pago System.out.println("Formas de pago: "); System.out.println(" Tarjeta : T"); System.out.println(" Efectivo: E"); pago.formaPago = Validator.getChar(sc, "Elija la forma de pago (T/E): ", "TE"); // tarjeta if(pago.formaPago.equals("E")) { pagoE += pago.monto; pago.check=2; } else { td.prepararPago(pago); pago.tipoTarjeta = Validator.getChar(sc, pago.tipoTar1 + "Elija la tarjeta (" + pago.tipoTar2 + "): ", pago.tipoTar3); pago.numero = Validator.getInt(sc, "NĂºmero de tarjeta: ", 1); td.validarTarjeta(pago); switch (pago.check) { case 0: System.out.println("Lo sentimos, no existe este nĂºmero de tarjeta: " + pago.numero + "."); break; case 1: System.out.println("Lo sentimos, su tarjeta estĂ¡ vencida: " + pago.mes + ":" + pago.ano + "."); break; case 2: pagoT += pago.monto; System.out.println("Tarjeta: " + pago.tipoTarjeta + " " + pago.numero + " " + pago.ano + " " + pago.mes); break; } } if(pago.check==2) System.out.println("Gracias por su pago."); } } class Pago{ // datos del pago int monto; String formaPago; String tipoTarjeta; int numero; int mes=0; int ano=0; String tipoTar1, tipoTar2, tipoTar3; // datos para la entrada del tipo de tarjeta int check; } class Tarjetas{ String cod, nombre; public Tarjetas (String cod, String nombre){ this.cod = cod; this.nombre = nombre; } } class Tarjeta{ int numero, ano, mes; public Tarjeta (int numero, int ano, int mes){ this.numero = numero; this.ano = ano; this.mes = mes; } } class TarjetaDAO{ // base de datos Tarjetas [] arrTars = new Tarjetas[3]; Tarjeta [][] arrTar = new Tarjeta[3][]; public TarjetaDAO(){ // constructor arrTars[0] = new Tarjetas("A", "American Express"); arrTars[1] = new Tarjetas("M", "Master Card"); arrTars[2] = new Tarjetas("V", "Visa"); arrTar[0] = new Tarjeta[2]; arrTar[0][0] = new Tarjeta(1, 2022, 1); arrTar[0][1] = new Tarjeta(2, 2022, 1); arrTar[1] = new Tarjeta[3]; arrTar[1][0] = new Tarjeta(1, 2023, 1); arrTar[1][1] = new Tarjeta(2, 2023, 11); arrTar[1][2] = new Tarjeta(3, 2013, 12); arrTar[2] = new Tarjeta[3]; arrTar[2][0] = new Tarjeta(1, 2024, 1); arrTar[2][1] = new Tarjeta(2, 2024, 1); arrTar[2][2] = new Tarjeta(3, 2024, 1); } void prepararPago(Pago pago){ pago.tipoTar1 = ""; pago.tipoTar2 = ""; pago.tipoTar3 = ""; for(Tarjetas ar: arrTars){ pago.tipoTar1 += " " + ar.nombre + ": " + ar.cod + "\n"; pago.tipoTar2 += ar.cod + "/"; pago.tipoTar3 += ar.cod; } pago.tipoTar2 = pago.tipoTar2.substring(0,pago.tipoTar2.length()-1); } void validarTarjeta(Pago pago){ Tarjeta tar = null; pago.check = 0; int i=0; // Chequeo de nĂºmero de tarjeta for (Tarjetas col : arrTars) { if(col.cod.equals(pago.tipoTarjeta)) break; i++; } for (Tarjeta col : arrTar[i]) { if(pago.numero==col.numero) { tar = col; pago.check=1; break; } } // chequeo de fecha if(pago.check==1){ GregorianCalendar gc = new GregorianCalendar(); int gAno = gc.get(Calendar.YEAR); int gMes = gc.get(Calendar.MONTH) + 1; if(gAno < tar.ano || gAno == tar.ano && gMes <= tar.mes) pago.check=2; pago.ano = tar.ano; pago.mes = tar.mes; } } } class Validator { public static String getString(Scanner sc, String prompt){ System.out.print(prompt); String s = sc.next(); sc.nextLine(); return s; } public static String getChar(Scanner sc, String prompt, String ch){ String st=""; boolean isValid = false; while (isValid == false){ st = getString(sc, prompt).toUpperCase(); if (st.length()==1 && ch.indexOf(st)>-1) isValid = true; } return st; } public static int getInt(Scanner sc, String prompt){ int i = 0 ; boolean isValid = false; while (isValid == false){ System.out.print(prompt); if (sc.hasNextInt()){ i = sc.nextInt(); isValid = true; } else System.out.println("Error: Valor entero no vĂ¡lido. Repita la entrada."); sc.nextLine(); } return i; } public static int getInt(Scanner sc, String prompt, int min){ int i = 0; boolean isValid = false; while (isValid == false){ i = getInt(sc, prompt); if (i < min) System.out.println("Error! El nĂºmero debe ser mayor o igual que " + min + "."); else isValid = true; } return i ; } public static int getInt(Scanner sc, String prompt, int min, int max){ int i = 0; boolean isValid = false; while (isValid == false){ i = getInt(sc, prompt); if (i < min) System.out.println("Error! El nĂºmero debe ser mayor o igual que " + min + "."); else if (i > max) System.out.println("Error El nĂºmero debe ser menor o igual que " + max + "."); else isValid = true; } return i ; } public static float getFloat(Scanner sc, String prompt){ float d = 0 ; boolean isValid = false; while (isValid == false){ System.out.print(prompt); if (sc.hasNextFloat()){ d = sc.nextFloat(); isValid = true; } else System.out.println("Error! Valor decimal no vĂ¡lido. Intente de nuevo."); sc.nextLine(); } return d; } public static float getFloat(Scanner sc, String prompt, float min, float max) { float d = 0 ; boolean isValid = false; while (isValid == false){ d = getFloat(sc, prompt); if (d < min) System.out.println("Error! El nĂºmero debe ser mayor o igual que " + min + "."); else if (d > max) System.out.println("Error! El nĂºmero debe ser menor o igual que " + max + "."); else isValid = true; } return d; } }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue