Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.41 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3.  
  4. class Test {
  5.  
  6. public static int znajdz(String nazwisko, Pracownik[] k, int ile)
  7. throws Exception {
  8. // znajduje miejsce danego pracownika na liscie k :
  9. int n = 0;
  10. while (n<ile &&
  11. ! k[n].getNazwisko().equals(nazwisko)
  12. ) n++;
  13. if (n == ile) throw new Exception("nie ma takiego");
  14. else return n;
  15. }
  16.  
  17. public static void main(String[] args) throws Exception {
  18. // kartoteki, pracownikow godzinowych i pracownikow akordowych:
  19. int ilePracGodz = 0;
  20. PracownikGodzinowy[] kartGodz = new PracownikGodzinowy[100];
  21. int ilePracAkord = 0;
  22. PracownikAkordowy[] kartAkord = new PracownikAkordowy[100];
  23.  
  24. Scanner sc = new Scanner(System.in);
  25. String nazwisko; char znak; double praca, zarobek;
  26. Boolean koniec = false; int n;
  27.  
  28. System.out.println("\n KARTOTEKA OSOBOWA");
  29.  
  30. while (!koniec) {
  31. System.out.println("\n -----------------------------");
  32. System.out.println(" 0. zakoncz");
  33. System.out.println(" 1. nowy pracownik");
  34. System.out.println(" 2. przepracowal");
  35. System.out.println(" 3. zarobki pracownika");
  36.  
  37. System.out.print("\n WYBOR OPCJI: ");
  38. int wybor = sc.nextInt();
  39. System.out.println();
  40.  
  41. switch (wybor) {
  42. case 0: koniec=true; break;
  43. case 1:
  44. // wprowadzanie nowego pracownika do odpowiedniej kartoteki:
  45. System.out.print(" Nazwisko nowego pracownika? ");
  46. sc.nextLine();
  47. nazwisko = sc.nextLine();
  48. System.out.print(" Godzinowy (G) czy akordowy (A)? ");
  49. znak = (char)System.in.read(); sc.nextLine();
  50. if (znak == 'G' || znak == 'g')
  51. if (ilePracGodz == 100)
  52. throw new Exception("Brak miejsca");
  53. else {
  54. kartGodz[ilePracGodz] =
  55. new PracownikGodzinowy(nazwisko);
  56. ilePracGodz++;
  57. }
  58. else
  59. if (ilePracAkord == 100)
  60. throw new Exception("Brak miejsca");
  61. else {
  62. kartAkord[ilePracAkord] =
  63. new PracownikAkordowy(nazwisko);
  64. ilePracAkord++;
  65. }
  66. break;
  67. case 2:
  68. // zapisywanie wypracowanego zarobku:
  69. System.out.print(" Nazwisko pracownika? ");
  70. sc.nextLine();
  71. nazwisko = sc.nextLine();
  72. System.out.print(" Ile przepracowal? ");
  73. praca = sc.nextDouble();
  74. try {
  75. n = znajdz(nazwisko, kartGodz, ilePracGodz);
  76. kartGodz[n].nowyZarobek(
  77. kartGodz[n].wyliczZarobek(praca)
  78. );
  79. } catch (Exception e) {
  80. n = znajdz(nazwisko, kartAkord, ilePracAkord);
  81. kartAkord[n].nowyZarobek(
  82. kartAkord[n].wyliczZarobek(praca)
  83. );
  84. }
  85. break;
  86. case 3:
  87. // drukowanie dotychczasowych zarobkow pracownika:
  88. System.out.print(" Nazwisko pracownika? ");
  89. sc.nextLine();
  90. nazwisko = sc.nextLine();
  91. try {
  92. n = znajdz(nazwisko, kartGodz, ilePracGodz);
  93. zarobek = kartGodz[n].getDotychczasoweZarobki();
  94. } catch (Exception e) {
  95. n = znajdz(nazwisko, kartAkord, ilePracAkord);
  96. zarobek = kartAkord[n].getDotychczasoweZarobki();
  97. }
  98. System.out.println(
  99. " " + nazwisko + " zarobil dotad " + zarobek
  100. );
  101. break;
  102. default:
  103. System.out.println(" ZLY WYBOR OPCJI");
  104. break;
  105. }
  106. }
  107. System.out.println(" -----------------------------");
  108. System.out.println("\n DZIEKUJE.\n");
  109. }
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement