Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.55 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.*;
  3.  
  4. public class Oblig32 {
  5.  
  6. public static void main(String[] args) throws IOException
  7. {
  8. Utsyn s = new Utsyn("Hybeldata.txt");
  9. s.menylokke();
  10. }
  11. }
  12.  
  13. class Student
  14. {
  15. int saldo;
  16. String navn;
  17.  
  18. public Student(String navn, int s)
  19. {
  20. this.navn = navn;
  21. this.saldo = s;
  22. }
  23. public void nyttInnskudd(int n)
  24. {
  25. saldo += n;
  26. System.out.println("SALDO: " + saldo);
  27. }
  28. public String getnavn()
  29. {
  30. return this.navn;
  31. }
  32. public void oppdaterSaldo(int n)
  33. {
  34. this.saldo += n;
  35. }
  36.  
  37. }
  38.  
  39. class Hybel
  40. {
  41. Scanner innTast = new Scanner(System.in);
  42. Student leietager;
  43. boolean toppEtasje; // brukes for å gjøre leie høyere
  44.  
  45. public boolean erLedig()
  46. {
  47. if(this.leietager.navn.equals("TOM HYBEL"))
  48. return true;
  49. else
  50. return false;
  51. }
  52. public boolean RegNyLeietager() {
  53.  
  54. boolean utfort = false;
  55. if(this.erLedig()) // eksisterer ikke
  56. {
  57. System.out.println("SKRIV NAVN PA NY LEIER");
  58. String nyttNavn = "";
  59. nyttNavn= innTast.next();
  60. int forskudd = 15000;
  61. System.out.println("SALDO TIL STUDENTEN ER SATT TIL: " + forskudd);
  62. this.leietager = new Student(nyttNavn, forskudd);
  63. utfort = true;
  64. }
  65. return utfort;
  66. }
  67. }
  68.  
  69. //----
  70. class Utsyn
  71.  
  72. {
  73. private String filnavn;
  74. Hybel[][] hyblene = new Hybel[3][6];
  75.  
  76. int husleiePenthouse = 6000; int husleieStandard = 5000;
  77. int kostnaderFellesrom = 1450; int kostnaderPerHybel = 1200;
  78. int flyttegebyr = 750; int torpedogebyr = 3000;
  79.  
  80. String maaned;
  81. String aar;
  82.  
  83. int totaltAntallMaaneder;
  84. int totalFortjeneste;
  85.  
  86. Scanner inn = new Scanner(System.in);
  87.  
  88.  
  89. //Konstruktør
  90. public Utsyn(String filnavn) throws IOException {
  91. this.filnavn = filnavn;
  92.  
  93. File fil = new File(filnavn);
  94.  
  95. // File fil = new File(filnavn);
  96.  
  97. if(fil.exists())
  98. {
  99.  
  100. BufferedReader in = new BufferedReader(new FileReader(filnavn));
  101. FileReader filLeser = new FileReader(fil);
  102.  
  103. int tegn;
  104.  
  105. maaned = "";
  106. while( (tegn = in.read()) != ';')
  107. {
  108. maaned += (char)tegn;
  109. }
  110.  
  111.  
  112. aar = "";
  113. while( (tegn = in.read()) != ';')
  114. {
  115. aar += (char)tegn;
  116. }
  117.  
  118. in.readLine(); // fordi vi driter i resten på øverste linje.
  119. totaltAntallMaaneder = 0;
  120. totalFortjeneste = 0;
  121.  
  122. for(int i = 0; i < hyblene.length; i++)
  123. {
  124. for(int j = 0; j < hyblene[i].length; j++)
  125. {
  126. hyblene[i][j] = new Hybel();
  127. String brukeString = "";
  128. while( (tegn = in.read()) != ';')
  129. {
  130. brukeString += (char)tegn;
  131. }
  132.  
  133. if(brukeString == "3")
  134. hyblene[i][j].toppEtasje = true;
  135.  
  136. brukeString = "";
  137. while( (tegn = in.read()) != ';') // gi rom.
  138. {
  139. brukeString += (char)tegn;
  140. }
  141. brukeString = "";
  142. while( (tegn = in.read()) != ';') // gi hybelTom/ledig.
  143. {
  144. brukeString += (char)tegn;
  145. }
  146.  
  147. hyblene[i][j].leietager = new Student(brukeString, j); // SE PÅ SENERE
  148. hyblene[i][j].leietager.navn = brukeString; // skal gi navn
  149.  
  150. brukeString = "";
  151. while( (tegn = in.read()) != ';') // gi saldo
  152. {
  153. brukeString += (char)tegn;
  154. }
  155.  
  156. hyblene[i][j].leietager.saldo = Integer.parseInt(brukeString);
  157.  
  158. }
  159. }
  160. in.close();
  161. }
  162. }
  163.  
  164.  
  165. public void menylokke() {
  166. int kommando = -1;
  167.  
  168. while(kommando != 0)
  169. {
  170. System.out.println();
  171. System.out.println("Skriv inn kommando"); // gidder ikke skrive inn hele greia
  172. kommando = inn.nextInt();
  173. switch(kommando)
  174. {
  175. case 0: System.exit(0); break;
  176. case 1: skrivOversikt(); break;
  177. case 2: registrerNyDude(); break;
  178. case 3: registrerNyBetaling(inn); break;
  179. case 4: registrerUtflytning(inn); break;
  180. default:
  181. System.out.println("Ugyldig valg. Prov igjen.");
  182. }
  183.  
  184. }
  185.  
  186. }
  187. private void registrerUtflytning(Scanner inn)
  188. {
  189. String navn;
  190. boolean p = false;
  191. System.out.println("Navn på student som ønsker å flytte ut: ");
  192. navn = inn.next();
  193. Hybel s = null;
  194. int etg = 0;
  195. int sum = 0;
  196.  
  197. //litt dårlig kodet dobbel løkke. (Kan gjøres mye bedre)
  198. for(int i = 0; i < hyblene.length; i++)
  199. {
  200. for(int y = 0; y < hyblene[i].length; y++)
  201. {
  202. if(hyblene[i][y].leietager.navn.equals(navn))
  203. //hvis vi finner navnet i matrisen vet vi at personen eksisterer.
  204. {
  205. p = true;
  206. s = hyblene[i][y];
  207. etg = (i +1); // etasje går fra 1 - 3. i går fra 0 - 2
  208. }
  209. }
  210. }
  211. //Hvis vi fant en
  212. if(p)
  213. {
  214. //Må sjekke om det er nok på saldo til å betale den gjenverende måneden.
  215. if(etg == 3)
  216. {
  217. sum = 6000; //summen å betale for betale for top etg
  218. }
  219. //etg er mindre en 3.
  220. else
  221. {
  222. sum = 5000;
  223. }
  224.  
  225. //Altså hvis det er mulig å betale summen..
  226. if(s.leietager.saldo > sum)
  227. {
  228.  
  229. }
  230.  
  231. }
  232. else
  233. {
  234. System.out.println("Beklager, fant ikke personen");
  235. }
  236.  
  237. }
  238. private void registrerNyBetaling(Scanner inn)
  239. {
  240. int hybel;
  241. int etg;
  242. int belop;
  243. System.out.println("Venligs skriv inn Hybelnavn");
  244. System.out.println("forst skriv inn din ETG");
  245. etg = inn.nextInt();
  246. System.out.println("Skriv inn ditt hybelnummer");
  247. hybel = (int)(inn.next().charAt(0) - 'A');
  248.  
  249.  
  250. //Sjekker om hybelen er ledig (At noen faktisk bor der)
  251. if(!hyblene[etg - 1][hybel].erLedig())
  252. {
  253. System.out.println("Skriv inn onsket beløp");
  254. belop = inn.nextInt();
  255. hyblene[etg - 1][hybel].leietager.oppdaterSaldo(belop);
  256. System.out.println("Saldo nå er: " + hyblene[etg - 1][hybel].leietager.saldo);
  257. }
  258. else
  259. {
  260. System.out.println("Det bor ingen i den hybelen");
  261. }
  262.  
  263. }
  264.  
  265. private void registrerNyDude() {
  266. System.out.println("REGISTRER NY LEIETAGER PA LEDIG HYBEL");
  267. System.out.println("TAST INN ONSKET ETASJE(1-3)");
  268. int velgEtg = inn.nextInt();
  269. if(velgEtg > 9000)
  270. System.out.println("ITS OVER NINE THOUSAND!!!");
  271. if(velgEtg > 3 || velgEtg < 1)
  272. {
  273. System.out.println("DU ER DUM, jeg sa mellom 1 og 3");
  274. menylokke();
  275. }
  276. System.out.println("SKRIV ONSKET LEILIGHETSBOKSTAV (det er bare en bokstav...) (A - F).. bruk store bokstaver.. da slipper jeg a bruke toLowerCase() mange ganger");
  277.  
  278. String ba = inn.next();
  279. int b = (int) (ba.charAt(0) - 'A');
  280.  
  281. Hybel nyLeier;
  282.  
  283. nyLeier = hyblene[velgEtg-1][b];
  284.  
  285. if(nyLeier.RegNyLeietager())
  286. {
  287. System.out.println("NY DUDE REGISTRERT");
  288. System.out.println("DUDE BOR");
  289. if(velgEtg == 3)
  290. {
  291. nyLeier.leietager.oppdaterSaldo(-7000);
  292. }
  293. else
  294. nyLeier.leietager.oppdaterSaldo(-6000);
  295.  
  296. System.out.println(velgEtg +" " + (char)(b+'A'));
  297. System.out.println("Navn: " + hyblene[velgEtg-1][b].leietager.navn);
  298. System.out.println("Saldo: "+hyblene[velgEtg-1][b].leietager.saldo);
  299. }
  300. else
  301. System.out.println("NY DUDE IKKE REGISTRERT");
  302. }
  303.  
  304. private void skrivOversikt()
  305. {
  306. System.out.println("HER KOMMER EN OVERSIKT");
  307. for(int i = 0; i < hyblene.length; i++)
  308. {
  309. System.out.println();
  310. System.out.println("ETASJE :" + (i + 1) + "--------");
  311. System.out.println();
  312.  
  313. for(int j = 0; j < hyblene[i].length; j++)
  314. {
  315.  
  316. char rom = (char) ('A' + j);
  317. System.out.println ( (i+1) + "" + rom );
  318.  
  319.  
  320.  
  321. if(!hyblene[i][j].erLedig())
  322. {
  323. System.out.println("NAVN PA EIER: " + hyblene[i][j].leietager.navn);
  324. System.out.println("SALDO PA EIER: " + hyblene[i][j].leietager.saldo);
  325. }
  326. else
  327. {
  328. System.out.println("ER LEDIG");
  329. System.out.println("SALDO : " + 0);
  330. }
  331. System.out.println();
  332. }
  333. }
  334. }
  335.  
  336. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement