import java.io.*; public class Kortsystem { public static final int KLIPPEKORT = 0, DAGSKORT = 1, SESONGKORT = 2; Wrapper første; Wrapper w; public Kortsystem() { første = new Wrapper(null); } /*public void utvidArray() { Kort[] hjelp = new Kort[kortArray.length + UTVIDELSE]; for(int i = 0; i < kortArray.length; i++) hjelp[i] = kortArray[i]; kortArray = hjelp; }*/ public void settInnKort(Kort ny) { w = new Wrapper(ny); w.neste = første.neste; w.forrige = første; if(w.neste != null) { w.neste.forrige = w; } første.neste = w; } public void LagreFil() throws FileNotFoundException, IOException { File f = new File("D:\\workspace\\EksamenSkiheis\\FILER\\fil.txt"); FileOutputStream fos = new FileOutputStream(f); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(første.neste); oos.close(); } public void LesFil() throws FileNotFoundException, IOException, ClassNotFoundException { File f = new File("D:\\workspace\\EksamenSkiheis\\FILER\\fil.txt"); FileInputStream fis = new FileInputStream(f); ObjectInputStream ois = new ObjectInputStream(fis); første.neste = (Wrapper)ois.readObject(); ois.close(); } /* Alt.1: public void settInnKort(Kort k) { for(int i = 0; i < kortArray.length; i++) if(kortArray[i]==null) { kortArray[i] = k; return; } utvidArray(); settInnKort(k); // rekursiv metode } Alt 2: public void settInnKort(Kort k) { for(int i = 0; i < kortArray.length; i++) if(kortArray[i]==null) { kortArray[i] = k; return; } utvidArray(); for(int i = 0; i < kortArray.length; i++) if(kortArray[i]==null) { kortArray[i] = k; return; } } */ public Kort finnKort(int nr) { Wrapper løper = første; while(løper != null) { if(løper.item != null) { if(løper.item.getNr() != nr) { }else { return løper.item; } } løper = løper.neste; } return null; } public void fjernUgyldigeKort() { Wrapper løper = første; while(løper != null) { if(løper.item != null && !løper.item.gyldig()) { løper = løper.neste; }else { løper.forrige.neste = løper.neste; løper.neste.forrige = løper.forrige; løper = null; } } } public String inntjeningsInfo() { int sum = Klippekort.getSum() + Dagskort.getSum() + Årskort.getSum(); return "Det er hittil i sensongen solgt kort for kr." + sum + ".-\n" + "Av disse er det solgt \n" + Klippekort.getAntallSolgte() + " klippekort for tilsammen kr. " + Klippekort.getSum()+ ".-\n" + Dagskort.getAntallSolgte() + " dagskort for tilsammen kr. " + Dagskort.getSum() + ".-\n" + Årskort.getAntallSolgte() + " sesongkort for tilsammen kr. " + Årskort.getSum() + ".-"; } public boolean ladOppKort( int nr, int antKlipp ) { Kort k = finnKort( nr ); if ( k instanceof Klippekort ) { ( (Klippekort) k).ladOpp( antKlipp ); return true; } else return false; } }