Java – Autonoleggio

Classe Veicolo:

//import java.io.Serializable;

public class Veicolo /*implements Serializable*/{
    private String targa;
    private String marca;
    private String modello;
    private int n_posti;
    
    public Veicolo(String targa, String marca, String modello, int n_posti){
        this.targa=targa;
        this.marca=marca;
        this.modello=modello;
        this.n_posti=n_posti;          
    }
	
    public Veicolo(Veicolo veicolo){
        this.targa=veicolo.getTarga();
        this.marca=veicolo.getMarca();
        this.modello=veicolo.getModello();
        this.n_posti=veicolo.getN_posti();          
    }
    
    public String getMarca() {
        return marca;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public String getModello() {
        return modello;
    }

    public void setModello(String modello) {
        this.modello = modello;
    }

    public int getN_posti() {
        return n_posti;
    }

    public void setN_posti(int n_posti) {
        this.n_posti = n_posti;
    }

    public String getTarga() {
        return targa;
    }

    public void setTarga(String targa) {
        this.targa = targa;
    }
    
    public String toString(){
        return "Targa: "+getTarga()+" Marca: "+getMarca()+" Modello: "+getModello()+" Posti: "+n_posti;
    }

}

Classe ParcoVeicoli:

import java.io.*;
public class ParcoVeicoli {

// Attributi
 private static final int MAX_NUM_VEICOLI=1000;
 private int codice=-1;
 private Veicolo mezzi[];
 public ParcoVeicoli() {
  mezzi=new Veicolo[MAX_NUM_VEICOLI];
 }

// Metodi
 public int setVeicolo(Veicolo veicolo) {
  try { codice++;
// inserimento copia di Veicolo in posizione relativa al codice
   mezzi[codice]=new Veicolo(veicolo);
   return codice; // restituisce la posizione di inserimento
  }
  catch (ArrayIndexOutOfBoundsException exception) {
   return -1; // posizione non valida
  }
 }
 public Veicolo getVeicolo(int codice) {
  try {
  // restituisce una copia del Veicolo in posizione
   return new Veicolo(mezzi[codice]);
  }
 catch (ArrayIndexOutOfBoundsException exception) {
  return null; // posizione non valida: nessun Veicolo restituito
 }
  catch (NullPointerException exception) {
   return null; // posizione vuota: nessun Veicolo restituito
  }
 }
 
 public Veicolo getVeicolo(String targa) {
  int i;   
  for (i=0;i&ltMAX_NUM_VEICOLI;i++)
     if (mezzi[i]!=null)
         if(mezzi[i].getTarga().equals(targa)) // restituisce una copia del Veicolo trovato
            return new Veicolo(mezzi[i]);
               
 return null; //veicolo non trovato
}
  
public int rimuoviVeicolo(int codice) {
 try {
  mezzi[codice]=null; // rimozione Veicolo in posizione
  return codice; // restituisce la posizione liberata
 }
 catch (ArrayIndexOutOfBoundsException exception) {
  return -1; // posizione non valida
 }
}

public int rimuoviVeicolo(String targa) {
 int i;   
 for (i=0;i&ltMAX_NUM_VEICOLI;i++)
     if (mezzi[i]!=null)
         if(mezzi[i].getTarga().equals(targa)){
             mezzi[i]=null; // rimozione Veicolo in posizione
             return i; // restituisce la posizione liberata
           }
 return -1; // veicolo non trovato
}

public int getNumMaxmezzi() {
 return MAX_NUM_VEICOLI;
}
public int getNumMezzi() {
 int posizione, n=0;
 for (posizione=0; posizione&ltMAX_NUM_VEICOLI; posizione++)
  if (mezzi[posizione]!=null)
   n++;
  return n;
 }

public void salvaParcoVeicoli() throws java.io.IOException {
  ObjectOutputStream stream =new ObjectOutputStream(new FileOutputStream("mezzi.bin"));
  stream.writeObject(this.mezzi);
  stream.close();
 }

public void caricaParcoVeicoli() throws java.io.IOException {
 ObjectInputStream stream = new ObjectInputStream(new FileInputStream("mezzi.bin"));
 try {
     this.mezzi = (Veicolo[])stream.readObject();
 }
 catch (ClassNotFoundException exception) {
 }
  stream.close();
 }

public String[] inventarioVeicoliPosti(int posti){
  int i,j=0; 
  String inventario[]=new String[MAX_NUM_VEICOLI];
  for (i=0;i&ltMAX_NUM_VEICOLI;i++)
     if (mezzi[i]!=null)
         if(mezzi[i].getN_posti()==posti) {
            //System.out.println("Codice: "+i+" -&gt "+mezzi[i].toString());
            inventario[j]="Codice: "+i+" -&gt "+mezzi[i].toString();
            j++;
         }  
  return inventario;
}
public String[] inventarioVeicoliMarca(){
  int i,j;  
  String inventario[]=new String[MAX_NUM_VEICOLI];
  String  marca[]=new String[MAX_NUM_VEICOLI];
  int veicoli[]=new int[MAX_NUM_VEICOLI];
  for (i=0;i&ltMAX_NUM_VEICOLI;i++)
   if (mezzi[i]!=null){   
      for (j=0;j&lt500;j++)
       if (marca[j]==null){
           marca[j]=new String(mezzi[i].getMarca());
           veicoli[j]=1;
           break;
       }
       else {
         if (marca[j].equals(mezzi[i].getMarca())){ 
           veicoli[j]++;
           break;
         }  
       } 
   }  
  for(j=0;marca[j]!=null;j++)  
   inventario[j]= marca[j]+" --&gt "+veicoli[j];   
  return inventario;
}

 public static void main (String[] args) throws java.io.IOException {
  /*File f = new File(".");
  System.out.println(f.getAbsolutePath()); 
  String inventario[];*/
   int i;
   ParcoVeicoli parco1 = new ParcoVeicoli();
   Veicolo v1 = new Veicolo("AF631EG","Fiat","Ducato",8);
   Veicolo v2 = new Veicolo("EA436JB","Renault","Transporter",8);
   Veicolo v3 = new Veicolo("DC225AM","Fiat","Fiorino",4);
   System.out.println("Numero mezzi: "+parco1.getNumMezzi());
   // inserimento mezzi
   parco1.setVeicolo(v1);
   parco1.setVeicolo(v2);
   parco1.setVeicolo(v3);
   System.out.println("\nNumero mezzi parco veicoli 1: "+parco1.getNumMezzi());
   // visualizzazione elenco mezzi
   for ( int posizione=0; posizione&ltparco1.getNumMaxmezzi(); posizione++) {
     Veicolo Veicolo = parco1.getVeicolo(posizione);
     if (Veicolo != null)
       System.out.println( "Codice: "+posizione+" -&gt "+Veicolo.toString());
   }
   System.out.println("\nInventario parco veicoli 1 per marca: ");
   inventario=parco1.inventarioVeicoliMarca();
   for (i=0;i&ltMAX_NUM_VEICOLI;i++){
       if (inventario[i]==null) break;
       System.out.println(inventario[i]);
   }
   System.out.println("\nNumero mezzi parco veicoli 1 con 8 posti: ");
   inventario=parco1.inventarioVeicoliPosti(8);
   for (i=0;i&ltMAX_NUM_VEICOLI;i++){
       if (inventario[i]==null) break;
       System.out.println(inventario[i]);
   }
       
   // salvataggio mezzi su file
   parco1.salvaParcoVeicoli();
   // creazione nuova ParcoVeicoli vuota
   ParcoVeicoli parco2 = new ParcoVeicoli();
   System.out.println("\nNumero mezzi parco veicoli 2: "+parco2.getNumMezzi());
   // caricamento mezzi da file
   System.out.println("\nCaricamento da file dati parco veicoli 2: ");
   parco2.caricaParcoVeicoli();
   System.out.println("\nNumero mezzi parco veicoli 2: "+parco2.getNumMezzi());
   //elimina veicolo per targa
   if (parco2.rimuoviVeicolo("EA436JB")&gt=0)
    System.out.println("\nVeicolo con targae EA436JB eliminato ");
   else
    System.out.println("\nImpossibile eliminare veicolo con targae EA436JB (inesistente) ");   
   // visualizzazione elenco mezzi
   System.out.println("\nElenco veicoli rimanenti parco veicoli 2");
   for ( int posizione=0; posizione&ltparco2.getNumMaxmezzi();posizione++) {
     Veicolo v4 = parco2.getVeicolo(posizione);
     if (v4 != null)
      System.out.println( "Posizione: "+posizione+" -&gt "+v4.toString()); 
   } 
 }
}

You may also like...


x

Leggi anche...

Java - Autoveicoli
Classe Veicolo: [code lang="java"] abstract public class Veicolo { private String marca; private String modello; private Str...
Java - Classe Potenza
Classe Potenza: [code lang="java"] class potenza{ private int b;//attributo potenza(int base){//costruttore b=base; }//fine costrutto...
Java - Classe Libro/Libreria/Biblioteca
Classe Libro: [code lang="java"] public class Libro { // attributi String titolo, genere, autore; // costruttore Libro(String titolo,...
powered by RelatedPosts