Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.01 KB | None | 0 0
  1. package biblioteca_array_list;
  2.  
  3. import java.util.ArrayList; //serve per creare degli array dinamici, ovvero array con la dimensione che può cambiare, ci puoi aggiungere o togliere spazi
  4. import javax.swing.*; //serve per il JOptionPane
  5.  
  6. //creazione classe
  7. public class GestioneBiblioteca {
  8.  
  9. //attributi della classe
  10. private String NomeBiblio;
  11. //con le due righe sotto si creano due array dinamici, il primo contiene oggetti di tipo libro, il secondo oggetti di tipo cliente
  12. private ArrayList<libro> l = new ArrayList<libro>();
  13. private ArrayList<cliente> abbonato =new ArrayList<cliente>();
  14.  
  15. //metodo costruttore
  16. public GestioneBiblioteca(String Nome) {
  17. this.NomeBiblio = Nome;
  18. //ciclo for per aggiungere i libri (in questo caso sono tre)
  19. for (int i=0; i<3; i++){
  20. l.add( new libro());
  21. }
  22. }
  23.  
  24. //metodo per trovare un libro
  25. private int TrovaLibro(String ISBN){
  26. for (int i = 0; i<l.size();i++){ //l.size() serve per ottenere la lunghezza precisa dell'array nel momento in cui si esegue il metodo
  27. libro l1=l.get(i); // l1 è una variabile d'appoggio, è di tipo libro, l.get(i) serve per prendere il valore contenuto nella cella i dell'arraylist l
  28. if (l1.getISBN().equals (ISBN)) // se l'isbn messo da noi è uguale a quello del libro nella cella dell'arraylist i significa che il libro è stato trovato
  29. return i; //restituisce la cella di posizione dell'arraylist dove si trova il libro trovato
  30. }
  31. return -1; // se il metodo restituisce -1 significa che il libro non è stato trovato
  32. }
  33.  
  34. //metodo per aggiungere un libro
  35. public void AggiungiLibro(){
  36. //dichiari le variabili che ti servono per aggiungere il nuovo libro
  37.  
  38. String titolo="";
  39. String autore="";
  40. String ISBN="";
  41. JOptionPane messaggio1=new JOptionPane();
  42.  
  43. // con il try catch inserisci l'isbn e controlli che non ci siano errori strani
  44. try{
  45. ISBN = JOptionPane.showInputDialog("Inserisci il codice ISBN del libro da inserire:");
  46. }
  47. catch(Exception e){}
  48.  
  49. //controlli che il libro non ci sia già, se il libro c'è già:
  50. if (TrovaLibro(ISBN)!=-1){
  51. messaggio1.showMessageDialog(null, "Già è presente un libro con questo codice!");
  52. return;}
  53. // se il libro non c'è:
  54. else
  55. l.add( new libro()); //con questa linea di codice aggiungi un nuovo libro
  56. return;
  57. }
  58.  
  59.  
  60. //metodo per visualizzare i libri e le informazioni su di essi
  61. public void VisualizzaLibri () {
  62. // dichiari le variabili che ti servono per visualizzare le informazioni sui libri
  63. libro l1;
  64. JOptionPane messaggio = new JOptionPane();
  65. String messaggio1;
  66.  
  67. //ciclo for, serve per controllare se è in prestito o no
  68. for (int i=0;i<l.size();i++){
  69. l1=l.get(i);
  70. if (l1.getPrestato()==true){ //se è in prestito ti dice i dati del cliente che lo ha preso
  71. messaggio1=("Libro in prestito all'abbonato----"+l1.getNome()+"-------"+l1.getCognome()+"-------"+l1.getMatricola());}
  72. else messaggio1=("Libro disponibile \n"+"----------------------"); // se non è in prestito ti dice che è disponibile
  73. //infine ti da le informazioni sul libro, titolo autore bla bla bla
  74. messaggio.showMessageDialog(null,"---------------------- \n"+"Titolo del libro ="+l1.getTitolo()+messaggio1+"\n"+"Autore del libro ="+l1.getAutore());
  75. }
  76. }
  77.  
  78. //metodo per visualizzare i dati dei clienti
  79. public void VisualizzaAbbonati () {
  80. for (int i=0;i<abbonato.size();i++){
  81. abbonato.get(i).StampaSituazione(); //abbonato.get(i) ti da la cella i dell'array e .StampaSituazione() esegue il metodo omonimo per sapere i dati del cliente
  82. }
  83. }
  84.  
  85. //metodo per contare i libri prestati e se se ne posso prestare altri
  86. private boolean Contalibri () {
  87. //dichiarazione variabile che contiene il numero dei libri prestati
  88. int conta = 0;
  89. //ciclo for, serve per contare i libri prestati scandendo l'arraylist e controllando tutti i libri al suo interno
  90. for (int i=0; i<l.size(); i++){
  91. if(l.get(i).getPrestato()==true)
  92. conta++;
  93. }
  94. // se il conta è minore della lunghezza dell'array si possono prestare ancora libri
  95. if (conta<l.size())
  96. return true; //true, vero, si possono prestare
  97. else //altrimenti
  98. return false; //falso, non si possono prestare altri libri perché sono già tutti in prestito
  99. }
  100.  
  101. //metodo per trovare utenti
  102. private int trovaUtente(String matricola){ //metodo privato, è un metodo int perché restituisce un valore int, tra parentesi viene passata la matricola da trovare
  103. //ciclo for, scandisce l'array e controlla che la matricola inserita e quella del cliente che sta venendo controllato coincide
  104. for(int i = 0; i < abbonato.size(); i++){
  105. if(abbonato.get(i).getMatricola().equals(matricola)) //se la matricola coincide
  106. return i; //restituisce la cella dell'array con il cliente trovato
  107. JOptionPane messaggio1= new JOptionPane();
  108. messaggio1.showMessageDialog (null, "cliente  presente!");
  109. else { //altrimenti
  110. messaggio1.showMessageDialog (null, "cliente  non presente!"); //cliente non trovato
  111. return -1;} //restituisce -1 e significa che non è stato trovato un cliente con quella matricola
  112. }
  113. }
  114.  
  115. //metodo per aggiungere clienti
  116. public void NuovoUtente (){
  117. //dichiarazioni delle variabili che ci servono per aggiungere nuovi utenti
  118. String nome="";
  119. String cognome="";
  120. String matricola="";
  121.  
  122. // si usa il try catch per inserire nome cognome e matricola e controllare eventuali errori
  123. try{
  124. nome= JOptionPane.showInputDialog("Inserisci il nome dell'utente:");
  125. cognome= JOptionPane.showInputDialog("Inserisci il cognome dell'utente:");
  126. matricola= JOptionPane.showInputDialog("Inserisci la matricola dell'utente:");
  127. }
  128. catch(Exception e){}
  129.  
  130. // if, se il metodo trovautente() trova già un cliente con quei dati il sistema non lo inserisce
  131. if(trovaUtente(nome, cognome, matricola) != -1)
  132. return; // questo return serve per uscire dall'if
  133. else cliente nuovoAbb = new cliente(nome, cognome); //altrimenti si crea un nuovo cliente chiamato nuovoAbb
  134. abbonato.add(nuovoAbb); //linea di codice per inserire nell'arraylist dei clienti il nuovo cliente nuovoAbb
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement