Advertisement
comercio1

Untitled

Apr 27th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.87 KB | None | 0 0
  1. /*1. Una biblioteca necesita un software que le permita registrar los datos de los libros que posee y de sus préstamos.
  2. De cada libro conoce su título, precio de reposición (para el caso de extravíos o daños) y estado (1:
  3. disponible, 2: prestado, 3: extraviado).
  4. Por otro lado, cada vez que un libro es prestado se registra el nombre del solicitante, la cantidad de días del
  5. préstamo y si fue devuelto o no. El conjunto de préstamos debe ser almacenado como un atributo del libro en
  6. cuestión.
  7. Se necesita entonces un programa en Java que solicite por teclado los datos de los libros y sus préstamos y
  8. luego de 6nalizada la carga informe:
  9. (a) Cantidad de libros en cada estado (tres totales)
  10. (b) Sumatoria del precio de reposición de todos los libros extraviados
  11. (c) Nombre de todos los solicitantes de un libro en particular identi6cado por su título
  12. (d) Promedio de veces que fueron prestados los libros de la biblioteca. Es decir, se debe responder a la
  13. consulta de cuántas veces es prestado en promedio cada libro
  14. Principal
  15. - bib: Biblioteca
  16. +main()
  17. Biblioteca
  18. - libros: Libro[]
  19. + constructor( cantidadLibros: int )
  20. + agregarLibro(l: Libro)
  21. + cantidadLibros(estado: int): int
  22. + cantidadLibrosPorEstado(): int[]
  23. + listadoSolicitantes(titulo: String): String
  24. + promedioPrestamos(): 7oat
  25. + sumaPrecioExtraviados(): 7oat
  26. Libro
  27. - titulo: String
  28. - precio: int
  29. - estado: int
  30. - prestamos: Prestamo[]
  31. + constructor( cantidadPrestamos: int )
  32. + agregarPrestamo(nuevo: Prestamo)
  33. + listadoSolicitantes(): String
  34. + cantidadPrestamos(): int
  35. Prestamo
  36. - solicitante: String
  37. - cantidadDias: int
  38. - devuelto: boolean
  39. + constructor
  40. + get / set
  41. + toString()
  42. 1
  43. Laboratorio de Computación III Clase 6
  44. */
  45. Clase Biblioteca
  46. package entidades ;
  47. public class Biblioteca {
  48. private Libro [] libros ;
  49. public Biblioteca ( int cantidadLibros ) {
  50. libros = new Libro [ cantidadLibros ];
  51. }
  52. public void agregarLibro ( Libro l) {
  53. for ( int i = 0; i < libros . length ; i++) {
  54. if ( libros [i] == null ) {
  55. libros [i] = l;
  56. break ;
  57. }
  58. }
  59. }
  60. public int cantidadLibros ( int estado ) {
  61. int c = 0;
  62. for ( Libro l : libros ) {
  63. if (l != null && l. getEstado () == estado ) {
  64. c ++;
  65. }
  66. }
  67. return c;
  68. }
  69. public int [] cantidadLibrosPorEstado () {
  70. int c[] = {0, 0, 0};
  71. for ( Libro l : libros ) {
  72. if (l != null ) {
  73. switch (l. getEstado ()) {
  74. case 0: c [0]++; break ;
  75. case 1: c [1]++; break ;
  76. case 2: c [2]++; break ;
  77. }
  78. }
  79. }
  80. return c;
  81. }
  82. public float sumaPrecioExtraviados () {
  83. float acPrecio = 0;
  84. for ( Libro l : libros ) {
  85. if (l != null && l. getEstado () == 3) {
  86. acPrecio += l. getPrecio ();
  87. }
  88. }
  89. return acPrecio ;
  90. }
  91. public String listadoSolicitantes ( String titulo ) {
  92. String listado = "No se encuentra ";
  93. 2
  94. Laboratorio de Computación III Clase 6
  95. for ( Libro l : libros ) {
  96. if (l != null && l. getTitulo (). equalsIgnoreCase ( titulo )) {
  97. listado = l. listadoSolicitantes ();
  98. break ;
  99. }
  100. }
  101. return listado ;
  102. }
  103. public float promedioPrestamos () {
  104. int c = 0, ac = 0;
  105. for ( int i = 0; i < libros . length ; i++) {
  106. if ( libros [i] != null ) {
  107. c ++;
  108. ac += libros [i]. cantidadPrestamos ();
  109. }
  110. }
  111. float promedio = 0;
  112. if (c != 0) {
  113. promedio = ( float ) ac / c;
  114. }
  115. return promedio ;
  116. }
  117. }
  118. Clase Libro
  119. package entidades ;
  120. public class Libro {
  121. private String titulo ;
  122. private float precio ;
  123. private int estado ;
  124. private Prestamo [] prestamos ;
  125. public String getTitulo () {
  126. return titulo ;
  127. }
  128. public void setTitulo ( String titulo ) {
  129. this . titulo = titulo ;
  130. }
  131. public float getPrecio () {
  132. return precio ;
  133. }
  134. public void setPrecio ( float precio ) {
  135. this . precio = precio ;
  136. }
  137. public int getEstado () {
  138. return estado ;
  139. }
  140. public void setEstado ( int estado ) {
  141. this . estado = estado ;
  142. 3
  143. Laboratorio de Computación III Clase 6
  144. }
  145. public Libro ( String titulo , float precio , int estado , int cantidadPrestamos ) {
  146. this . titulo = titulo ;
  147. this . precio = precio ;
  148. this . estado = estado ;
  149. prestamos = new Prestamo [ cantidadPrestamos ];
  150. }
  151. public void agregarPrestamo ( Prestamo p) {
  152. for ( int i = 0; i < prestamos . length ; i++) {
  153. if ( prestamos [i] == null ) {
  154. prestamos [i] = p;
  155. break ;
  156. }
  157. }
  158. }
  159. public String listadoSolicitantes () {
  160. StringBuffer salida = new StringBuffer ();
  161. salida . append ("[");
  162. for ( Prestamo p : prestamos ) {
  163. salida . append (p. getSolicitante () + "\n");
  164. }
  165. salida . append ("]");
  166. return salida . toString ();
  167. }
  168. public int cantidadPrestamos () {
  169. int c = 0;
  170. for ( int i = 0; i < prestamos . length ; i++) {
  171. if ( prestamos [i] != null ) {
  172. c ++;
  173. }
  174. }
  175. return c;
  176. }
  177. @Override
  178. public String toString () {
  179. return " Libro {" + " titulo =" + titulo + ", precio =" + precio + ", estado =" + estado
  180. +};
  181. }
  182. }
  183. 4
  184. Laboratorio de Computación III Clase 6
  185. Clase Principal
  186. package interfaz ;
  187. import entidades .*;
  188. import java . util . Scanner ;
  189. public class Parcial1Manana {
  190. public static void main ( String [] args ) {
  191. Scanner sc = new Scanner ( System .in);
  192. System .out . println (" Ingrese la cantidad de libros ");
  193. int cantidadLibros = sc. nextInt ();
  194. Biblioteca biblio = new Biblioteca ( cantidadLibros );
  195. for ( int i = 0; i < cantidadLibros ; i++) {
  196. System . out. println (" Libro Nro. " + i);
  197. System . out. println (" Ingrese titulo del libro ");
  198. String titulo = sc. next ();
  199. System . out. println (" Ingrese precio de reposición ");
  200. float precio = sc. nextFloat ();
  201. System . out. println (" Ingrese estado (1: disponible , 2: prestado , 3: extraviado )
  202. ");
  203. int estado = sc. nextInt ();
  204. System . out. println (" Ingrese cantidad de prestamos ");
  205. int cantidadPrestamos = sc. nextInt ();
  206. Libro l = new Libro ( titulo , precio , estado , cantidadPrestamos );
  207. for ( int j = 0; j < cantidadPrestamos ; j++) {
  208. System . out. println (" Prestamo Nro. " + j);
  209. System . out. println (" Ingrese el nombre del solicitante ");
  210. String nombre = sc. next ();
  211. System . out. println (" Ingrese los dias del prestamo ");
  212. int dias = sc. nextInt ();
  213. System . out. println (" Ingrese 1 si fue devuelto y 0 si no");
  214. int devu = sc. nextInt ();
  215. boolean devuelto = false ;
  216. if ( devu == 1) devuelto = true ;
  217. Prestamo pr = new Prestamo (nombre , dias , devuelto );
  218. l. agregarPrestamo (pr);
  219. }
  220. biblio . agregarLibro (l);
  221. }
  222. System .out . println (" Ingrese el título del libro a buscar : ");
  223. String tituloBuscado = sc. next ();
  224. System .out . println (" RESULTADOS ");
  225. System .out . println (" Cantidad de libros disponibles : " + biblio . cantidadLibros (1) );
  226. System .out . println (" Cantidad de libros prestados : " + biblio . cantidadLibros (2) );
  227. System .out . println (" Cantidad de libros extraviados : " + biblio . cantidadLibros (3) );
  228. System .out . println (" Suma de los precios de los extraviados : " + biblio .
  229. sumaPrecioExtraviados ());
  230. System .out . println (" Solicitantes del libro " + tituloBuscado + ": "+ biblio .
  231. listadoSolicitantes ( tituloBuscado ));
  232. System .out . println (" Promedio general de prestamos : " + biblio . promedioPrestamos ())
  233. ;
  234. }
  235. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement