Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package biblioteca_array_list;
- import java.util.ArrayList; //serve per creare degli array dinamici, ovvero array con la dimensione che può cambiare, ci puoi aggiungere o togliere spazi
- import javax.swing.*; //serve per il JOptionPane
- //creazione classe
- public class GestioneBiblioteca {
- //attributi della classe
- private String NomeBiblio;
- //con le due righe sotto si creano due array dinamici, il primo contiene oggetti di tipo libro, il secondo oggetti di tipo cliente
- private ArrayList<libro> l = new ArrayList<libro>();
- private ArrayList<cliente> abbonato =new ArrayList<cliente>();
- //metodo costruttore
- public GestioneBiblioteca(String Nome) {
- this.NomeBiblio = Nome;
- //ciclo for per aggiungere i libri (in questo caso sono tre)
- for (int i=0; i<3; i++){
- l.add( new libro());
- }
- }
- //metodo per trovare un libro
- private int TrovaLibro(String ISBN){
- 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
- 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
- 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
- return i; //restituisce la cella di posizione dell'arraylist dove si trova il libro trovato
- }
- return -1; // se il metodo restituisce -1 significa che il libro non è stato trovato
- }
- //metodo per aggiungere un libro
- public void AggiungiLibro(){
- //dichiari le variabili che ti servono per aggiungere il nuovo libro
- String titolo="";
- String autore="";
- String ISBN="";
- JOptionPane messaggio1=new JOptionPane();
- // con il try catch inserisci l'isbn e controlli che non ci siano errori strani
- try{
- ISBN = JOptionPane.showInputDialog("Inserisci il codice ISBN del libro da inserire:");
- }
- catch(Exception e){}
- //controlli che il libro non ci sia già, se il libro c'è già:
- if (TrovaLibro(ISBN)!=-1){
- messaggio1.showMessageDialog(null, "Già è presente un libro con questo codice!");
- return;}
- // se il libro non c'è:
- else
- l.add( new libro()); //con questa linea di codice aggiungi un nuovo libro
- return;
- }
- //metodo per visualizzare i libri e le informazioni su di essi
- public void VisualizzaLibri () {
- // dichiari le variabili che ti servono per visualizzare le informazioni sui libri
- libro l1;
- JOptionPane messaggio = new JOptionPane();
- String messaggio1;
- //ciclo for, serve per controllare se è in prestito o no
- for (int i=0;i<l.size();i++){
- l1=l.get(i);
- if (l1.getPrestato()==true){ //se è in prestito ti dice i dati del cliente che lo ha preso
- messaggio1=("Libro in prestito all'abbonato----"+l1.getNome()+"-------"+l1.getCognome()+"-------"+l1.getMatricola());}
- else messaggio1=("Libro disponibile \n"+"----------------------"); // se non è in prestito ti dice che è disponibile
- //infine ti da le informazioni sul libro, titolo autore bla bla bla
- messaggio.showMessageDialog(null,"---------------------- \n"+"Titolo del libro ="+l1.getTitolo()+messaggio1+"\n"+"Autore del libro ="+l1.getAutore());
- }
- }
- //metodo per visualizzare i dati dei clienti
- public void VisualizzaAbbonati () {
- for (int i=0;i<abbonato.size();i++){
- 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
- }
- }
- //metodo per contare i libri prestati e se se ne posso prestare altri
- private boolean Contalibri () {
- //dichiarazione variabile che contiene il numero dei libri prestati
- int conta = 0;
- //ciclo for, serve per contare i libri prestati scandendo l'arraylist e controllando tutti i libri al suo interno
- for (int i=0; i<l.size(); i++){
- if(l.get(i).getPrestato()==true)
- conta++;
- }
- // se il conta è minore della lunghezza dell'array si possono prestare ancora libri
- if (conta<l.size())
- return true; //true, vero, si possono prestare
- else //altrimenti
- return false; //falso, non si possono prestare altri libri perché sono già tutti in prestito
- }
- //metodo per trovare utenti
- private int trovaUtente(String matricola){ //metodo privato, è un metodo int perché restituisce un valore int, tra parentesi viene passata la matricola da trovare
- //ciclo for, scandisce l'array e controlla che la matricola inserita e quella del cliente che sta venendo controllato coincide
- for(int i = 0; i < abbonato.size(); i++){
- if(abbonato.get(i).getMatricola().equals(matricola)) //se la matricola coincide
- return i; //restituisce la cella dell'array con il cliente trovato
- JOptionPane messaggio1= new JOptionPane();
- messaggio1.showMessageDialog (null, "cliente presente!");
- else { //altrimenti
- messaggio1.showMessageDialog (null, "cliente non presente!"); //cliente non trovato
- return -1;} //restituisce -1 e significa che non è stato trovato un cliente con quella matricola
- }
- }
- //metodo per aggiungere clienti
- public void NuovoUtente (){
- //dichiarazioni delle variabili che ci servono per aggiungere nuovi utenti
- String nome="";
- String cognome="";
- String matricola="";
- // si usa il try catch per inserire nome cognome e matricola e controllare eventuali errori
- try{
- nome= JOptionPane.showInputDialog("Inserisci il nome dell'utente:");
- cognome= JOptionPane.showInputDialog("Inserisci il cognome dell'utente:");
- matricola= JOptionPane.showInputDialog("Inserisci la matricola dell'utente:");
- }
- catch(Exception e){}
- // if, se il metodo trovautente() trova già un cliente con quei dati il sistema non lo inserisce
- if(trovaUtente(nome, cognome, matricola) != -1)
- return; // questo return serve per uscire dall'if
- else cliente nuovoAbb = new cliente(nome, cognome); //altrimenti si crea un nuovo cliente chiamato nuovoAbb
- abbonato.add(nuovoAbb); //linea di codice per inserire nell'arraylist dei clienti il nuovo cliente nuovoAbb
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement