/** Denne klassen representerer en samling av CDer. * Begrensning: Kan bare sette inn CDer, ikke slette. */ class CD_Samling { /** Indeks til siste CDen innsatt. */ private int inn_CD_indeks; /** Tabell som inneholder CDer. */ private CD CD_tabell[]; /** Oppretter en CD-samling. * @param maks_antall_CDer maks antall CDer som skal lagres i samlingen. */ public CD_Samling (int maks_antall_CDer) { inn_CD_indeks = -1; CD_tabell = new CD[maks_antall_CDer]; } /** Innsetter en CD. * @param nyCD CDen som skal settes inn. */ public void innsett_CD (CD nyCD) { if (!erFull()) { ++inn_CD_indeks; CD_tabell[inn_CD_indeks] = nyCD; System.out.println ("Ny CD innsatt: " + nyCD.hentTittel()); } else System.out.println ("Ikke mer plass i samlingen."); } /** @return Antall CDer i samlingen. */ public int antallCDer() { return (inn_CD_indeks +1); } /** @return Sann dersom samlingen er full. */ public boolean erFull() { return antallCDer() == CD_tabell.length; } /** @return Sann dersom samlingen er tom. */ public boolean erTom() { return (antallCDer() == 0); } /** Skriver opplysninger om samlingen. */ public void utskrift() { System.out.println ("***************"); System.out.println ("Antall CDer: " + antallCDer()); System.out.println ("Verdi av samlingen: kr " + total_verdi()); System.out.println ("Gjennomsnittspris pr. CD: kr " + gjennomsnitt_verdi_pr_cd()); System.out.println ("***************"); } /** @return Total verdi av CDene. */ public double total_verdi () { double sum_verdi = 0.0; for (int i = 0; i <= inn_CD_indeks; i++) sum_verdi += CD_tabell[i].hentPris(); return sum_verdi; } /** @return Gjennomsnittsverdi av CDene. */ public double gjennomsnitt_verdi_pr_cd () { if (erTom()) return 0.0; return total_verdi() / antallCDer(); } } // klasse CD_Samling