Proponuje parę banalnych ( nie koniecznie gui) np.
1. Zdefiniować klasę Hotel. Każdy hotel ma określoną liczbę numerowanych pokoi rozmieszczonych na poszczególnych piętrach. Liczba pięter i liczba pokoi na każdym piętrze jest ustawiana w momencie tworzenia obiektu. Pokój jest identyfikowany przez obiekt klasy NumerPokoju (o polach: pietro i pokoj). Określony pokój jest wynajęty jeśli jest z nim powiązany obiekt klasy Osoba (zaproponować definicję stosownej klasy). Jedna osoba może wynajmować wiele pokoi. Zdefiniować metody:
- czy jest jakiś wolny pokój,
- ile jest wolnych pokoi,
- wynajmij dowolny z wolnych pokoi podanej (jako parametr) osobie (obiekt typu Osoba); wynikiem powinien być numer przydzielonego pokoju,
- czy można wynająć k sąsiednich pokoi (wynikiem powinien być numer pierwszego pokoju lub null jeśli to niemożliwe),
- czy osoba o podanym nazwisku wynajmuje jakiś pokój,
- które pokoje wynajmuje osoba o podanym nazwisku (wynikiem powinna być tablica numerów pokoi lub null),
- zwolnij wszystkie pokoje wynajmowane przez osobę o podanym nazwisku.
Zaproponuj ewentualne inne metody klasy Hotel.
2. 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 przydzie-
leniem pojazdu do określonej stawki opłat za godzinę parkowania (stałej dla danego typu pojaz-
du),
- 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, Samo-
chód dostawczy, proponując samodzielnie charakterystykę obiektów tych klas w taki sposób, by zilustrować polimorfizm w odniesieniu do w/w metod.
3. Zaprogramuj, z użyciem jednokierunkowej listy cyklicznej (w której następnikiem „ostatnie-go” elementu jest „pierwszy” element listy), tzw. problem Flawiusza Josephusa.
Objaśnienie:
Flawiusz Josephus był historykiem żyjącym w I w. Legenda głosi, że gdyby nie jego talent ma-tematyczny, nie dożyłby chwili gdy został sławny. W czasie wojny żydowsko-rzymskiej był on w oddziale 41 (czyli „N”) żydowskich buntowników osaczonych przez Rzymian. Woląc śmierć od niewoli, buntownicy stanęli w kole, odliczając i zabijając co trzecią (co „K-tą”) osobę. Jednak Flawiusz, wraz ze swym przyjacielem, chcieli uniknąć takiej śmierci. Flawiusz szybko obliczył gdzie powinni obaj stanąć, aby byli ostatnimi dwiema osobami, które zostaną przy życiu.
Program powinien więc, dla zadanych dwóch liczb: N oraz K (jak w objaśnieniu), wyznaczyć początkową pozycję dwóch elementów listy, które pozostaną w powtarzanym cyklicznie procesie usuwania co K-tego elementu listy N-elementowej, rozpoczynając od 1. elementu. Należy też wyświetlić kolejne usuwane elementy listy.
Uwaga zaimplementować BEZ wykorzystania wzoru!!!.
PS: (Bardzo fajnie wychodzi to w gui - pacz na WWW.)
4. Wykorzystując kolejkę zwykłą (FIFO) zasymuluj obsługę kolejki klientów przez trzech
urzędników (A, B, C). Każdy klient w kolejce ma do załatwienia sprawę, która wymaga
określonego z góry czasu ti (założyć, że czas ten jest przypisany klientowi).
Zakłada się, że:
- każdy klient trafia na koniec kolejki z czasem „losowym”, w „losowym” momencie,
- klient z czoła kolejki trafia do tego urzędnika, który jest „wolny” (jeśli wielu jest
wolnych, decyduje kolejność od A do C),
Zaimplementuj stosowny algorytm oraz zilustruj jego działanie w odpowiedniej klasie
testowej.
Powyższe zadania na pewno odpowiedzą Ci z grubsza czy coś wyciągnąłeś z videokursów

.
Hard zadanie- ale do portfolio się nada :
5. Zbuduj coś ala mini excel. Muszą być podstawowe funkcje, sortowanie ( np. quicksort z Collenctions.sort) dowolnej kolumny( sortowanie uniwersalne - tu przydadzą się typy generyczne), rysowanie wykresów i inne.