środa, 15 marca 2017

Tydzień 3: karty CRC, pakiety

Ćwiczenia

  1. Karty CRC (Class-Responsibility-Collaboration) dla systemu rezerwacji np. w zakładzie fryzjerskim.
  2. Karty CRC opisujące działanie bankomatu. Scenariusze:
    • Klient wypłaca z bankomatu gotówkę za pomocą karty bankomatowej i drukuje papierowe potwierdzenie transakcji. (Należy pamiętać o różnych możliwościach, np. brak pieniędzy na koncie klienta, kilkakrotnie podany błędny numer PIN, itp.)
    • Klient sprawdza w bankomacie saldo swojego konta.
    • (Opcjonalnie: wpłatomat) Klient wpłaca gotówkę za pomocą karty bankomatowej.
    • (Opcjonalnie) Obsługa panelu administracyjnego bankomatu.

Laboratorium

  1. Umieścić program HelloWorld w pakiecie. Skompilować i uruchomić program z linii poleceń.
  2. Zapoznać się ze środowiskiem Eclipse. Skompilować i uruchomić w Eclipse program HelloWorld.
  3. W Eclipse podpiąć źródła Javy.
  4. Probably a Fire Hazard (dzień 6 ze strony Advent of Code).
    Po zalogowaniu na stronie Advent of Code można pobrać przykładowe dane, na których można przetestować program. Po zrobieniu części 1 dostaje się dostęp do drugiej części zadania.
Podpowiedzi: 
  1. Czytanie ze standardowego wejścia:
    import java.util.Scanner;
    ...
    Scanner s = new Scanner(System.in);
    while (s.hasNextLine()) {
      s.nextLine();
    }
    s.close();
  2. Czytanie z pliku
    Scanner s = new Scanner(new File("sciezka_do_pliku"));
  3. Czytanie z pliku ze Scannera powoduje błąd kompilacji. Kompilator oczekuje, że obsłużymy wyjątki, które może rzucić Scanner. Na razie można dodać w metodzie main deklarację:
    public static void main(String[] args) throws Exception { ... }
    W dalszej części semestru nauczymy się, w jaki sposób właściwie obsługiwać wyjątki.
  4. Klasa String ma metodę replace, która zastępuje podany ciąg znaków innym:
    "Ala".replace("A","O");
  5. zamieni Alę w Olę.
  6. Klasa String ma metodę split, która dzieli podany napis w miejscach wystąpienia innego napisu:
    "Ala ma kota".split(" ");
    da w wyniku tablicę:
    {"Ala","ma", "kota"}
  7. Parsowanie napisu do liczby całkowitej:
    Integer.parseInt("123");

    Praca domowa nr 3

    Rozwiązanie zadania Probably a Fire Hazard ze strony Advent of Code (do wyboru: część 1 lub część 2).