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.ArrayList; //import java.util.LinkedList; import java.util.Scanner; import java.lang.String; public class LibroApp{ private static LibroDAO libroDao = DAOFactory.getLibroDAO(); private static Scanner sc = new Scanner(System.in); private static Libro libro; public static void main(String[] args){ System.out.println("Bienvenido a Mi Librería: Carga de libros"); cargarDatos(); vender(); System.out.println("Muchas gracias por su visita.\n"); } static void cargarDatos(){ int op = 1; while(op!=7){ System.out.println("\n1 Ingresar libro nuevo"); System.out.println("2 Eliminar libro"); System.out.println("3 Actualizar libro"); System.out.println("4 Consultar libro"); System.out.println("5 Listar los libros"); System.out.println("6 Comprar libros"); System.out.println("7 Salir"); op = Validator.getInt(sc, "Elija una opción: "); switch (op) { case 1: insertar(); break; case 2: eliminar(); break; case 3: actualizar(); break; case 4: consultar(); break; case 5: listar(); break; case 6: comprar(); break; case 7: System.out.println(" Libros cargados.\n"); } } } static void insertar(){ int codigo = Validator.getInt(sc, " Ingresar el código: "); if(libroDao.consultar(codigo)!=null) {System.out.println(" Este libro ya existe."); return;} libro = new Libro(codigo); libro.nombre = Validator.getString(sc, " Ingresar el nombre : "); libro.autor = Validator.getString(sc, " Ingresar el autor : "); libro.precio = Validator.getInt(sc, " Ingresar el precio : "); libro.cantidad = Validator.getInt(sc, " Ingresar la cantidad: "); libroDao.insertar(libro); System.out.println(" Libro ingresado exitosamente."); } static void eliminar(){ int codigo = Validator.getInt(sc, " Código libro a eliminar: "); libro= libroDao.consultar(codigo); if(libro==null) {System.out.println(" Este libro no existe."); return;} libroDao.eliminar(libro); System.out.println(" " + libro.toString() + ": Libro eliminado exitosamente."); } static void actualizar(){ int codigo = Validator.getInt(sc, " Código del libro a actualizar: "); libro= libroDao.consultar(codigo); if(libro==null) {System.out.println( " Este libro no existe."); return;} libro.nombre = Validator.getString(sc, " Ingresar nuevo nombre : "); libro.autor = Validator.getString(sc, " Ingresar nuevo autor : "); libro.precio = Validator.getInt(sc, " Ingresar nuevo precio : "); libro.cantidad = Validator.getInt(sc, " Ingresar nueva cantidad: "); libroDao.actualizar(libro); System.out.println(" Libro actualizado exitosamente."); } static Libro consultar(){ int codigo = Validator.getInt(sc, " Código del libro: "); libro= libroDao.consultar(codigo); if(libro==null) System.out.println(" Este libro no existe."); else System.out.println(" Libro: " + libro.toString()); return libro; } static void listar(){ String st = libroDao.listar(); if(st.length() > 0) { System.out.println(" Libros existententes"); System.out.println(st); } else System.out.println(" No hay libros"); } static void comprar(){ int codigo = Validator.getInt(sc, " Código del libro: "); libro= libroDao.consultar(codigo); if(libro==null) {System.out.println( " Este libro no existe."); return;} libro.cantidad += Validator.getInt(sc, " Ingresar cantidad a comprar: "); libroDao.actualizar(libro); System.out.println(" Compra exitosa."); } static void vender(){ System.out.println("Bienvenido a Vender"); String comp = "s"; int total = 0, codigo, cantidad, compra; do{ comp = Validator.getString(sc, "\nDesea comprar (s/n): "); if(!comp.equalsIgnoreCase("s")) break; libro= consultar(); //en DataEntry if(libro!=null){ cantidad = Validator.getInt(sc, " Cantidad a comprar: "); if(cantidad <= libro.cantidad){ libro.cantidad -= cantidad; libroDao.actualizar(libro); compra = cantidad * libro.precio; total += compra; System.out.println(" Su compra es: " + compra); } else System.out.println(" Lo sentimos, solo quedan " + libro.cantidad + " libros."); } } while(true); if(total>0) System.out.println("Total compra: " + total); } } class Libro{ int codigo; String nombre; String autor; int precio; int cantidad; public Libro(int codigo) {this.codigo = codigo;} public String toString() {return codigo + " " + nombre + " " + autor + " " + precio + " " + cantidad;} } class DAOFactory{ static LibroDAO getLibroDAO(){ // método LibroDAO libroDAO = new LibroLista(); // LibroDAO libroDAO = new LibroLink(); return libroDAO; } } interface LibroDAO{ void insertar(Libro libro); void eliminar(Libro libro); void actualizar(Libro libro); Libro consultar(int codigo); String listar(); } class LibroLista implements LibroDAO{ ArrayList<Libro> lista = new ArrayList<>(); public void insertar(Libro libro) {lista.add(libro);} public void eliminar(Libro libro){lista.remove(libro);} public void actualizar(Libro libro) { lista.set(indice(libro.codigo), libro); } public String listar(){ String st = ""; for(Libro libro: lista) st = st + " " + libro.toString() + "\n"; return st; } public Libro consultar(int codigo){ for(Libro libro: lista) if(libro.codigo==codigo) return libro; return null; } public int indice(int codigo){ int index = 0; for(Libro libro:lista) if(libro.codigo!=codigo) index++; else return index; return -1; } } /* class LibroLink implements LibroDAO{ LinkedList<Libro> lista = new LinkedList<>(); // Las funciones no cambian } } */ 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. Ingrese 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 que " + min + "."); else if (i > max) System.out.println(" Error El número debe ser menor 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. Ingrese 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