Guest User

Untitled

a guest
Jun 20th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.18 KB | None | 0 0
  1. package Oving8;
  2.  
  3. abstract class Tribune implements Comparable <Tribune> {
  4.  private final String tribunenavn;
  5.  private final int kapasitet;
  6.  private final int pris;
  7.  
  8.  
  9.  public Tribune(String tribunenavn, int kapasitet, int pris){
  10.   this.tribunenavn = tribunenavn;
  11.   this.kapasitet = kapasitet;
  12.   this.pris = pris;
  13.  }
  14.  
  15.  public String getTribunenavn(){
  16.      return tribunenavn;
  17.  }
  18.  
  19.  public int getKapasitet(){
  20.      return kapasitet;
  21.  }
  22.  
  23.  public int getPris(){
  24.      return pris;
  25.  }
  26.  /*
  27.  public int finnInntekt(){
  28.    return getPris()*finnAntallSolgteBilletter();
  29.  }*/
  30.  public abstract int finnInntekt();
  31.  
  32.  public abstract int finnAntallSolgteBilletter();
  33.  
  34.  public abstract Billett[] kjøpBilletter(int antBill);
  35.  
  36.  public abstract Billett[] kjøpBilletter(String[] navn);
  37.  
  38.  /*
  39.  public String toString(){
  40.    String lol = "Navn: " + getTribunenavn() + " Kapasitet; " + getKapasitet() +" pris: " + getPris() + " Antall solgte billetter: " + finnAntallSolgteBilletter() + " inntekt : " + finnInntekt() + "\n";
  41.    return lol;
  42.  }*/
  43.  
  44.  public int compareTo(Tribune asd){
  45.    return finnInntekt() - asd.finnInntekt();
  46.  }
  47.  
  48.  public String toString(){
  49.     String asd = "Navn: "+ tribunenavn + " Kapasitet " + kapasitet + " pris: " + pris + " antall solgt: " + finnAntallSolgteBilletter() + " inntekt: " + finnInntekt() + "\n";
  50.     return asd;
  51.    
  52.   }
  53.  
  54. }
  55.  
  56. package Oving8;
  57.  
  58. class Staa extends Tribune{
  59.   private int antSolgteBilletter;
  60.  
  61.   public Staa(String tribunenavn, int kapasitet, int pris){
  62.      super(tribunenavn, kapasitet, pris);
  63.      antSolgteBilletter = 0;
  64.   }
  65.  
  66.   private int ledigePlasser(){
  67.     return getKapasitet()-antSolgteBilletter;
  68.   }
  69.  
  70.   @Override
  71.   public Billett[] kjøpBilletter(int antallBilletter){
  72.     if(ledigePlasser()>=antallBilletter){
  73.       Billett[] enBillett = new Billett[antallBilletter];
  74.       for (int i = 0; i < enBillett.length; i++){
  75.         enBillett[i] = new StaaplassBillett(getTribunenavn(), getPris());
  76.       }
  77.       antSolgteBilletter += antallBilletter;
  78.       return enBillett;
  79.     }
  80.     return null;
  81.     }
  82.  
  83.   @Override
  84.   public Billett[] kjøpBilletter(String[] lol){
  85.     return null;
  86.   }
  87.  
  88.  
  89.   public int finnInntekt(){
  90.     return finnAntallSolgteBilletter()*getPris();
  91.   }
  92.  
  93.   public int finnAntallSolgteBilletter(){
  94.      return antSolgteBilletter;
  95.   }
  96.  
  97.   public String toString(){
  98.     String asd = "Kapasitet " +getKapasitet() + " pris: " + getPris() + " antall solgt: " + finnAntallSolgteBilletter() + " inntekt: " + finnInntekt() + "\n";
  99.     return asd;
  100.    
  101.   }
  102. }
  103. package Oving8;
  104.  
  105. class Sitte extends Tribune{
  106.   private int [] antOpptatt;  // tabellstørrelse: antall rader
  107.  
  108.   private int antRader;
  109.  
  110.  
  111.  
  112.   public Sitte(String tribunenavn, int kapasitet, int pris, int antRader){
  113.      super(tribunenavn, kapasitet, pris);
  114.      this.antRader = antRader;
  115.      
  116.      antOpptatt = new int[antRader];
  117.   }
  118.  
  119.   public int getAntRader(){
  120.     return antRader;
  121.   }
  122.  
  123.   public int getAntPlasserPerRad(){
  124.     return getKapasitet()/antRader;
  125.   }
  126.  
  127.   @Override
  128.   public int finnAntallSolgteBilletter(){
  129.     int hjelp = 0;
  130.     for(int i = 0;i<antOpptatt.length;i++){
  131.       hjelp += antOpptatt[i];
  132.     }
  133.     return hjelp;
  134.   }
  135.  
  136.   @Override
  137.   public int finnInntekt(){
  138.     return finnAntallSolgteBilletter()*getPris();
  139.   }
  140.  
  141.   private int ledigRad(int antBill){
  142.     int ledigePlasser;
  143.     for(int i = 0;i<antOpptatt.length;i++){
  144.       ledigePlasser = getAntPlasserPerRad()-antOpptatt[i];
  145.       if(ledigePlasser>= antBill){
  146.         return i;
  147.       }
  148.     }
  149.     return -1;
  150.   }
  151.  
  152.   @Override
  153.    public Billett[] kjøpBilletter(int antallBilletter){
  154.      if(antallBilletter == 0) return null; // nødvendig?
  155.      int rad = ledigRad(antallBilletter);
  156.      Billett[] enBillett = new Billett[antallBilletter];
  157.      int startPlass = getAntPlasserPerRad()-antOpptatt[rad];
  158.      if(rad >= 0){      
  159.        for (int i = 0; i < enBillett.length; i++){
  160.        enBillett[i] = new SitteplassBillett(getTribunenavn(), getPris(), rad, startPlass);
  161.        startPlass++;
  162.       }
  163.       antOpptatt[rad]+= antallBilletter;
  164.       return enBillett;
  165.     }
  166.     return null;
  167.     }
  168.  
  169.  
  170.  
  171.   @Override
  172.   public Billett[] kjøpBilletter(String[] navn){
  173.     return null;
  174.   }
  175.  
  176.  
  177. }
  178.  
  179. package Oving8;
  180.  
  181. class VIP extends Sitte{
  182.   private String[][] tilskuer; // tabellstørrelse: antall rader * antall plasser pr rad
  183.  
  184.   public VIP(String tribunenavn, int kapasitet, int pris, int antRader){
  185.     super(tribunenavn, kapasitet, pris, antRader);
  186.     int plasserPerRad = getKapasitet()/getAntRader();
  187.     tilskuer = new String[antRader][plasserPerRad];
  188.   }
  189.  
  190.   @Override
  191.   public int finnAntallSolgteBilletter(){
  192.     int hjelp = 0;
  193.     for(int i = 0;i<tilskuer.length;i++){
  194.       for(int j = 0;j<tilskuer[i].length;j++){
  195.         if(tilskuer[i][j]!=null){
  196.           hjelp++;
  197.         }
  198.       }
  199.     }
  200.     return hjelp;
  201.   }
  202.  
  203.   private int plasserPerRad(){
  204.     return getKapasitet()/getAntRader();
  205.   }
  206.  
  207.   private int solgtPåRadd(int indeks){
  208.     int hjelp=0;
  209.     for(int i = 0; i < tilskuer[indeks].length;i++){
  210.       if(tilskuer[indeks][i] != null){
  211.         hjelp++;
  212.       }
  213.     }
  214.     return hjelp;
  215.   }
  216.  
  217.   private int ledigRadTilBillettAntall(int antBill){
  218.     int ledigePlasser;
  219.     for(int i = 0;i<antBill;i++){
  220.       ledigePlasser = plasserPerRad()-solgtPåRadd(i);
  221.       if(ledigePlasser>= antBill){
  222.         return i;
  223.       }
  224.     }
  225.     return -1;
  226.   }
  227.  
  228.  @Override
  229.   public Billett[] kjøpBilletter(String[] lol){
  230.     int antBill = lol.length;
  231.     Billett[] enBillett = new Billett[antBill];
  232.     int rad = ledigRadTilBillettAntall(antBill);
  233.     int startPlass = solgtPåRadd(rad);
  234.     if(rad >= 0){
  235.       for(int i = 0; i<enBillett.length;i++){
  236.         enBillett[i] = new SitteplassBillett(getTribunenavn(), getPris(), rad, startPlass);
  237.         tilskuer[rad][startPlass] = lol[i];
  238.         startPlass++;
  239.       }
  240.       return enBillett;
  241.     }
  242.     return null;
  243.   }
  244.  
  245.   @Override
  246.    public Billett[] kjøpBilletter(int antallBilletter){
  247.     return null;
  248.     }
  249.   /*
  250.   @Override
  251.   public int finnInntekt(){
  252.     return getPris()*finnAntallSolgteBilletter();
  253.   }*/
  254. }
Add Comment
Please, Sign In to add comment