Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- class Test {
- public static int znajdz(String nazwisko, Pracownik[] k, int ile)
- throws Exception {
- // znajduje miejsce danego pracownika na liscie k :
- int n = 0;
- while (n<ile &&
- ! k[n].getNazwisko().equals(nazwisko)
- ) n++;
- if (n == ile) throw new Exception("nie ma takiego");
- else return n;
- }
- public static void main(String[] args) throws Exception {
- // kartoteki, pracownikow godzinowych i pracownikow akordowych:
- int ilePracGodz = 0;
- PracownikGodzinowy[] kartGodz = new PracownikGodzinowy[100];
- int ilePracAkord = 0;
- PracownikAkordowy[] kartAkord = new PracownikAkordowy[100];
- Scanner sc = new Scanner(System.in);
- String nazwisko; char znak; double praca, zarobek;
- Boolean koniec = false; int n;
- System.out.println("\n KARTOTEKA OSOBOWA");
- while (!koniec) {
- System.out.println("\n -----------------------------");
- System.out.println(" 0. zakoncz");
- System.out.println(" 1. nowy pracownik");
- System.out.println(" 2. przepracowal");
- System.out.println(" 3. zarobki pracownika");
- System.out.print("\n WYBOR OPCJI: ");
- int wybor = sc.nextInt();
- System.out.println();
- switch (wybor) {
- case 0: koniec=true; break;
- case 1:
- // wprowadzanie nowego pracownika do odpowiedniej kartoteki:
- System.out.print(" Nazwisko nowego pracownika? ");
- sc.nextLine();
- nazwisko = sc.nextLine();
- System.out.print(" Godzinowy (G) czy akordowy (A)? ");
- znak = (char)System.in.read(); sc.nextLine();
- if (znak == 'G' || znak == 'g')
- if (ilePracGodz == 100)
- throw new Exception("Brak miejsca");
- else {
- kartGodz[ilePracGodz] =
- new PracownikGodzinowy(nazwisko);
- ilePracGodz++;
- }
- else
- if (ilePracAkord == 100)
- throw new Exception("Brak miejsca");
- else {
- kartAkord[ilePracAkord] =
- new PracownikAkordowy(nazwisko);
- ilePracAkord++;
- }
- break;
- case 2:
- // zapisywanie wypracowanego zarobku:
- System.out.print(" Nazwisko pracownika? ");
- sc.nextLine();
- nazwisko = sc.nextLine();
- System.out.print(" Ile przepracowal? ");
- praca = sc.nextDouble();
- try {
- n = znajdz(nazwisko, kartGodz, ilePracGodz);
- kartGodz[n].nowyZarobek(
- kartGodz[n].wyliczZarobek(praca)
- );
- } catch (Exception e) {
- n = znajdz(nazwisko, kartAkord, ilePracAkord);
- kartAkord[n].nowyZarobek(
- kartAkord[n].wyliczZarobek(praca)
- );
- }
- break;
- case 3:
- // drukowanie dotychczasowych zarobkow pracownika:
- System.out.print(" Nazwisko pracownika? ");
- sc.nextLine();
- nazwisko = sc.nextLine();
- try {
- n = znajdz(nazwisko, kartGodz, ilePracGodz);
- zarobek = kartGodz[n].getDotychczasoweZarobki();
- } catch (Exception e) {
- n = znajdz(nazwisko, kartAkord, ilePracAkord);
- zarobek = kartAkord[n].getDotychczasoweZarobki();
- }
- System.out.println(
- " " + nazwisko + " zarobil dotad " + zarobek
- );
- break;
- default:
- System.out.println(" ZLY WYBOR OPCJI");
- break;
- }
- }
- System.out.println(" -----------------------------");
- System.out.println("\n DZIEKUJE.\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement