4it115»Pavlickova

Pavlickova

Cvičení kurzu 4IT115 - cvičící Ing. Jarmila Pavlíčková

LS 2013/2014

Harmonogram cvičení

1Seznámení s vývojovým prostředím NetBeans (struktura projektu, základní možnosti psaní kódu). Refactoring adventury (rozdělení do balíčků).
2Subversion, import do úložiště, záložky, commit, update, checkout. GUI - frame, základní ovládací prvky, reakce na událost, vnitřní třídy.
3GUI - návrhový vzor Observer.
4GUI - doplnění zobrazování východů z místnosti- seznam (JList) a menu.
5GUI - vlastní komponenta,obrázky.
6Test GUI. Dialogová okna,události myši.
7Rozdělení do týmů. Zadání týmové úlohy
8UML - Use Case diagram, případy užití.
9UML - návrhový diagram tříd, sekvenční diagram.
10cvičení odpadá - rektorský den
11UML - designový model.
12Test UML.Tabulky (JTable)
13Obhajoba návrhu druhé semestrální úlohy.

Termíny úkolů a body za samostatnou práci v průběhu semestru

1. domácí úkolz třetího na čtvrté cvičení2 body
2. domácí úkolz šestého na sedmé cvičení3 body
Test1 GUIna šestém cvičení3 body
3. domácí úkolz osmého na desáté cvičení2 body
adventura - GUI verzedo 23.4. 23:59
úlohu je možné odevzdat i později s penalizací
viz 1. úloha
2. úloha - projekt viz 2. úloha
Test2 UML 10 bodů
2. úloha - funkční verze viz 2. úloha
milníky pro kontrolu stavu úložiště 1.6. 23:59 a 22.6. 23:59
pokud nemá student obhájenou druhou úlohu - programovací část
a k danému milníku nevložil do úložiště žádný kód,
odečítají se mu 2 body
úloha musí být odevzdána nejpozději 30.6. 23:59

Obecná pravidla pro domácí úkoly

Odevzdávají se prostřednictvím odevzdávárny v ISISu. Odevzdejte zip archiv obsahující pouze adresář src projektu.
Domácí úkoly lze vypracovávat i ve dvojici maximálně trojici. Jména všech autorů budou uvedena v komentářích ke třídám úkolu.

1. domácí úkol - převod délkových měr

GUI aplikace, která bude převádět mezi anglo-americkou soustavou pro měření délky používající palce, stopy a míle a metrickou soustavou používající centimetry, metry a kilometry. Uživatel zadá jako vstup hodnotu a jednotku např. 3 stopy a ostatní hodnoty se dopočítají tj. zobrazí se kolik je to palců, mílí, centimetrů, metrů a kilometrů. Uživatel může vstup opakovat.

2. domácí úkol - mapa s obrázky

GUI aplikace, která o spuštění zobrazí nějakou mapu (ČR, Evropy , Světa, Středozemě, Zeměplochy atd.) Na mapě bude několik (alespoň čtyři) zvýrazněných bodů (např. červeným kolečkem), po kliknutí na tento bod se v dialogovém okně (dalším okně aplikace) zobrazí buď obrázek vybraného místa (např. po kliknutí na Prahu na mapě ČR se zpbrazí obrázek Hradčan) nebo se tom okně zobrází popis místa. Texty se budou načítat ze souborů HTML. Pro polovinu zvýrazněných bodů zobrazte obrázky pro druhou texty.

3. domácí úkol - class diagram

Zadání je pro každou skupinu jiné. Posílám ho mailem. Výsledný obrázek uložte do odevzdávárny v ISISu.

Test GUI

Je to test na základy programování grafického uživatelského rozhraní. Příklad zadání:

Z disku I: (popř. z isis.vse.cz) si zkopírujte základ grafické aplikace (projekt GUI). Doplňte do ni dvě tlačítka – tlačítko se zeleným popisem JDI a tlačítko s červeným popisem STŮJ. Dále do aplikace doplňte textové pole (JTextField), na začátku bez textu. Po stisknutí tlačítka „JDI“ se v textovém poli zobrazí text „jdi“, po stisknutí tlačítka „STŮJ“ se zobrazí v textovém poli text „stůj“. Upravte rozvržení okna tak, aby tlačítka byla nahoře vedle sebe a textové pole dole.

V testu se mohou objevit následující prvky:

  • komponenty:
    • JTextField, JTextArea, JButton, JCheckBox, JRadioButton,
    • JPanel, JFrame
  • vlastnosti:
    • vložení/získání textu do/z komponenty,
    • barva, font (tučné, kurzíva), enable/editable,
  • správci rozložení
    • BorderLayout, FlowLayout, GridLayout
  • události:
    • ActionEvent

Některé prvky (JCheckBox, JRadioButton, fonty) jsem neprobíral na cvičeních -> nastudovat a vyzkoušet sami.

Výslednou aplikaci na cvičení ihned oboduji. Základ grafické aplikace pro test.

Test UML (10 bodů)

Na cvičení dostanete popis zadání včetně případů užití. Úkolem je vytvořit detailní diagram tříd, tj. věcné třídy včetně datových atributů a vazeb mezi třídami (multiplicita, jméno odpovídajícího datového atributu). Diagram vytvoříte v programu Astah a z něj vygenerujete obrázek (PNG, GIF, JPEG) - budu hodnotit tento výsledný obrázek !!!

Příklady zadání:

Druhá semestrální úloha

Nabízená témata

Evidence kalorii

Základní požadavky na aplikaci:

  • aplikace spočítá optimální množství kalorií pro uživatele na základě věku, pohlaví, typu aktivit atd.
  • aplikace umožní evidovat pro konkrétní dny zvýšený/snížený výdej kalorii proti vypočtenému průměru (např. ležel celý den v posteli a tudíž výdej byl o 300 kcal menší).
  • aplikace umožní evidovat pro jednotlivé dny, kolik kalorii uživatel získal z potravin,
  • uživatel může zadávat získané kalorie následujícími způsoby:
    • zadá stručný popis jídla/pití a odhadnutý počet kalorií,
    • vybere ze seznamu jídlo (např. pizza) či pití a zadá množství - aplikace spočítá množství kalorii. Seznam si uživatel může průběžně doplňovat a upravovat.
  • aplikace zobrazuje dlouhodobé grafy získaných a vydaných kalorii,

Algebrogramy

Cílem je vytvořit aplikaci, která bude řešit algebrogramy - úlohy/hádanky s matematickými výrazy, kde místo číslic jsou písmena a úkolem je nahradit písmena číslicemi.
Platí dvě omezení:

  • jedno písmeno zastupuje právě jednu číslici 0 až 9,
  • jednu číslici může zastupovat právě jedno písmeno,

Příklady algebrogramů:

a)

   SEND
   MORE
-------------
  MONEY   


b)

RE + MI =  FA
DO + SI =  MI
LA + SI = SOL


c)

SEVEN + SEVEN + SIX = TWENTY


d)

  KC +  I  = OK
   +    +     +
   A +  A  = KM
----------------------------
  OL + KO  = LI  

Aplikace by měla též umožnit uložit algebrogram a nahrát uložený algebrogram. Některé algebrogramy nemusí mít řešení, některé mohou mít více řešení.

Aplikace musí podporovat minimálně operace sčítání, odčítání, násobení a dělení. Autoři by měli rozdělit algebrogramy na různé typy (např. je potřeba rozlišit algebrogram d) od předchozích, algebrogramy b) a c) jsou typově podobné, liší se pouze počtem řádků, algebrograd a) je podobný jako b) a c), je jinak orientovaný - možná by to mohl být samostatný typ).

Objednávkový systém pro kadeřnictví

Aplikace umožní zákazníkovi se zaregistrovat nebo přihlásit k již dříve vytvořenému účtu. Dále bude možné aby si zákazník či zákaznice vybral(a) se seznamu úkonů, které bude v kadeřnictví požadovat (např. barvení, melír a stříhání). Podle vybraných úkonů se spočítá přibližný čas, který je pro obsloužení zákazníka potřebný. Pak umožní zákazníkovi se objednat. Nabízí mu jen takové termíny, do kterých se jeho obsloužení vejde.

Aplikace má dva typy uživatelů. Zákazníky, kteří se mohou objednávat, rušit objednávku nebo přesouvat objednávku a kadeřnice/kadeřníky, kteří mohou upravovat seznamy úkonů a délky jejich trvání, připravovat nabídky časů a zobrazovat si objednané zákazniky a úkony, které požadují.

Jedná se o desktopovou aplikaci, neřešíte internetový přístup.

Objednávky květin v "internetovém" květinářství

Aplikace umožní zákazníkovi se zaregistrovat nebo přihlásit k již dříve vytvořenému účtu. Je možné objednat již připravenou kytici nebo si kytici poskládat z nabízených květin a doplňků. Dále aplikace umožní zadat jméno, adresu a termín doručení kytky.

Kromě zákazníků má aplikace ještě jeden typ uživatele a to květináře. Ti mohou zadávat kztice a jejich ceny, jednotlivé květiny a doplňky pro kytice a jejich ceny. Mohou si také prohlížet objednávky.

Jedná se o desktopovou aplikaci, neřešíte internetový přístup.

Evidence a osobní hodnocení filmů

Aplikace umožní uživateli filmy, které viděl a zapisovat si k nim hodnocení. Je třeba evidovat nejen filmy, ale i jejich režiséry a herce v hlavních rolích a také kategorii např. drama, komedie... Aplikace umožní zadávat filtry, např. chci vědět, které filmy s Brucem Willisem jsem viděl atd. Hodnocení se bude zadávat jak slovně tak procenty. Aplikace bude umět zobrazit žebříček nejoblíbenějších filmů (nebo třeba jen komedií nebo hororů).

Desková či karetní hra proti počítači

Vyberte si nějakou deskovou či karetní hru kromě dámy, pexesa, lodí a piškvorek. Aplikace umožní, kromě samotného hraní hry, vybrat si obtížnost, nahrání již rozehrané hry, uložení rozehrané hry a ukládání a zobrazování žebříčku nejúspěšnějších hráčů.