W tym miejscu umieszczono zadania do samodzielnego wykonania przez studentów.
Proszę o wrzucenie każdego zadania w osobną klasę. Cały program robimy w obrębie jednej klasy. Program należy podzielić na funkcje według uznania, dodać stosowne komentarze w javadoc.
Po wykonaniu wszystkich zadań i dwukrotnym ich sprawdzeniu można wysłać do mnie maila o temacie:
PWJ ZAD_SAMODZIELNE_1 NUMER_GRUPY_Z_USOS
numer grupy w USOS sprawdzimy tutaj: https://usosweb.uksw.edu.pl/kontroler.php?_action=katalog2/przedmioty/pokazGrupyZajec&zaj_cyk_id=137217 (po wybraniu szczegóły swojej grupy powinniśmy zobaczyć listę studentów i siebie pośród nich).
W treści wiadomości proszę podać swoje IMIĘ, nazwisko, numer indeksu, a w załączniku 2 pliki źródłowe odpowiednio nazwane ZAD1.java oraz ZAD2.java
Przykład prawidłowego tematu dla grupy nr 2
PwJ ZAD_SAMODZIELNE_1 2
Przykład prawidłowej treści
Hubert Zembrowski 61316
Jak wygląda proces weryfikacji?
Program ma spełniać postawione w nim założenia oraz rozwiązywać zadany problem. Działać powinien dla danych z uwzględnieniem przypadków brzegowych. Jeśli program jasno nie precyzuje jak wykonać dany problem można iść po najmniejszej linii oporu. Jak to zrozumieć? Jak nie ma zdefiniowanego typu danych – przyjmijmy ten dla nas wygodniejszy. Jak nie zdefiniowano jak pobierane są dane – dane pobierane są w sposób dowolny.
Pamiętajcie, że to zadania do samodzielnego treningu, nie rozliczam czy zadanie zrobione zostało w 100%. Najważniejsze to zrealizować zadanie samemu i dać z siebie wszystko!
Zadanie nr 1
Napisz program generujący N losowych danych personalnych kobiet. Utwórz plik imiona.txt z danych. Program z pliku pobierze tylko imiona kobiece (przyjmij, że w liście jest losowa liczba imion kobiecych i męskich a mamy pewność, że imię kobiece kończy się na literę A za wyjątkiem męskiego imienia Jarema). Utwórz plik nazwiska.txt z danych. Program z pliku pobierze tylko nazwiska. W obu przypadkach nie manipuluj plikami podanymi do zadania. Użytkownik poda liczbę z zakresu 1-100 (sprawdź poprawność wartości z zakresu, nie sprawdzaj czy podano liczbę). Liczba ta to liczba danych wygenerowanych, które należy zapisać do pliku szpieg.txt. Zapisać należy informacje takie jak: imie nazwisko PESEL (pesel to ciąg liczbowy o rozmiarze 11 znaków z zakresu 22010112345 – 99123112345). PESEL musi zostać wygenerowany losowo i być „prawdopodobny” – nie trzeba liczyć sumy kontrolnej a losujemy ludzi urodzonych w latach 1922 – 1999. Proszę jednak pamiętać, że pesele kobiece mają jeden numer charakterystyczny (opis w specyfikacji).
przykład wpisu szpieg.txt
Julia Kowalska 88080812345
Zadanie nr 2
Napisz program pozwalający na konwersję zapisu ciągu znaków na 5 tablic string.
Ciąg znaków będzie reprezentować zapis bardzo zbliżony do zapisów „crontab”
gdzie poszczególne informacje rozdzielone są znakiem | i przechowywane są informacje o minutach, godzinach, dniach miesiąca, dniach tygodnia np zapis oznacza.
10|10|*|*
minuta 10, godzina 10, każdy dzień miesiąca, każdy dzień tygodnia.
Dopuszczalne informacje o minutach to: 10,20,30,40,50,60 oraz *
Dopuszczalne informacje o godzinach to: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 oraz *
Dopuszczalne informacje o dniach miesiąca to: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 oraz *
Dopuszczalne informacje o dniu tygodnia to: 1,2,3,4,5,6,7 oraz *
Jeśli informacje mają być wysyłane np. o godzinie 11,12,13 to można uprościć zapis pisząc 11-13. Takie uproszczenia nie są dopuszczalne w informacjach o minutach.
Inny przykład poprawnego zapisu:
10|12,16,20-22|1,14|*
Oznacza minuta 10; godzina 12,16,20,21,22; dzień miesiąca 1,14; każdy dzień tygodnia.
Pozostałe poprawne przypadki testowe to np.:
10,30|10-12,20-22|1,14|7
*|17|3,8|1,3,5,7
W celu przechowywania danych w pamięci zastosuj tablicę string np.:
public String[] sheduleMinute;
public String[] sheduleHour;
public String[] sheduleDayOfMonth;
public String[] sheduleDayOfWeek;
Program powinien pobierać informacje z pliku tekstowego o nazwie cron.txt
Program powinien wypisać w konsoli zawartość tablic np. dla danych: 10|12,16,20-22|1,14|* wypisze:
Minuty: 10
Godziny: 12 16 20 21 22
dzień miesiąca: 1 14
dzień tygodnia: 1 2 3 4 5 6 7
Program powinien uwzględniać błędnie wprowadzone dane (np. za krótka informacja *|*; za długa informacja 10|10|10|10|10|10|10|10; informacja spoza zakresu np. 99|-2|3|3; niezrozumiałe znaki np. DD|!!!!!)
Każda z grup ma czas realizacji zadania do 21.03.2019 godzina 23:59 Liczy się termin nadesłania wiadomości na moją skrzynkę, zatem warto wysłać wiadomość odpowiednio wcześniej, aby doszła w określonym terminie.