online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
import java.util.Scanner; import java.text.NumberFormat; class Producto{ private String codigo; // si no se asigna Java asigna valor de default private String descripcion; private double precio; public Producto(){ } public Producto(String codigo, String descripcion, double precio){ this.codigo = codigo; this.descripcion = descripcion; this.precio = precio; } 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("jssp")){ p.setDescripcion("Java Servlets y JSP"); p.setPrecio(49.50); } else if (productoCodigo.equalsIgnoreCase("fprg")){ p.setDescripcion("Fundamentos de Programación"); p.setPrecio(30.50); } else p.setDescripcion("Desconocido"); return p; } } //public class TiendaApp{ public class Main{ public static void main(String args[]){ System.out.println("Bienvenidos a Mi Tienda"); System.out.println(); Scanner sc = new Scanner(System.in); String choice = "s"; while (choice.equalsIgnoreCase("s")){ String productoCodigo = Validator.getString(sc,"Ingrese el código de un producto: "); int quantity = Validator.getInt(sc, "Ingrese la cantidad: ", 0, 1000); Producto producto = ProductoDB.getProducto(productoCodigo); Venta venta = new Venta() ; venta.setProducto(producto); venta.setQuantity(quantity); System.out.println() ; System.out.println("PRODUCTO"); System.out.println("Código: " + producto.getCodigo()); System.out.println("Descripción: " + producto.getDescripcion()); System.out.println("Precio: " + producto.getFormattedprecio()); System.out.println("Cantidad: " + venta.getQuantity()); System.out.println("Total: " + venta.getFormattedTotal()+ "\n"); choice = Validator.getString(sc, "Continua? (s/n): "); System.out.println(); } } } 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; } } class Venta{ private Producto producto; private int quantity; private double total; public Venta(){ this.producto = new Producto(); this.quantity = 0 ; this.total = 0 ; } public void setProducto(Producto producto){this.producto = producto;} public Producto getProducto(){return producto;} public void setQuantity(int quantity){this.quantity = quantity;} public int getQuantity(){return quantity;} public double getTotal(){this.calcularTotal();return total;} private void calcularTotal(){total = quantity * producto.getPrecio();} public String getFormattedTotal(){ NumberFormat currency = NumberFormat.getCurrencyInstance(); return currency.format(this.getTotal()); } }

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