Projektowanie obiektowe i programowanie w Javie
Termin poprawkowy: 28.02.2014 godz. 10:00, sala 142 - zasady jak na I terminie
Termin zaliczenia w sesji: 17.02.2014 godz. 15:10, sala 142
Do 16.02.2014 proszę o podesłanie projektów na email w załączniku z nazwą imie.nazwisko.zip. Oceny będą wystawione na podstawie zakresu spełenienia specyfikacji projektów oraz rozmowy nt. projektu.
Na zajęciach omówione zostaną podstawy programowania w języku Java oraz programowania obiektowego.
Materiały ćwiczeniowe:
- TelnetMonitor [download]
- Kalkulator [download]
- Wprowadzenie do JSE
Wymagania ogólne do projektu (specyfikacja szczególna zostanie zamieszczona w tym tygodniu).
- Projekty powinny spełniać wymogi opisane w opisie wymagań
- Kod programu powinien być:
- sformatowany,
- zgodny z konwencjami nazewnictwa w Javie,
- opatrzony w komentarze JavaDoc dla wszystkich klas, metod oraz publicznych pól statycznych finalnych,
- zaprojektowany w sposób obiektowy, logika aplikacji powinna być oddzielona od interfejsu użytkownika,
- interfejs użytkownika powinien być napisany w Swingu - ręcznie lub przy użyciu dowolnego edytora GUI
- Dla klas implementujących logikę powinny być przygotowane przynajmniej dwa testy jednostkowe JUnit.
- Projekt powinien mieć przygotowany skrypt Ant budujący wykonywalny plik JAR oraz dokumentację JavaDoc oraz target wykonujący testy jednostkowe.
- (*) W dokumentacji diagram klas w UML.
Wymagania szczegółowe [DOWNLOAD]
Ćwiczenia 02.12.2013
Napisz program w Javie, który zajmuje się obróbką wszystkich plików w danym katalogu (z opcją przeszukiwania podkatalogów). Rodzaj obróbki będzie definiowany przez implementację interfejsu:
public interface FileProcessor {
void processFile(java.io.File file);
}
Katalog którego pliki mają być procesowane jest pierwszym parametrem programu. Drugim opcjonalnym parametrem może być przełącznik "-sd", który będzie powodował przeszukiwanie podfolderów. Zaimplementuj dwa procesory:
- Zmieniający rozszerzenie jpeg na jpg
- Zmieniający nazwy plików w formacie dd-mm-rrrr na rrrr-mm-dd
Lista implementacji procesorów obsługiwanych przez program ma się znajdować w pliku konfiguracyjnym processors.conf np.:
pl.poznan.put.cs.akozak.JpegToJpgRenamer
pl.poznan.put.cs.akozak.FileDateNameRenamer
[Rozwiązanie z opcją działania na podkatalogach]
ZAJĘCIA 16.12.2013 - ZABAWA W FIRMĘ
W korporacji bioinformatycznej do napisania jest projekt, w którym należy wykonać kilka implementacji procesora plików tekstowych.
Jedna z osób ("master committer") zarządza utrzymaniem głównej gałęzi projektu. Niech osoba ta będzie też team leaderem i rozdziela zadania do poszczególnych pracowników.
Do programu dostępnego na stronie - FileProcessor i będącego już repozytorium GIT należy:
- otrzymać od szefa procesor do napisania,
- utworzyć w GIT odpowiednią gałąź na zadanie
- napisać implementację procesora
- dla gotowego zadania zrobić commit gałęzi i push na serwer
- osoba wybrana jako master committer sprawdza kod (czy kod jest sformatowany prawidłowo, czy kod jest zrozumiały i zawiera komentarze i czy działa prawidłowo)
i następnie scala z główną gałęzią projektu lub zwraca zadanie do poprawek
PROCESORY DO IMPLEMENTACJI:
1. Procesor, który zlicza linie w pliku tekstowym i zapisuje raport do pliku "LinesReport.txt" np.
-------------------------------------------
Łącznie: 270 linii w 3 plikach tekstowych:
70;c:/MojePliki/plik1.txt
150;c:/MojePliki/plik2.txt
50;c:/MojePliki/inne/plikx.txt
-------------------------------------------
2. Procesor, który zlicza liczbę słów w plikach zakodowanych w UTF-8 i zapisuje raport do pliku "WordsReport.txt" np.
-------------------------------------------
Łącznie: 15073 słów w 3 plikach tekstowych:
1300;c:/MojePliki/plik1.txt
10505;c:/MojePliki/plik2.txt
3268;c:/MojePliki/inne/plikx.txt
-------------------------------------------
3. Procesor, który wygeneruje słownik ze wszystkich słów w napotkanych plikach i zapisze w kolejności leksykograficznej do pliku "DictionaryReport.txt" np.
-------------------------------------------
Słownik z plików: c:/MojePliki/plik1.txt;c:/MojePliki/plik2.txt;c:/MojePliki/inne/plikx.txt
a
adam
adoruje
adaptery
alicja
...
-------------------------------------------
4. Procesor, który zliczy statystykę ile jest słów zaczynających się daną literą alfabetu i zapisze do pliku "FirstLetterReport.txt" np.
-------------------------------------------
Zliczenie liczby słów zaczynających się daną literą w plikach:
c:/MojePliki/plik1.txt;c:/MojePliki/plik2.txt;c:/MojePliki/inne/plikx.txt
a;150
b;30
c;25
d;180
e;120
f;80
......
-------------------------------------------
5. Procesor, który dla każdego pliku "*.txt" zapisze plik "*.nopl.txt", w którym wszystkie znaki polskie zastąpione są bezogonkowymi literami.
6. Procesor, który złączy wszystkie pliki "*.txt" do jednego pliku "FileCompilation.html" w formacie:
<html>
<head>
<title>Zbiór treści plików</title>
</head>
<body>
<h2>[ścieżka pliku 1]</h2>
<div id="[ścieżka pliku 1]">[zawartość pliku 1]</div>
<h2>[ścieżka pliku 2]</h2>
<div id="[ścieżka pliku 2]">[zawartość pliku 2]</div>
<h2>[ścieżka pliku 3]</h2>
<div id="[ścieżka pliku 3]">[zawartość pliku 3]</div>
......
</body>
</html>