Advertisement
polpoteu

JAVA Egz ObliczZamówienie

Mar 5th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. package egzamin2019a1;
  2.  
  3. import java.io.IOException;
  4. import java.io.RandomAccessFile;
  5.  
  6. public class Egzamin2019A1
  7. {
  8.  
  9. public static void main(String[] args)
  10. {
  11.  
  12. }
  13. static int obliczZamowienie(String nazwaPliku, String nazwaTowaru)
  14. {
  15. //deklaujemy wszystkie potrzebne zmienne
  16. String nazwaTowaruZPliku;
  17. int nrZamowienia, liczbaSztuk, cenaPoRabacie, liczbaSztukPoszukiwanegoTowaru = -1;
  18. double cena;
  19. long wskaznikPrzed, wskaznikPo;
  20. //tworzymy wylapywanie wyjatkow
  21. try(RandomAccessFile raf = new RandomAccessFile(nazwaPliku, "rw");) //otwieramy w bloku try plik danych
  22. {
  23. while(raf.getFilePointer() < raf.length()) //czytamy caly plik, dopoki wartosc wskaznika jest mniejsza niz dlugosc pliku
  24. {
  25. nrZamowienia = raf.readInt();
  26. nazwaTowaruZPliku = raf.readUTF();
  27. wskaznikPrzed = raf.getFilePointer();// miejsce do którego wrócimy by nadpisac cene jezeli bedzie rabat
  28. cena = raf.readDouble();
  29. liczbaSztuk = raf.readInt();
  30. wskaznikPo = raf.getFilePointer(); //po nadpisaniu ceny wracamy tutaj zeby odpowiednio ustawic pointer, aby przy nastepnym przejsciu petli odczytac paawidłowo 4 kolejne elementy
  31.  
  32. if(nazwaTowaruZPliku == nazwaTowaru)//jezeli ten towar jest tym szukamym (nazwa przeslana jako drugi argument funkcji)
  33. liczbaSztukPoszukiwanegoTowaru = liczbaSztuk;
  34. if(cena > 50 && liczbaSztuk >= 25) //jezeli drozsze od 50 i zamowiono chociaz 25 szt.
  35. {
  36. cenaPoRabacie = (int)(cena - cena*0.10);//okreslamy rabat
  37. raf.seek(wskaznikPrzed); //idziemy przed cene zeby ja nadpisac
  38. raf.writeInt(cenaPoRabacie);
  39. raf.seek(wskaznikPo);//idziemy za ostatni z czterech elementow
  40. }
  41. }
  42.  
  43. }
  44. catch(IOException e)
  45. {
  46. System.out.println(e.getMessage());
  47. }
  48. return liczbaSztukPoszukiwanegoTowaru;
  49. }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement