Advertisement
Guest User

Untitled

a guest
Feb 27th, 2015
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.44 KB | None | 0 0
  1. import java.io.Serializable;
  2.  
  3. /**
  4.  * Created by Eirik on 12.02.15.
  5.  */
  6. public abstract class Tribune implements Comparable<Tribune>, Serializable {
  7.     private final String tribunenavn;
  8.     private final int kapasitet;
  9.     private final int pris;
  10.  
  11.     public Tribune(String tribunenavn, int kapasitet, int pris) {
  12.         this.tribunenavn = tribunenavn;
  13.         this.kapasitet = kapasitet;
  14.         this.pris = pris;
  15.     }
  16.  
  17.     public String getTribunenavn() {
  18.         return tribunenavn;
  19.     }
  20.  
  21.     public int getKapasitet() {
  22.         return kapasitet;
  23.     }
  24.  
  25.     public int getPris() {
  26.         return pris;
  27.     }
  28.  
  29.     public abstract Billett[] kjøpBilletter(int antall);
  30.  
  31.     public abstract Billett[] kjøpBilletter(String[] kunder);
  32.  
  33.     public abstract int finnAntallSolgteBilletter();
  34.  
  35.     public int finnInntekt(){
  36.         return finnAntallSolgteBilletter()*getPris();
  37.     }
  38.  
  39.     public String toString() {
  40.         return "Navn: " + tribunenavn + "\nKap: " + kapasitet + "\nSolgte: " + finnAntallSolgteBilletter() + "\nInntekt: " + finnInntekt();
  41.     }
  42.  
  43.     public int compareTo(Tribune trib) {
  44.         if (this.finnInntekt() > trib.finnInntekt()){
  45.             return -1;
  46.         } else if (this.finnInntekt() == trib.finnInntekt()) {
  47.             return 0;
  48.         }
  49.         return 1;
  50.     }
  51. }
  52.  
  53.  
  54. class StaaTribune extends Tribune {
  55.     private int antSolgteBilletter;
  56.  
  57.     public StaaTribune(String tribunenavn, int kapasitet, int pris) {
  58.         super(tribunenavn, kapasitet, pris);
  59.         this.antSolgteBilletter = 0;
  60.     }
  61.  
  62.  
  63.     public Billett[] kjøpBilletter(int antall) {
  64.         if (antSolgteBilletter + antall > getKapasitet()) {
  65.             return null;
  66.         }
  67.         antSolgteBilletter += antall;
  68.         Billett[] billetter = new Billett[antall];
  69.         for (int i = 0; i < antall; i++) {
  70.             billetter[i] = new StaaplassBillett(getTribunenavn(), getPris());
  71.         }
  72.         return billetter;
  73.     }
  74.  
  75.     public Billett[] kjøpBilletter(String[] kunder) {
  76.         return kjøpBilletter(kunder.length);
  77.     }
  78.  
  79.     public int finnAntallSolgteBilletter() {
  80.         return antSolgteBilletter;
  81.     }
  82.  
  83.  
  84. }
  85.  
  86. class SitteTribune extends Tribune {
  87.     private int[] antOpptatt;
  88.  
  89.     public SitteTribune(String tribunenavn, int kapasitet, int pris, int rader) {
  90.         super(tribunenavn, kapasitet, pris);
  91.         this.antOpptatt = new int[rader];
  92.     }
  93.  
  94.     public int finnAntallSolgteBilletter() {
  95.         int solgte = 0;
  96.         for (int i = 0; i < antOpptatt.length; i++) {
  97.             solgte += antOpptatt[i];
  98.         }
  99.         return solgte;
  100.     }
  101.  
  102.     public Billett[] kjøpBilletter(int antall) {
  103.         if (antall + finnAntallSolgteBilletter() > getKapasitet()){
  104.             return null;
  105.         }
  106.         for (int i = 0; i < antOpptatt.length; i++) {
  107.             if (antOpptatt[i] + antall <= getKapasitet()/antOpptatt.length){
  108.                 Billett[] billetter = new Billett[antall];
  109.                 for (int j = 0; j < antall; j++) {
  110.                     billetter[j] = new SitteplassBillett(getTribunenavn(), getPris(), i, antOpptatt[i]);
  111.                     antOpptatt[i]++;
  112.                 }
  113.                 return billetter;
  114.             }
  115.         }
  116.         return null;
  117.     }
  118.  
  119.     public Billett[] kjøpBilletter(String[] kunder) {
  120.         return kjøpBilletter(kunder.length);
  121.     }
  122. }
  123.  
  124. class VIPTribune extends SitteTribune {
  125.     private String[][] tilskuer;
  126.  
  127.     public VIPTribune(String tribunenavn, int kapasitet, int pris, int rader) {
  128.         super(tribunenavn, kapasitet, pris, rader);
  129.         tilskuer = new String[rader][kapasitet/rader];
  130.     }
  131.  
  132.     public Billett[] kjøpBilletter(int antall) {
  133.         return null;
  134.     }
  135.  
  136.     public Billett[] kjøpBilletter(String[] kunder) {
  137.         if (kunder.length + finnAntallSolgteBilletter() > getKapasitet()){
  138.             return null;
  139.         }
  140.         Billett[] billetter = super.kjøpBilletter(kunder.length);          // Kjøper billetter med superklassemetoden
  141.         if (billetter != null) {                                    // Hvis det går (plass til alle på en rad / ikke fullt);
  142.             for (int i = 0; i < billetter.length; i++) {
  143.                 SitteplassBillett bill = (SitteplassBillett) billetter[i];
  144.                 tilskuer[bill.getRad()][bill.getPlass()] = kunder[i];       // Legg til kundenavn på rett rad og plass
  145.             }
  146.         }
  147.         return billetter;
  148.     }
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement