import java.util.*;
import static javax.swing.JOptionPane.*;
//Finn antall ledige bord
//Finn antall bord opptatt
//Frigi bord som er ryddet
//Reserver bord
class Bord {
private int antallledige;
private int antallopptatt;
private int antallbord;
private String[] bordtabell;
public Bord (int antallbord) {
this.antallledige = antallledige;
this.antallopptatt = antallopptatt;
this.antallbord = antallbord;
String[] bordtabell = new String[antallbord];
}
public int finnAntallLedige() {
antallledige = antallbord - antallopptatt;
return antallledige;
}
public int finnAntallOpptatt() {
return antallopptatt;
}
public int finnAntallBord() {
return antallbord;
}
public boolean reserverBord(String navn, int antall) {
//kopierer bordtabellen
String[] kopi = new String[antallbord];
for(int i = 0; i < bordtabell.length; i++) {
kopi[i] = bordtabell[i];
}
if (antallledige >= antall) {
for (int i = 0; i < antall;i++) {
kopi[antallopptatt] = navn;
antallopptatt++;
}
bordtabell = kopi;
return true;
}
else return false;
}
public void ryddbord(int bordnr) {
bordtabell[bordnr] = null;
}
public String finnHvilkeReservert(String navn) {
String res = navn + " har reservert bord nr: ";
for (int i = 0; i < bordtabell.length; i++) {
if( bordtabell[i] == navn ) {
res += " " + i;
}
}
return res;
}
}//class
/*
Et objekt av klassen Restaurant skal ha kunnskap knyttet til restauranten, i dette tilfellet nøyer vi oss med navn og etableringsår. Objektet skal kunne svare på følgende henvendelser:
Finn navnet på restauranten
Sett et nytt navn på restauranten
Finn etableringsåret
Finn hvor gammel restauranten er
Finn antall ledige bord
Finn antall bord opptatt
Reserver bord
Finn hvilke bord en bestemt person har reservert
Frigi bord som er ryddet
*/
class Restaurant {
private String navn;
private int etablert;
private int antallbord;
Bord bord;
public Restaurant(String navn, int etablert, int antallbord) {
this.navn = navn;
this.etablert = etablert;
bord = new Bord(antallbord);
}
public String finnNavn() {
return navn;
}
public void settNavn(String nyttnavn) {
navn = nyttnavn;
}
public int finnEtabÅr(){
return etablert;
}
public int finnAlder(){
GregorianCalendar Dato = new GregorianCalendar();
int år = Dato.get(Calendar.YEAR);
int alder = år - finnEtabÅr();
return alder;
}
public int finnAntallLedigeBord() {
return bord.finnAntallLedige();
}
public int finnAntallOpptatteBord() {
return bord.finnAntallOpptatt();
}
public boolean reserverBord(String navn, int antall) {
if(bord.reserverBord(navn, antall) == true) {return true;}
else return false;
}
public String finnHvilkeReservert(String navn) {
return bord.finnHvilkeReservert(navn);
}
}//class Restaurant
class Oving2 {
public static void main(String[] args) {
Restaurant res = new Restaurant("Go'Biten", 1950, 10); //public Restaurant(String navn, int etablert, int antallbord)
String[] choice = {
"Restaurantens navn",
"Etablert",
"Alder",
"Antall ledige bord",
"Antall opptatte bord",
"Reserver bord","Rydd bord",
"Reservert på navn",
"Avslutt"
};
int valg = showOptionDialog(null,res.finnNavn(),"Velg Operasjon",0,PLAIN_MESSAGE,null,choice,choice[0]);
int check = 0;
do {
if (valg == 0) { showMessageDialog(null,"Navnet på restauranten er " + res.finnNavn() + "."); }
else if (valg == 1) { showMessageDialog(null,"Restauranten er etablert i " + res.finnEtabÅr() + ".");}
else if (valg == 2) { showMessageDialog(null,"Restauranten er " + res.finnAlder() + " år.");}
else if (valg == 3) { showMessageDialog(null,"Antall ledige bord " + res.finnAntallLedigeBord() + ".");}
else if (valg == 4) { showMessageDialog(null,"Antall opptatte bord " + res.finnAntallOpptatteBord() + ".");}
else if (valg == 5) { String q1 = showInputDialog("Navn på reservant: ");
String q2inn = showInputDialog("Antall bord: ");
int q2 = Integer.parseInt(q2inn);
if ( res.reserverBord(q1, q2) == true ) { showMessageDialog(null,"Bord reservert!"); }
else { showMessageDialog(null,"Bord ikke reservert :("); }
}
else if (valg == 6) { String q1 = showInputDialog("Navn på reservant: "); showMessageDialog(null, q1 + " har reservert: " + res.finnHvilkeReservert(q1) + ".");}
else { check = 0;}
} while (check != 1 || check < 1);
}
}//class Oving2