Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*1. Una biblioteca necesita un software que le permita registrar los datos de los libros que posee y de sus préstamos.
- De cada libro conoce su título, precio de reposición (para el caso de extravíos o daños) y estado (1:
- disponible, 2: prestado, 3: extraviado).
- Por otro lado, cada vez que un libro es prestado se registra el nombre del solicitante, la cantidad de días del
- préstamo y si fue devuelto o no. El conjunto de préstamos debe ser almacenado como un atributo del libro en
- cuestión.
- Se necesita entonces un programa en Java que solicite por teclado los datos de los libros y sus préstamos y
- luego de 6nalizada la carga informe:
- (a) Cantidad de libros en cada estado (tres totales)
- (b) Sumatoria del precio de reposición de todos los libros extraviados
- (c) Nombre de todos los solicitantes de un libro en particular identi6cado por su título
- (d) Promedio de veces que fueron prestados los libros de la biblioteca. Es decir, se debe responder a la
- consulta de cuántas veces es prestado en promedio cada libro
- Principal
- - bib: Biblioteca
- +main()
- Biblioteca
- - libros: Libro[]
- + constructor( cantidadLibros: int )
- + agregarLibro(l: Libro)
- + cantidadLibros(estado: int): int
- + cantidadLibrosPorEstado(): int[]
- + listadoSolicitantes(titulo: String): String
- + promedioPrestamos(): 7oat
- + sumaPrecioExtraviados(): 7oat
- Libro
- - titulo: String
- - precio: int
- - estado: int
- - prestamos: Prestamo[]
- + constructor( cantidadPrestamos: int )
- + agregarPrestamo(nuevo: Prestamo)
- + listadoSolicitantes(): String
- + cantidadPrestamos(): int
- Prestamo
- - solicitante: String
- - cantidadDias: int
- - devuelto: boolean
- + constructor
- + get / set
- + toString()
- 1
- Laboratorio de Computación III Clase 6
- */
- Clase Biblioteca
- package entidades ;
- public class Biblioteca {
- private Libro [] libros ;
- public Biblioteca ( int cantidadLibros ) {
- libros = new Libro [ cantidadLibros ];
- }
- public void agregarLibro ( Libro l) {
- for ( int i = 0; i < libros . length ; i++) {
- if ( libros [i] == null ) {
- libros [i] = l;
- break ;
- }
- }
- }
- public int cantidadLibros ( int estado ) {
- int c = 0;
- for ( Libro l : libros ) {
- if (l != null && l. getEstado () == estado ) {
- c ++;
- }
- }
- return c;
- }
- public int [] cantidadLibrosPorEstado () {
- int c[] = {0, 0, 0};
- for ( Libro l : libros ) {
- if (l != null ) {
- switch (l. getEstado ()) {
- case 0: c [0]++; break ;
- case 1: c [1]++; break ;
- case 2: c [2]++; break ;
- }
- }
- }
- return c;
- }
- public float sumaPrecioExtraviados () {
- float acPrecio = 0;
- for ( Libro l : libros ) {
- if (l != null && l. getEstado () == 3) {
- acPrecio += l. getPrecio ();
- }
- }
- return acPrecio ;
- }
- public String listadoSolicitantes ( String titulo ) {
- String listado = "No se encuentra ";
- 2
- Laboratorio de Computación III Clase 6
- for ( Libro l : libros ) {
- if (l != null && l. getTitulo (). equalsIgnoreCase ( titulo )) {
- listado = l. listadoSolicitantes ();
- break ;
- }
- }
- return listado ;
- }
- public float promedioPrestamos () {
- int c = 0, ac = 0;
- for ( int i = 0; i < libros . length ; i++) {
- if ( libros [i] != null ) {
- c ++;
- ac += libros [i]. cantidadPrestamos ();
- }
- }
- float promedio = 0;
- if (c != 0) {
- promedio = ( float ) ac / c;
- }
- return promedio ;
- }
- }
- Clase Libro
- package entidades ;
- public class Libro {
- private String titulo ;
- private float precio ;
- private int estado ;
- private Prestamo [] prestamos ;
- public String getTitulo () {
- return titulo ;
- }
- public void setTitulo ( String titulo ) {
- this . titulo = titulo ;
- }
- public float getPrecio () {
- return precio ;
- }
- public void setPrecio ( float precio ) {
- this . precio = precio ;
- }
- public int getEstado () {
- return estado ;
- }
- public void setEstado ( int estado ) {
- this . estado = estado ;
- 3
- Laboratorio de Computación III Clase 6
- }
- public Libro ( String titulo , float precio , int estado , int cantidadPrestamos ) {
- this . titulo = titulo ;
- this . precio = precio ;
- this . estado = estado ;
- prestamos = new Prestamo [ cantidadPrestamos ];
- }
- public void agregarPrestamo ( Prestamo p) {
- for ( int i = 0; i < prestamos . length ; i++) {
- if ( prestamos [i] == null ) {
- prestamos [i] = p;
- break ;
- }
- }
- }
- public String listadoSolicitantes () {
- StringBuffer salida = new StringBuffer ();
- salida . append ("[");
- for ( Prestamo p : prestamos ) {
- salida . append (p. getSolicitante () + "\n");
- }
- salida . append ("]");
- return salida . toString ();
- }
- public int cantidadPrestamos () {
- int c = 0;
- for ( int i = 0; i < prestamos . length ; i++) {
- if ( prestamos [i] != null ) {
- c ++;
- }
- }
- return c;
- }
- @Override
- public String toString () {
- return " Libro {" + " titulo =" + titulo + ", precio =" + precio + ", estado =" + estado
- + ’}’;
- }
- }
- 4
- Laboratorio de Computación III Clase 6
- Clase Principal
- package interfaz ;
- import entidades .*;
- import java . util . Scanner ;
- public class Parcial1Manana {
- public static void main ( String [] args ) {
- Scanner sc = new Scanner ( System .in);
- System .out . println (" Ingrese la cantidad de libros ");
- int cantidadLibros = sc. nextInt ();
- Biblioteca biblio = new Biblioteca ( cantidadLibros );
- for ( int i = 0; i < cantidadLibros ; i++) {
- System . out. println (" Libro Nro. " + i);
- System . out. println (" Ingrese titulo del libro ");
- String titulo = sc. next ();
- System . out. println (" Ingrese precio de reposición ");
- float precio = sc. nextFloat ();
- System . out. println (" Ingrese estado (1: disponible , 2: prestado , 3: extraviado )
- ");
- int estado = sc. nextInt ();
- System . out. println (" Ingrese cantidad de prestamos ");
- int cantidadPrestamos = sc. nextInt ();
- Libro l = new Libro ( titulo , precio , estado , cantidadPrestamos );
- for ( int j = 0; j < cantidadPrestamos ; j++) {
- System . out. println (" Prestamo Nro. " + j);
- System . out. println (" Ingrese el nombre del solicitante ");
- String nombre = sc. next ();
- System . out. println (" Ingrese los dias del prestamo ");
- int dias = sc. nextInt ();
- System . out. println (" Ingrese 1 si fue devuelto y 0 si no");
- int devu = sc. nextInt ();
- boolean devuelto = false ;
- if ( devu == 1) devuelto = true ;
- Prestamo pr = new Prestamo (nombre , dias , devuelto );
- l. agregarPrestamo (pr);
- }
- biblio . agregarLibro (l);
- }
- System .out . println (" Ingrese el título del libro a buscar : ");
- String tituloBuscado = sc. next ();
- System .out . println (" RESULTADOS ");
- System .out . println (" Cantidad de libros disponibles : " + biblio . cantidadLibros (1) );
- System .out . println (" Cantidad de libros prestados : " + biblio . cantidadLibros (2) );
- System .out . println (" Cantidad de libros extraviados : " + biblio . cantidadLibros (3) );
- System .out . println (" Suma de los precios de los extraviados : " + biblio .
- sumaPrecioExtraviados ());
- System .out . println (" Solicitantes del libro " + tituloBuscado + ": "+ biblio .
- listadoSolicitantes ( tituloBuscado ));
- System .out . println (" Promedio general de prestamos : " + biblio . promedioPrestamos ())
- ;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement