import easyIO.*;
class Oblig2 {
public static void main(String[] args) {
Olje ol = new Olje();
ol.ordreløkke();
System.out.println("--Avslutter programmet--");
}
}
class Olje {
String[][] eier = new String[15][20];
int[][] utvunnet = new int[15][20];
In tast = new In();
Out skjerm = new Out();
void ordreløkke() {
int ordre = 0;
while (ordre != 8) {
skrivMeny();
ordre = velgOperasjon();
switch (ordre) {
case 1: kjøpFelt(); break;
case 2: annulerKjøpAvFelt(); break;
case 3: lagKart(); break;
case 4: lagSelskapsoversikt(); break;
case 5: oppdaterOljeutvinning(); break;
case 6: finnMaksUtvinning(); break;
case 7: listeFeltUtenOljeutvinning(); break;
default: break;
}
}
System.out.println("**AVSLUTTNING PÅ RURITANIAS OLJESYSTEM**");
}
void skrivMeny() {
skjerm.outln("");
skjerm.outln("");
skjerm.outln("*** Velkommen til Ruritanias oljeoversikt ***");
skjerm.outln("");
skjerm.outln("Du har følgende valgmuligheter:");
skjerm.outln("1) Kjøp et felt");
skjerm.outln("2) Annuler kjøp av felt");
skjerm.outln("3) Lag kart");
skjerm.outln("4) Lag selskapsoversikt");
skjerm.outln("5) Oppdater oljeutvinning");
skjerm.outln("6) Finn maks utvinning");
skjerm.outln("7) Liste felt uten oljeutvinning");
skjerm.outln("8) Avslutt");
}
int velgOperasjon() {
skjerm.out("Velg en kommando: ");
int kommando = tast.inInt();
return kommando;
}
void kjøpFelt() {
skjerm.outln("");
skjerm.outln("**Kjøp et felt**");
skjerm.outln("");
skjerm.out("Velg felt: ");
int radnr = tast.inInt("F(,)");
int kolnr = tast.inInt("F(,)");
if (radnr >= 15 || kolnr >= 20) {
skjerm.outln("");
skjerm.outln("Feltet finnes ikke!");
skjerm.outln("Prøv på nytt");
return;
}
if (eier[radnr][kolnr] == null) {
skjerm.out("Fyll inn oljeselskapets navn: ");
eier[radnr][kolnr] = tast.inLine();
skjerm.outln("");
skjerm.outln("***********************************");
skjerm.outln("");
skjerm.outln(" Feltet " + "F(" + radnr + "," + kolnr + ")" + " selges til " + eier[radnr][kolnr]);
skjerm.outln("");
} else{
skjerm.outln("");
skjerm.outln("***********************************");
skjerm.outln("");
skjerm.outln("Feltet er solgt");
skjerm.outln("");
skjerm.outln("Prøv igjen");
}
}
void annulerKjøpAvFelt() {
skjerm.outln("");
skjerm.outln("**Annuler kjøp av felt**");
skjerm.outln("");
skjerm.out("Velg felt som skal annuleres: ");
int radnr = tast.inInt("F(,)");
int kolnr = tast.inInt("F(,)");
if (radnr >= 15 || kolnr >= 20) {
skjerm.outln("");
skjerm.outln("Feltet finnes ikke!");
skjerm.outln("Prøv på nytt");
return;
}
skjerm.out("Hva er navnet på selskapet som skal annuleres: ");
String selskap = tast.inLine();
if (eier != null && eier[radnr][kolnr] != null && eier[radnr][kolnr].equals(selskap)) {
eier[radnr][kolnr] = null;
skjerm.outln("");
skjerm.outln("***********************************");
skjerm.outln("");
skjerm.out("Feltet til " + selskap + " er nå annulert!");
} else{
skjerm.outln("");
skjerm.outln("***********************************");
skjerm.outln("");
skjerm.outln("!!!Det har oppstått en feil!!!");
skjerm.outln("Enten så tilhører ikke feltet deg");
skjerm.outln("Eller så er feltet uten eier");
skjerm.outln("");
skjerm.outln("Prøv igjen");
}
}
void lagKart() {
skjerm.outln("");
skjerm.outln("**Felter med 'X' er opptatt**");
skjerm.outln("");
for (int i=0; i<eier[0].length; i++) {
skjerm.out(i, 3);
}
for (int j=0; j<eier.length; j++) {
skjerm.out ("\n" + j, 3);
for (int k=0; k<eier[0].length; k++) {
if (eier[j][k] != null) {
skjerm.out("X", 3);
} else{
skjerm.out(".", 3);
}
}
}
}
void lagSelskapsoversikt() {
}
void oppdaterOljeutvinning() {
skjerm.outln("");
skjerm.outln("**Oppdater Oljeutvinning**");
skjerm.outln("");
skjerm.out("Velg felt: ");
int radnr = tast.inInt("F(,)");
int kolnr = tast.inInt("F(,)");
skjerm.out("Navnet på selskapet feltet tilhører: ");
String selskap = tast.inLine();
if (eier[radnr][kolnr] == null) {
skjerm.outln("");
skjerm.outln("Feltet har ingen eier!");
skjerm.outln("Prøv igjen");
return;
}
if (!eier[radnr][kolnr].equals(selskap)) {
skjerm.outln("");
skjerm.outln("Feltet tilhører ikke det selskapet!");
skjerm.outln("Prøv igjen");
return;
} else{
skjerm.outln("");
skjerm.outln("Hvor mange fat olje har dette feltet utvunnet \ni løpet av de siste 3 månedene: ");
int olje = tast.inInt();
utvunnet[radnr][kolnr] = utvunnet[radnr][kolnr] + olje;
skjerm.outln("");
skjerm.outln("");
skjerm.out("Det har til nå blitt utvunnet " + utvunnet[radnr][kolnr] + " fat olje på felt F(" + radnr + "," + kolnr + ") som tilhører " + eier[radnr][kolnr]);
}
}
void finnMaksUtvinning() {
skjerm.outln("");
skjerm.outln("**Maks oljeutvinning**");
skjerm.outln("");
int maks = utvunnet[0][0];
int k = 0;
int l = 0;
for (int i=1; i<utvunnet.length; i++) {
for (int j=1; j<utvunnet[0].length; j++) {
if (utvunnet[i][j] > maks) {
maks = utvunnet[i][j];
k = i;
l = j;
}
}
}
if (eier[k][l] == null) {
skjerm.out("Ingen felter har rapportert noe utvinning!");
} else{
skjerm.out(eier[k][l] + " har utvunnet " + utvunnet[k][l] + " fat olje på felt F(" + k + "," + l + ")");
}
}
void listeFeltUtenOljeutvinning() {
skjerm.outln("");
skjerm.outln("**Felter uten oljeutvinning**");
skjerm.outln("");
for (int i=0; i<utvunnet.length; i++) {
for (int j=0; j<utvunnet[0].length; j++) {
if (utvunnet[i][j] == 0 && eier[i][j] != null) {
skjerm.outln("F( " + i + "," + j + ") " + eier[i][j]);
}
}
}
}
}