Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Oving8;
- abstract class Tribune implements Comparable <Tribune> {
- private final String tribunenavn;
- private final int kapasitet;
- private final int pris;
- public Tribune(String tribunenavn, int kapasitet, int pris){
- this.tribunenavn = tribunenavn;
- this.kapasitet = kapasitet;
- this.pris = pris;
- }
- public String getTribunenavn(){
- return tribunenavn;
- }
- public int getKapasitet(){
- return kapasitet;
- }
- public int getPris(){
- return pris;
- }
- /*
- public int finnInntekt(){
- return getPris()*finnAntallSolgteBilletter();
- }*/
- public abstract int finnInntekt();
- public abstract int finnAntallSolgteBilletter();
- public abstract Billett[] kjøpBilletter(int antBill);
- public abstract Billett[] kjøpBilletter(String[] navn);
- /*
- public String toString(){
- String lol = "Navn: " + getTribunenavn() + " Kapasitet; " + getKapasitet() +" pris: " + getPris() + " Antall solgte billetter: " + finnAntallSolgteBilletter() + " inntekt : " + finnInntekt() + "\n";
- return lol;
- }*/
- public int compareTo(Tribune asd){
- return finnInntekt() - asd.finnInntekt();
- }
- public String toString(){
- String asd = "Navn: "+ tribunenavn + " Kapasitet " + kapasitet + " pris: " + pris + " antall solgt: " + finnAntallSolgteBilletter() + " inntekt: " + finnInntekt() + "\n";
- return asd;
- }
- }
- package Oving8;
- class Staa extends Tribune{
- private int antSolgteBilletter;
- public Staa(String tribunenavn, int kapasitet, int pris){
- super(tribunenavn, kapasitet, pris);
- antSolgteBilletter = 0;
- }
- private int ledigePlasser(){
- return getKapasitet()-antSolgteBilletter;
- }
- @Override
- public Billett[] kjøpBilletter(int antallBilletter){
- if(ledigePlasser()>=antallBilletter){
- Billett[] enBillett = new Billett[antallBilletter];
- for (int i = 0; i < enBillett.length; i++){
- enBillett[i] = new StaaplassBillett(getTribunenavn(), getPris());
- }
- antSolgteBilletter += antallBilletter;
- return enBillett;
- }
- return null;
- }
- @Override
- public Billett[] kjøpBilletter(String[] lol){
- return null;
- }
- public int finnInntekt(){
- return finnAntallSolgteBilletter()*getPris();
- }
- public int finnAntallSolgteBilletter(){
- return antSolgteBilletter;
- }
- public String toString(){
- String asd = "Kapasitet " +getKapasitet() + " pris: " + getPris() + " antall solgt: " + finnAntallSolgteBilletter() + " inntekt: " + finnInntekt() + "\n";
- return asd;
- }
- }
- package Oving8;
- class Sitte extends Tribune{
- private int [] antOpptatt; // tabellstørrelse: antall rader
- private int antRader;
- public Sitte(String tribunenavn, int kapasitet, int pris, int antRader){
- super(tribunenavn, kapasitet, pris);
- this.antRader = antRader;
- antOpptatt = new int[antRader];
- }
- public int getAntRader(){
- return antRader;
- }
- public int getAntPlasserPerRad(){
- return getKapasitet()/antRader;
- }
- @Override
- public int finnAntallSolgteBilletter(){
- int hjelp = 0;
- for(int i = 0;i<antOpptatt.length;i++){
- hjelp += antOpptatt[i];
- }
- return hjelp;
- }
- @Override
- public int finnInntekt(){
- return finnAntallSolgteBilletter()*getPris();
- }
- private int ledigRad(int antBill){
- int ledigePlasser;
- for(int i = 0;i<antOpptatt.length;i++){
- ledigePlasser = getAntPlasserPerRad()-antOpptatt[i];
- if(ledigePlasser>= antBill){
- return i;
- }
- }
- return -1;
- }
- @Override
- public Billett[] kjøpBilletter(int antallBilletter){
- if(antallBilletter == 0) return null; // nødvendig?
- int rad = ledigRad(antallBilletter);
- Billett[] enBillett = new Billett[antallBilletter];
- int startPlass = getAntPlasserPerRad()-antOpptatt[rad];
- if(rad >= 0){
- for (int i = 0; i < enBillett.length; i++){
- enBillett[i] = new SitteplassBillett(getTribunenavn(), getPris(), rad, startPlass);
- startPlass++;
- }
- antOpptatt[rad]+= antallBilletter;
- return enBillett;
- }
- return null;
- }
- @Override
- public Billett[] kjøpBilletter(String[] navn){
- return null;
- }
- }
- package Oving8;
- class VIP extends Sitte{
- private String[][] tilskuer; // tabellstørrelse: antall rader * antall plasser pr rad
- public VIP(String tribunenavn, int kapasitet, int pris, int antRader){
- super(tribunenavn, kapasitet, pris, antRader);
- int plasserPerRad = getKapasitet()/getAntRader();
- tilskuer = new String[antRader][plasserPerRad];
- }
- @Override
- public int finnAntallSolgteBilletter(){
- int hjelp = 0;
- for(int i = 0;i<tilskuer.length;i++){
- for(int j = 0;j<tilskuer[i].length;j++){
- if(tilskuer[i][j]!=null){
- hjelp++;
- }
- }
- }
- return hjelp;
- }
- private int plasserPerRad(){
- return getKapasitet()/getAntRader();
- }
- private int solgtPåRadd(int indeks){
- int hjelp=0;
- for(int i = 0; i < tilskuer[indeks].length;i++){
- if(tilskuer[indeks][i] != null){
- hjelp++;
- }
- }
- return hjelp;
- }
- private int ledigRadTilBillettAntall(int antBill){
- int ledigePlasser;
- for(int i = 0;i<antBill;i++){
- ledigePlasser = plasserPerRad()-solgtPåRadd(i);
- if(ledigePlasser>= antBill){
- return i;
- }
- }
- return -1;
- }
- @Override
- public Billett[] kjøpBilletter(String[] lol){
- int antBill = lol.length;
- Billett[] enBillett = new Billett[antBill];
- int rad = ledigRadTilBillettAntall(antBill);
- int startPlass = solgtPåRadd(rad);
- if(rad >= 0){
- for(int i = 0; i<enBillett.length;i++){
- enBillett[i] = new SitteplassBillett(getTribunenavn(), getPris(), rad, startPlass);
- tilskuer[rad][startPlass] = lol[i];
- startPlass++;
- }
- return enBillett;
- }
- return null;
- }
- @Override
- public Billett[] kjøpBilletter(int antallBilletter){
- return null;
- }
- /*
- @Override
- public int finnInntekt(){
- return getPris()*finnAntallSolgteBilletter();
- }*/
- }
Add Comment
Please, Sign In to add comment