Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
3
respuestas

Desafío: construyendo una nueva aplicación

Publico mi codigo antes de estar terminado por tema de tiempo. el programa es referente a una biblioteca, donde se ingresa lectores.

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

CODIGO:

CLASE EJEMPLAR

package com.biblioteca.models;

public class Ejemplar {

    //EJEMPLAR SERIA CLASE PADRE, SE PRETENDIA HEREDAR PARA LIBRO Y REVISTAR PERO POR TIEMPO SOLO SE CREO LIBRO.

    private String id;
    private String titulo;
    private int numero_paginas;
    private String editorial;
    private String autor;
    private String fecha_prestamo;
    private String fecha_devolucion;
    private int estado;

    public Ejemplar() {
    }

    public Ejemplar(String id, String titulo, int numero_paginas, String editorial, String autor, String fecha_prestamo, String fecha_devolucion, int estado) {
        this.id = id;
        this.titulo = titulo;
        this.numero_paginas = numero_paginas;
        this.editorial = editorial;
        this.autor = autor;
        this.fecha_prestamo = fecha_prestamo;
        this.fecha_devolucion = fecha_devolucion;
        this.estado = estado;
    }



    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public int getNumero_paginas() {
        return numero_paginas;
    }

    public void setNumero_paginas(int numero_paginas) {
        this.numero_paginas = numero_paginas;
    }

    public String getEditorial() {
        return editorial;
    }

    public void setEditorial(String editorial) {
        this.editorial = editorial;
    }

    public String getAutor() {
        return autor;
    }

    public void setAutor(String autor) {
        this.autor = autor;
    }

    public String getFecha_prestamo() {
        return fecha_prestamo;
    }

    public void setFecha_prestamo(String fecha_prestamo) {
        this.fecha_prestamo = fecha_prestamo;
    }

    public String getFecha_devolucion() {
        return fecha_devolucion;
    }

    public void setFecha_devolucion(String fecha_devolucion) {
        this.fecha_devolucion = fecha_devolucion;
    }

    public int getEstado() {
        return estado;
    }

    public void setEstado(int estado) {
        this.estado = estado;
    }
}
3 respuestas

CLASE LIBRO:

package com.biblioteca.models;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Scanner;

public class Libro extends Ejemplar{

    public Libro() {
        super();
    }

    public Libro(String id, String titulo, int numero_paginas, String editorial, String autor, String fecha_prestamo, String fecha_devolucion, int estado) {
        super(id, titulo, numero_paginas, editorial, autor, fecha_prestamo, fecha_devolucion, estado);
    }



    public void prestaLibro(ArrayList <Usuario> usuario,ArrayList <Libro> listaLibro){



        Scanner re=new Scanner(System.in);



        boolean validar=false;
        boolean validarLibroDisponible=false;
        boolean validarExistencia=false;
        String codigoLibro;
        String rut;
        String nombre="";

        String fecha_hoy;


        System.out.println("INGRESE SU RUT: ");
        rut=re.nextLine();


        for(Usuario s: usuario){
            if(rut.equals(s.getRut())){

                validar=true;
                nombre=s.getNombre();

            }

        }



        if(validar==true){
            System.out.println("RUT VALIDADO CORRECTAMENTE! ");

            System.out.println("TITULOS DIPONIBLES PARA PRESTAR AL SR/A: "+nombre);



            for(Libro m: listaLibro){

                if(m.getEstado()==0){
                    validarLibroDisponible=true;
                    System.out.println("CODIGO: "+ m.getId());
                    System.out.println("LIBRO: "+ m.getAutor());

                }


            }



            System.out.println("INGRESE CODIGO LIBRO QUE DESEA PEDIR: ");


            codigoLibro=re.nextLine();

            for(Libro m: listaLibro){

                if(m.getId().equals(codigoLibro)){
                    validarExistencia=true;

                }

            }


            if(validarLibroDisponible==true && validarExistencia==true){
                LocalDateTime  fecha= LocalDateTime.now();
                fecha_hoy=fecha.getDayOfMonth()+"/"+fecha.getMonthValue()+"/"+fecha.getYear();

                System.out.println(fecha_hoy);

                for(Libro m: listaLibro){

                    if(codigoLibro.equals(m.getId())){
                        m.setEstado(1);
                        m.setFecha_prestamo(fecha_hoy);
                        m.setFecha_devolucion("5");
                    }

                }


                System.out.println("LIBRO PRESTADO EXITOSAMENTE!");

            }
            else{

                System.out.println("LIBRO NO EXISTENTE O SIN DISPONIBILIDAD");

            }







        }else{

            System.out.println("EL RUT INGRESADO NO EXISTE!");

        }







    }

}


    /* METODO PARA AGREGAR LIBROS PERO POR TIEMPO NO SE IMPLEMENTO

    public void ingresarLibro(Libro libro, ArrayList<Libro> listaLibro){

        listaLibro.add(libro);
        System.out.println("INGRESO EXITOSO");
    }

     */

CLASE USUARIO:

package com.biblioteca.models;

import java.util.ArrayList;

public class Usuario {

    private String rut;
    private String nombre;
    private String direccion;

    public Usuario() {
    }

    public Usuario(String rut, String nombre, String direccion) {
        this.rut = rut;
        this.nombre = nombre;
        this.direccion = direccion;
    }

    public String getRut() {
        return rut;
    }

    public void setRut(String rut) {
        this.rut = rut;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }


    public void ingresarLector(Usuario usuario, ArrayList<Usuario> listaUsuario){

            listaUsuario.add(usuario);
            System.out.println("INGRESO EXITOSO");
    }

}

METODO MAIN O PRINCIPAL:

import com.biblioteca.models.Libro;
import com.biblioteca.models.Usuario;

import java.util.ArrayList;
import java.util.Scanner;


public class Main {


    public static void main(String[] args) {


        logicaProgramaBiblioteca();





    }


    public static Usuario nuevoLector(){

        Usuario nuevoUsuario=new Usuario();
        Scanner re=new Scanner(System.in);

        System.out.println("Ingrese Rut: ");
        nuevoUsuario.setRut(re.nextLine());
        System.out.println("Ingrese Nombre: ");
        nuevoUsuario.setNombre(re.nextLine());
        System.out.println("Ingrese Direccion: ");
        nuevoUsuario.setDireccion(re.nextLine());

        return nuevoUsuario;
    }


    public static void logicaProgramaBiblioteca(){


        ArrayList <Libro> listaLibros=cargarLibros();
        ArrayList <Usuario> listaUsuarios=cargarLector();

        Usuario metodosUsuarios=new Usuario();
        Libro metodosLibro=new Libro();


        Scanner ingresoTeclado=new Scanner(System.in);


        int opcion;

        do{

            textoInicioPrograma();
            opcion=ingresoTeclado.nextInt();


            switch (opcion) {

                case 1:

                    metodosUsuarios.ingresarLector(nuevoLector(),listaUsuarios);

                    break;

                case 2:

                    mostrarListaLectores(listaUsuarios);

                    break;


                case 3:

                    mostrarlistaLibros(listaLibros);
                    break;

                case 4:
                    metodosLibro.prestaLibro(listaUsuarios,listaLibros);

                    break;

                case 5:
                    break;

                case 6:
                    System.out.println("GRACIAS POR USAR EL PROGRAMA! ");
                    break;

                default:
                    System.out.println("INGRESE OPCION VALIDA CORRECTO");

            }



        }while(opcion!=6);


    }



    public static void textoInicioPrograma(){


        String mensajeInicial= """
            QUE OPERACION DESEA REALIZAR?
               """;

        String textoOpciones= """
               1.- INGRESAR LECTOR
               2.- LISTA LECTORES
               3.- LISTA DE LIBROS
               4.- PRESTAR LIBRO
               5.- DEVOLVER LIBRO
               6.- SALIR
                """;


        System.out.println(mensajeInicial);
        System.out.println(textoOpciones);



    }



    public static void mostrarListaLectores(ArrayList <Usuario> usuarios){

        System.out.println("LISTA DE REGISTRO DE LECTORES: ");

        for(Usuario m: usuarios){
            System.out.println("");
            System.out.println("");
            System.out.println("RUT: "+m.getRut());
            System.out.println("NOMBRE: "+ m.getNombre());
            System.out.println("DIRECCION: "+m.getDireccion());
            System.out.println("");
            System.out.println("");



        }

    }


    public static void mostrarlistaLibros(ArrayList <Libro> libro){

        System.out.println("LISTA DE LIBROS: ");

        for(Libro m: libro){
            System.out.println("");
            System.out.println("");
            System.out.println("NOMBRE LIBRO: "+m.getTitulo());
            System.out.println("AUTOR: "+m.getAutor());
            System.out.println("EDITORIAL LIBRO: "+m.getEditorial());
            String estado=m.getEstado()==1?"PRESTADO":"DISPONIBLE";
            if(m.getEstado()==1){
                System.out.println("FECHA DE PRESTAMO: ");
                System.out.println(m.getFecha_prestamo());
            }
            System.out.println("ESTADO DEL LIBRO: "+estado);

            System.out.println("");
            System.out.println("");



        }

    }



    public static ArrayList <Usuario> cargarLector(){
        ArrayList <Usuario> listaUsuario=new ArrayList<>();
        Usuario nuevo_usuario=new Usuario("1877711","Luciano","Su casa");
        Usuario nuevo_usuario2=new Usuario("111111","Pepita","Su casa");

        listaUsuario.add(nuevo_usuario);
        listaUsuario.add(nuevo_usuario2);


        return listaUsuario;
    }


    public static ArrayList <Libro> cargarLibros(){
        ArrayList <Libro> listaLibros=new ArrayList<>();
        Libro principito=new Libro("010102030","El Principito",100,"Planeta","Antoine de Saint-Exupéry","01/01/2025",null,0);
        Libro antelaley=new Libro("010102031","Ante La Ley",100,"Planeta","Franz KafKa",null,"01/01/2025",0);

        listaLibros.add(principito);
        listaLibros.add(antelaley);


        return listaLibros;

    }



}

No se implementa metodo devolucion, aunque la logica es similar a prestamo.

¡Hola Luciano! ¿Cómo estás?

Gracias por tu aporte en el foro. Su contribución es esencial para el crecimiento de nuestra comunidad en Alura.

Sigue así y no dudes en volver al foro si tienes alguna pregunta o dificultad.

Abrazos y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!