online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
/****************************************************************************** Welcome to GDB Online. GDB online is an online compiler and debugger tool for C, C++, Python, Java, PHP, Ruby, Perl, C#, OCaml, VB, Swift, Pascal, Fortran, Haskell, Objective-C, Assembly, HTML, CSS, JS, SQLite, Prolog. Code, Compile, Run and Debug online from anywhere in world. *******************************************************************************/ import java.util.Scanner; import java.text.NumberFormat; import java.util.ArrayList; public class FacturasApp{ static ArrayList <Double> facturas = new ArrayList <>(); private static Scanner sc; public static void main(String args[]){ System.out.println("Bienvenidos a la aplicación de Facturación"); getFacturas(); displayFacturas(); } public static void getFacturas(){ sc = new Scanner(System.in); int facturaNumero = 1 ; String otraFactura = "s"; while (otraFactura.equalsIgnoreCase("s")){ System.out.println("\nIngrese productos para la factura " + facturaNumero); getItems(); // Carga total de una factura otraFactura = Validator.getString(sc,"Otra factura? (s/n): "); System.out.println(); facturaNumero++; } } public static void getItems(){ String otroItem = "s"; double totalFactura = 0; while (otroItem.equalsIgnoreCase("s")){ String productoCodigo = Validator.getString(sc,"Ingrese el código de producto: "); int cantidad = Validator.getInt(sc, "Ingrese la cantidad: ", 0, 1000); Producto producto = ProductoDB.getProducto(productoCodigo); totalFactura += producto.getPrecio()*cantidad; otroItem = Validator.getString(sc,"Otro producto? (s/n): "); System.out.println(); } facturas.add(totalFactura); } public static void displayFacturas(){ NumberFormat moneda = NumberFormat.getCurrencyInstance(); System.out.println("Ud. ingresó las facturas :\n"); System.out.println("Número\tTotal"); System.out.println ( "--------------- \t") ; double batchTotal = 0; int facturaNumero = 1; for(Double factura: facturas){ System.out.println(facturaNumero + "\t"+ moneda.format(factura)); facturaNumero++; batchTotal += factura; } System.out.println("Total de todas las facturas: "+ moneda.format(batchTotal)); } } class Producto{ private String codigo; private String descripcion; private double precio; public Producto(){ // un constructor de objetos: da valores a atributos no static codigo = ""; descripcion = ""; precio = 0 ; } public void setCodigo(String codigo) {this.codigo = codigo;} public String getCodigo(){return codigo;} public void setDescripcion(String descripcion){ this.descripcion = descripcion;} public String getDescripcion(){return descripcion;} public void setPrecio(double precio){this.precio = precio;} public double getPrecio(){return precio;} public String getFormattedPrecio(){ // precio con formato NumberFormat moneda = NumberFormat.getCurrencyInstance(); return moneda.format(precio); } } class ProductoDB { public static Producto getProducto(String productoCodigo){ Producto p = new Producto(); // crea un objeto p.setCodigo(productoCodigo); // llena los atributos del objeto if (productoCodigo.equalsIgnoreCase("java")){ p.setDescripcion("Java SE "); p.setPrecio(49.50); } else if (productoCodigo.equalsIgnoreCase("jsps")){ p.setDescripcion("Java Servlets y JSP "); p.setPrecio(49.50); } else if (productoCodigo.equalsIgnoreCase("fprg")){ p.setDescripcion("Fundamentos de Programación"); p.setPrecio(59.50); } else p.setDescripcion("Desconocido "); return p; } } class Validator { public static String getString(Scanner sc, String prompt){ System.out.print(prompt); String s = sc.next(); sc.nextLine(); return s; } 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. Intente de nuevo."); sc.nextLine(); } 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 double getDouble(Scanner sc, String prompt){ double d = 0 ; boolean isValid = false; while (isValid == false){ System.out.print(prompt); if (sc.hasNextDouble()){ d = sc.nextDouble(); isValid = true; } else System.out.println("Error! Valor decimal no válido. Intente de nuevo."); sc.nextLine(); } return d; } public static double getDouble(Scanner sc, String prompt, double min, double max) { double d = 0 ; boolean isValid = false; while (isValid == false){ d = getDouble(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; } 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