Cliente.java
Created with JBuilder
class Cliente {
  // Attributi costanti
  public static final int NUMERO_INIZIALE_ARTICOLI = 1;
  public static final double PERCENTUALE_VENDITORE = 0.65;

  // Attributi variabili
  private String     nominativo;
  private String     codiceFiscale;
  private double     importoRealizzato;
  private Articolo[] elencoArticoli;
  private int        numeroArticoli;

  // Costruttore
  public Cliente( String n, String cf ) {
    nominativo = n;
    codiceFiscale = cf;
    importoRealizzato = 0.0;
    elencoArticoli = new Articolo[NUMERO_INIZIALE_ARTICOLI];
    numeroArticoli = 0;
  }

  // Metodi di richiesta
  public String restituisciNominativo() {
    return nominativo;
  }
  public String restituisciCodiceFiscale() {
    return codiceFiscale;
  }
  public double restituisciImportoRealizzato() {
    return importoRealizzato;
  }

  // Messa in vendita di un articolo
  public void mettiInVendita( Articolo a ) {
    if (numeroArticoli == elencoArticoli.length) {
      espandiElenco();
    }
    elencoArticoli[numeroArticoli++] = a;
  }

  // Ritiro dalla vendita di un articolo
  public boolean ritiraDallaVendita( Articolo a ) {
    int pos = cercaPosizioneArticolo(a);
    if (pos >= 0) {
      elencoArticoli[pos] = elencoArticoli[numeroArticoli - 1];
      --numeroArticoli;
      return true;
    } else {
      return false;
    }
  }

  // Vendita di un articolo
  public boolean concludiVendita( Articolo a ) {
    if (ritiraDallaVendita(a)) {
      importoRealizzato += a.restituisciPrezzo() * PERCENTUALE_VENDITORE;
      return true;
    } else {
      return false;
    }
  }

  // Calcolo dell'importo complessivo degli articoli in vendita
  public double calcolaValoreComplessivoVendite() {
    double r = 0.0;
    for (int i = 0; i < numeroArticoli; ++i) {
      r += elencoArticoli[i].restituisciPrezzo();
    }
    return r;
  }

  // Metodi privati
  private void espandiElenco() {
    Articolo[] tmp = new Articolo[numeroArticoli * 2];
    for (int i = 0; i < numeroArticoli; ++i) {
      tmp[i] = elencoArticoli[i];
    }
    elencoArticoli = tmp;
  }
  private int cercaPosizioneArticolo( Articolo a ) {
    for (int i = 0; i < numeroArticoli; i++) {
      int ni = elencoArticoli[i].restituisciNumeroInventario();
      if (ni == a.restituisciNumeroInventario()) {
        return i;
      }
    }
    return -1;
  }

}

Cliente.java
Created with JBuilder