Projekty

Projekt A.1

Przygotuj program, który dla pliku podanego jako parametr uruchomienia programu wyznaczy jego liczbę linii, słów lub znaków. Jeśli podany jest katalog to takie statystyki zostaną wyświetlone dla wszystkich plików się w nim znajdujących. Dopracuj odpowiednie parametry uruchomienia programu.

Projekt A.2

Plik 2015.txt zawiera dane o pupularności imion nadawanych w USA w roku 2015. Napisz program, który umożliwi

  • wyszukanie imienia i wypisze jego pozycję i ilość;
  • wypisze wszystkie imiona na daną literę (kobiety, mężczyźni, kobiety i mężczyżni) - sortując losowo, leksykograficzne lub według popularności.
Zadanie na podstawie *12.31

Projekt A.3

Napisz grę w statki (okręty), zobacz: http://pl.battleship-game.org/. Ogólnie w grę grają 2 graczy (jednym z graczy będzie komputer, który losowo będzie strzelał w statki - powtarzał strzał gdy wcześniej już tam strzelił). Pozostałe zasady gry przeczytaj na http://www.zasadygry.pl/statki_zasady_gry_12_1.htm.

Projekt A.4

Zaprojektować i zaimplementować funkcjonalność programu do obsługi parkingu Pojazdów, przeznaczonego dla pojazdów uprawnionych. Parking jest zbiorem N numerowanych miejsc parkingowych, z których mogą korzystać kierowcy samochodów i motocykli. Program powinien umożliwiać:

  • wpisanie pojazdu do wykazu pojazdów uprawnionych do korzystania z parkingu, z przydzieleniem pojazdu do określonej stawki opłat za godzinę parkowania (stałej dla danego typu pojazdu),
  • usunięcie pojazdu z wykazu pojazdów,
  • wjazd pojazdu na parking (rejestracja czasu, zajęcie przez pojazd określonego miejsca; można przyjąć, że jest to miejsce „pierwsze wolne” w wykazie miejsc parkingowych),
  • wyjazd pojazdu z parkingu (rejestracja czasu, zwolnienie przez pojazd określonego miejsca),
  • wyprowadzenie bieżącego wykazu zaparkowanych pojazdów,
  • wyprowadzenie bieżącego wykazu wolnych miejsc parkingowych,
  • wyprowadzenie dziennego, zbiorczego wykazu opłat za parkowanie pojazdów,
  • inne, zaprojektowane działania.

Założyć, że łączna dzienna liczba wjazdów/wyjazdów nie przekracza 4*N.

Zrealizować w programie hierarchię klas: Pojazd, Motocykl, Samochód, Samochód osobowy, Samochód dostawczy, proponując samodzielnie charakterystykę obiektów tych klas w taki sposób, by zilustrować polimorfizm w odniesieniu do w/w metod.

Projekt A.5

Napisz klasę 'Dziennik', która będzie symulować działanie 'elektroniczny system oceniania'. Klasa ta powinna posiadać między innymi atrybuty określające nazwę przedmiotu oraz uczni (powinny to być kolekcje odpowiednich klas - zaproponuj charakterystykę obiektów tych klas) oraz metody umożliwiające wstawianie i wyświetlanie ocen cząstkowych z różnych przedmiotów. Uprawniony użytkownik może wstawiać oceny, a student może tylko je wyświetlać. Dopisz metodę wyliczającą aktualną średnią wybranego ucznia. Zaproponuj ewentualne inne metody.

Projekt A.6

Przygotuj konsolową wersję gry Mastermind.

Projekt A.7

Napisz program który zawiera klasę Wallet, która jest abstrakcyjną reprezentacją portfela. Klasa ta ma 3 konkretne realizacje w postaci DollarWallet, FrancWallet, ZlotyWallet. Dodatowo mamy abastrakcyjną klasę Money oraz jej realizacje Dollar, Franc, Zloty. Zapewnij możliwości dodawania dowolnych rodzajów pieniędzy do portfela, przeliczania na dowolny rodzaj waluty. Dodatkowo mamy wypłaty, podgląd ilości zgromadzonej gotówki.
Zapewnij możliwości utworzenia nowego portfela na podstawie już istniejącego, np.

DollarWallet d = new DollarWallet();
FrancWallet f = new FrancWallet(d);

oraz odpowiednie konwersje gotówki

Dollar dollar = new Dollar(1200);
Franc franc = new Franc(dollar);