Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.*;
- public class Oblig32 {
- public static void main(String[] args) throws IOException
- {
- Utsyn s = new Utsyn("Hybeldata.txt");
- s.menylokke();
- }
- }
- class Student
- {
- int saldo;
- String navn;
- public Student(String navn, int s)
- {
- this.navn = navn;
- this.saldo = s;
- }
- public void nyttInnskudd(int n)
- {
- saldo += n;
- System.out.println("SALDO: " + saldo);
- }
- public String getnavn()
- {
- return this.navn;
- }
- public void oppdaterSaldo(int n)
- {
- this.saldo += n;
- }
- }
- class Hybel
- {
- Scanner innTast = new Scanner(System.in);
- Student leietager;
- boolean toppEtasje; // brukes for å gjøre leie høyere
- public boolean erLedig()
- {
- if(this.leietager.navn.equals("TOM HYBEL"))
- return true;
- else
- return false;
- }
- public boolean RegNyLeietager() {
- boolean utfort = false;
- if(this.erLedig()) // eksisterer ikke
- {
- System.out.println("SKRIV NAVN PA NY LEIER");
- String nyttNavn = "";
- nyttNavn= innTast.next();
- int forskudd = 15000;
- System.out.println("SALDO TIL STUDENTEN ER SATT TIL: " + forskudd);
- this.leietager = new Student(nyttNavn, forskudd);
- utfort = true;
- }
- return utfort;
- }
- }
- //----
- class Utsyn
- {
- private String filnavn;
- Hybel[][] hyblene = new Hybel[3][6];
- int husleiePenthouse = 6000; int husleieStandard = 5000;
- int kostnaderFellesrom = 1450; int kostnaderPerHybel = 1200;
- int flyttegebyr = 750; int torpedogebyr = 3000;
- String maaned;
- String aar;
- int totaltAntallMaaneder;
- int totalFortjeneste;
- Scanner inn = new Scanner(System.in);
- //Konstruktør
- public Utsyn(String filnavn) throws IOException {
- this.filnavn = filnavn;
- File fil = new File(filnavn);
- // File fil = new File(filnavn);
- if(fil.exists())
- {
- BufferedReader in = new BufferedReader(new FileReader(filnavn));
- FileReader filLeser = new FileReader(fil);
- int tegn;
- maaned = "";
- while( (tegn = in.read()) != ';')
- {
- maaned += (char)tegn;
- }
- aar = "";
- while( (tegn = in.read()) != ';')
- {
- aar += (char)tegn;
- }
- in.readLine(); // fordi vi driter i resten på øverste linje.
- totaltAntallMaaneder = 0;
- totalFortjeneste = 0;
- for(int i = 0; i < hyblene.length; i++)
- {
- for(int j = 0; j < hyblene[i].length; j++)
- {
- hyblene[i][j] = new Hybel();
- String brukeString = "";
- while( (tegn = in.read()) != ';')
- {
- brukeString += (char)tegn;
- }
- if(brukeString == "3")
- hyblene[i][j].toppEtasje = true;
- brukeString = "";
- while( (tegn = in.read()) != ';') // gi rom.
- {
- brukeString += (char)tegn;
- }
- brukeString = "";
- while( (tegn = in.read()) != ';') // gi hybelTom/ledig.
- {
- brukeString += (char)tegn;
- }
- hyblene[i][j].leietager = new Student(brukeString, j); // SE PÅ SENERE
- hyblene[i][j].leietager.navn = brukeString; // skal gi navn
- brukeString = "";
- while( (tegn = in.read()) != ';') // gi saldo
- {
- brukeString += (char)tegn;
- }
- hyblene[i][j].leietager.saldo = Integer.parseInt(brukeString);
- }
- }
- in.close();
- }
- }
- public void menylokke() {
- int kommando = -1;
- while(kommando != 0)
- {
- System.out.println();
- System.out.println("Skriv inn kommando"); // gidder ikke skrive inn hele greia
- kommando = inn.nextInt();
- switch(kommando)
- {
- case 0: System.exit(0); break;
- case 1: skrivOversikt(); break;
- case 2: registrerNyDude(); break;
- case 3: registrerNyBetaling(inn); break;
- case 4: registrerUtflytning(inn); break;
- default:
- System.out.println("Ugyldig valg. Prov igjen.");
- }
- }
- }
- private void registrerUtflytning(Scanner inn)
- {
- String navn;
- boolean p = false;
- System.out.println("Navn på student som ønsker å flytte ut: ");
- navn = inn.next();
- Hybel s = null;
- int etg = 0;
- int sum = 0;
- //litt dårlig kodet dobbel løkke. (Kan gjøres mye bedre)
- for(int i = 0; i < hyblene.length; i++)
- {
- for(int y = 0; y < hyblene[i].length; y++)
- {
- if(hyblene[i][y].leietager.navn.equals(navn))
- //hvis vi finner navnet i matrisen vet vi at personen eksisterer.
- {
- p = true;
- s = hyblene[i][y];
- etg = (i +1); // etasje går fra 1 - 3. i går fra 0 - 2
- }
- }
- }
- //Hvis vi fant en
- if(p)
- {
- //Må sjekke om det er nok på saldo til å betale den gjenverende måneden.
- if(etg == 3)
- {
- sum = 6000; //summen å betale for betale for top etg
- }
- //etg er mindre en 3.
- else
- {
- sum = 5000;
- }
- //Altså hvis det er mulig å betale summen..
- if(s.leietager.saldo > sum)
- {
- }
- }
- else
- {
- System.out.println("Beklager, fant ikke personen");
- }
- }
- private void registrerNyBetaling(Scanner inn)
- {
- int hybel;
- int etg;
- int belop;
- System.out.println("Venligs skriv inn Hybelnavn");
- System.out.println("forst skriv inn din ETG");
- etg = inn.nextInt();
- System.out.println("Skriv inn ditt hybelnummer");
- hybel = (int)(inn.next().charAt(0) - 'A');
- //Sjekker om hybelen er ledig (At noen faktisk bor der)
- if(!hyblene[etg - 1][hybel].erLedig())
- {
- System.out.println("Skriv inn onsket beløp");
- belop = inn.nextInt();
- hyblene[etg - 1][hybel].leietager.oppdaterSaldo(belop);
- System.out.println("Saldo nå er: " + hyblene[etg - 1][hybel].leietager.saldo);
- }
- else
- {
- System.out.println("Det bor ingen i den hybelen");
- }
- }
- private void registrerNyDude() {
- System.out.println("REGISTRER NY LEIETAGER PA LEDIG HYBEL");
- System.out.println("TAST INN ONSKET ETASJE(1-3)");
- int velgEtg = inn.nextInt();
- if(velgEtg > 9000)
- System.out.println("ITS OVER NINE THOUSAND!!!");
- if(velgEtg > 3 || velgEtg < 1)
- {
- System.out.println("DU ER DUM, jeg sa mellom 1 og 3");
- menylokke();
- }
- System.out.println("SKRIV ONSKET LEILIGHETSBOKSTAV (det er bare en bokstav...) (A - F).. bruk store bokstaver.. da slipper jeg a bruke toLowerCase() mange ganger");
- String ba = inn.next();
- int b = (int) (ba.charAt(0) - 'A');
- Hybel nyLeier;
- nyLeier = hyblene[velgEtg-1][b];
- if(nyLeier.RegNyLeietager())
- {
- System.out.println("NY DUDE REGISTRERT");
- System.out.println("DUDE BOR");
- if(velgEtg == 3)
- {
- nyLeier.leietager.oppdaterSaldo(-7000);
- }
- else
- nyLeier.leietager.oppdaterSaldo(-6000);
- System.out.println(velgEtg +" " + (char)(b+'A'));
- System.out.println("Navn: " + hyblene[velgEtg-1][b].leietager.navn);
- System.out.println("Saldo: "+hyblene[velgEtg-1][b].leietager.saldo);
- }
- else
- System.out.println("NY DUDE IKKE REGISTRERT");
- }
- private void skrivOversikt()
- {
- System.out.println("HER KOMMER EN OVERSIKT");
- for(int i = 0; i < hyblene.length; i++)
- {
- System.out.println();
- System.out.println("ETASJE :" + (i + 1) + "--------");
- System.out.println();
- for(int j = 0; j < hyblene[i].length; j++)
- {
- char rom = (char) ('A' + j);
- System.out.println ( (i+1) + "" + rom );
- if(!hyblene[i][j].erLedig())
- {
- System.out.println("NAVN PA EIER: " + hyblene[i][j].leietager.navn);
- System.out.println("SALDO PA EIER: " + hyblene[i][j].leietager.saldo);
- }
- else
- {
- System.out.println("ER LEDIG");
- System.out.println("SALDO : " + 0);
- }
- System.out.println();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement