online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
import java.text.NumberFormat; import java.util.Scanner; class ProductoMantApp{ // declara 2 variables de clase private static ProductoDAO productoDAO = null; private static Scanner sc = null; public static void main(String args[]){ System.out.println("Bienvenido a la aplicación de Mantenimiento de productos \n"); // set de las variables de clase productoDAO = DAOFactory.getProductoDAO(); // conexión con la base de datos sc = new Scanner(System.in); displayMenu(); String action = "" ; while (!action.equalsIgnoreCase("sale")){ action = Validator.getString(sc, "Ingrese un comando: "); System.out.println() ; if (action.equalsIgnoreCase("lista")) displayAllProductos () ; else if (action.equalsIgnoreCase("adi")) addProducto(); else if (action.equalsIgnoreCase("eli")) deleteProducto(); else if (action.equalsIgnoreCase("menu")) displayMenu(); else if (action.equalsIgnoreCase("sale")) System.out.println("Adios.\n"); else System.out.println("Error! comando no válido.\n"); } } public static void displayMenu(){ System.out.println("MENU DE COMMADOS"); System.out.println("lista - Lista todos los productos"); System.out.println("adi - Añade un producto"); System.out.println("eli - Elimina un producto"); System.out.println("menu - Muestra este menu"); System.out.println("sale - salida de la aplicación\n"); } public static void displayAllProductos (){ System.out.println("LISTA DE PRODUCTOS"); System.out.println(productoDAO.getProductosString()); } public static void addProducto(){ String codigo = Validator.getString(sc, "Ingrese el código de producto: "); String descripcion = Validator.getString(sc, "Ingrese la descripción de producto: "); double precio = Validator.getDouble(sc, "Ingrese el precio: "); Producto producto = new Producto(); producto.setCode(codigo); producto.setDescription(descripcion); producto.setPrice(precio); productoDAO.addProducto(producto); // añade un producto a la base de datos System.out.println(); System.out.println(descripcion + " ha sido añadido.\n"); } public static void deleteProducto(){ String codigo = Validator.getString(sc,"Ingrese el código a eliminar: "); Producto p = productoDAO.getProducto(codigo); // elimina un producto de la base de datos System.out.println(); if (p != null){ productoDAO.deleteProducto(p); System.out.println(p.getDescripcion() + " ha sido eliminado.\n"); }else System.out.println("Ningún producto tiene este código.\n"); } } class Producto{ private String codigo; private String descripcion; private double precio; public Producto(){ codigo = ""; descripcion = ""; precio = 0.0; } public Producto(String codigo, String descripcion, double precio){ this.codigo = codigo; this.descripcion = descripcion; this.precio = precio; } public void setCode(String codigo){this.codigo = codigo;} public String getCodigo() {return codigo;} public void setDescription(String descripcion){this.descripcion = descripcion;} public String getDescripcion(){return descripcion;} public void setPrice(double precio){this.precio = precio;} public double getPrice(){return precio;} public String getFormattedPrecio(){ NumberFormat moneda = NumberFormat.getCurrencyInstance(); return moneda.format(precio); } } interface ProductoReader{ Producto getProducto(String codigo); String getProductosString(); } interface ProductoWriter { boolean addProducto(Producto p) ; boolean updateProducto(Producto p ) ; boolean deleteProducto(Producto p ) ; } interface ProductoConstants { int CODESIZE = 4; int DESCRIPTIONSIZE = 40; } interface ProductoDAO extends ProductoReader, ProductoWriter, ProductoConstants{ } class DAOFactory{ public static ProductoDAO getProductoDAO(){ // método ProductoDAO pDAO = new ProductoTextFile(); return pDAO; } } class ProductoTextFile implements ProductoDAO{ // field declarations public ProductoTextFile(){ // código que inicia los campos } //************************************************* // Implementa la interface ProductoReader //************************************************* public Producto getProducto(String codigo){ // código que retorna un Producto return producto; // Error de compilación } public String getProductosString(){ // código que retorna un String que lista todos los productos, // este código puede usar las constantes CODE_SIZE y // DESCRIPTION_SIZE de la interface ProductoConstants // para alinear los datos de producto return ""; } //************************************************* // Implementa la interface ProductoWriter //************************************************** public boolean addProducto(Producto p){ // código que añade un Producto return false; } public boolean deleteProducto(Producto p){ // código que elimina un Producto return false; } public boolean updateProducto(Producto p){ // código que actualiza un Producto return false; } } 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