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. *******************************************************************************/ public class Main { public static void main(String[] args) { System.out.println("Hello World"); } }
import java.util.ArrayList; import java.util.Scanner; import java.lang.String; import java.io.*; import java.nio.file.*; public class LibroApp4{ public static void main(String[] args){ System.out.println("Bienvenido a Mi Librería: Carga de libros"); DataEntry.cargarDatos(); Venta.vender(); System.out.println("Muchas gracias por su visita.\n"); } } class DataEntry{ static Scanner sc = new Scanner(System.in); static Libro li; static LibroDAO liDAO = DAOFactory.getLibroDAO(); 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(liDAO.consultar(codigo)!=null) {System.out.println(" Este libro ya existe."); return;} String nombre = Validator.getString(sc, " Ingresar el nombre : "); String autor = Validator.getString(sc, " Ingresar el autor : "); int precio = Validator.getInt(sc, " Ingresar el precio : "); int cantidad = Validator.getInt(sc, " Ingresar la cantidad: "); li = new Libro(codigo, nombre, autor, precio, cantidad); liDAO.insertar(li); System.out.println(" Libro ingresado exitosamente."); } static void eliminar(){ int codigo = Validator.getInt(sc, " Código libro a eliminar: "); li = liDAO.consultar(codigo); if(li==null) {System.out.println(" Este libro no existe."); return;} liDAO.eliminar(li); System.out.println(" " + li.toString() + ": Libro eliminado exitosamente."); } static void actualizar(){ int codigo = Validator.getInt(sc, " Código del libro a actualizar: "); li = liDAO.consultar(codigo); if(li==null) {System.out.println( " Este libro no existe."); return;} li.nombre = Validator.getString(sc, " Ingresar nuevo nombre : "); li.autor = Validator.getString(sc, " Ingresar nuevo autor : "); li.precio = Validator.getInt(sc, " Ingresar nuevo precio : "); li.cantidad = Validator.getInt(sc, " Ingresar nueva cantidad: "); liDAO.actualizar(li); System.out.println(" Libro actualizado exitosamente."); } static void vender(Libro li){ liDAO.actualizar(li); } static Libro consultar(){ int codigo = Validator.getInt(sc, " Código del libro: "); li = liDAO.consultar(codigo); if(li==null) System.out.println(" Este libro no existe."); else System.out.println(" Libro: " + li.toString()); return li; } static void listar(){ String st = liDAO.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: "); li = liDAO.consultar(codigo); if(li==null) {System.out.println( " Este libro no existe."); return;} li.cantidad += Validator.getInt(sc, " Ingresar cantidad a comprar: "); liDAO.actualizar(li); System.out.println(" Compra exitosa."); } } class Venta{ static Scanner sc = new Scanner(System.in); static Libro li; static void vender(){ System.out.println("Bienvenido a comprar"); String comp = "s"; int total = 0, codigo, cantidad, compra; do{ comp = Validator.getStringSN(sc, "\nDesea comprar (s/n): "); if(comp.equals("N")) break; li = DataEntry.consultar(); //en DataEntry if(li!=null){ cantidad = Validator.getInt(sc, " Cantidad a comprar: "); if(cantidad <= li.cantidad){ li.cantidad -= cantidad; DataEntry.vender(li); compra = cantidad * li.precio; total += compra; System.out.println(" Su compra es: " + compra); } else System.out.println(" Lo sentimos, solo quedan " + li.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, String nombre, String autor, int precio, int cantidad) { this.codigo = codigo; this.nombre = nombre; this.autor = autor; this.precio = precio; this.cantidad = cantidad; } public String toString() {return codigo + " " + nombre + " " + autor + " " + precio + " " + cantidad;} } class DAOFactory{ static LibroDAO getLibroDAO(){ // método LibroDAO lDAO = new LibroTxt(); return lDAO; } } interface LibroDAO{ void insertar(Libro li); void eliminar(Libro li); void actualizar(Libro li); Libro consultar(int codigo); String listar(); } class LibroTxt implements LibroDAO{ ArrayList<Libro> libros = new ArrayList<>(); Path librosPath = null; File librosFile = null; final String FIELD_SEP = "\t"; LibroTxt() { librosPath = Paths.get("libros.txt"); librosFile = librosPath.toFile(); libros = getLibros(); } ArrayList<Libro> getLibros(){ // lee los libros de libros.txt al ArrayList if (Files.exists(librosPath)){ try (BufferedReader in = new BufferedReader( new FileReader(librosFile))){ String line = in.readLine(); while(line != null){ String [] columns = line.split(FIELD_SEP); int codigo = Integer.parseInt(columns[0]); String nombre = columns [1]; String autor = columns [2]; int precio = Integer.parseInt(columns[3]); int cantidad = Integer.parseInt(columns[4]); Libro li = new Libro(codigo, nombre, autor, precio, cantidad); libros.add(li); line = in.readLine(); } } catch(IOException e){ System.out.println(e) ; return null; } } return libros; } boolean saveLibros(){ // Escribe los libros del ArrayList a libros.txt try (PrintWriter out = new PrintWriter( new BufferedWriter( new FileWriter(librosFile)))){ for (Libro li : libros){ out.print(li.codigo + "\t"); out.print(li.nombre + "\t"); out.print(li.autor + "\t"); out.print(li.precio + "\t"); out.println(li.cantidad); } }catch(IOException e){ System.out.println(e); return false; } return true; } public void insertar(Libro li) { libros.add(li); saveLibros(); } public void eliminar(Libro li){ libros.remove(li); saveLibros(); } public void actualizar(Libro li) { libros.set(indice(li.codigo), li); saveLibros(); } public String listar(){ String st = ""; for(Libro li: libros) st = st + " " + li.toString() + "\n"; return st; } public Libro consultar(int codigo){ for(Libro li: libros) if(li.codigo==codigo) return li; return null; } public int indice(int codigo){ int index = 0; for(Libro li:libros) if(li.codigo!=codigo) index++; else return index; return -1; } } 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 getStringSN(Scanner sc, String prompt){ String s; while (true){ s = getString(sc, prompt); if(s.equalsIgnoreCase("s") || s.equalsIgnoreCase("n")) return s.toUpperCase(); } } 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; } }

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