Západočeská univerzita Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky



Podobné dokumenty
Algoritmizace- úvod. Ing. Tomáš Otáhal

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. Dokumentace k programu MMDoc

IB111 Úvod do programování skrze Python Přednáška 13

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

IB111 Programování a algoritmizace. Programovací jazyky

Matematika v programovacích

2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML

FORTANNS. 22. února 2010

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Vzdělávací obsah vyučovacího předmětu

S2. Vytvoření Windows balíku pro vývoj na STM32 architektuře

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

11. Přehled prog. jazyků

Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda

Nápověda k aplikaci EA Script Engine

Programátorská příručka

Úvod. Programovací paradigmata

Dotyková obrázovká v prográmu TRIFID

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o.

1 Strukturované programování

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

1820 série NVR Instalační průvodce

První kroky s METEL IEC IDE

České vysoké učení technické v Praze. Fakulta Elektrotechniky XD39NUR. Semestrální práce. Ovládání videokonferencí pomocí mobilního telefonu

Dotykova obrazovka v programu TRIFID

MBI - technologická realizace modelu

Profilová část maturitní zkoušky 2017/2018

Nemocnice. Prvotní analýza a plán projektu

Externí za ízení. Číslo dokumentu: Tato příručka popisuje použití volitelných externích zařízení. Leden 2007

Úvod. Program ZK EANPRINT. Základní vlastnosti programu. Co program vyžaduje. Určení programu. Jak program spustit. Uživatelská dokumentace programu

Semestrální práce 2 znakový strom

Komprimace/Dekomprimace

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Geometrické algoritmy pro počítačovou grafiku

6. Efektivní správa papírových dokumentů v organizaci a jejich digitalizace

1 Návod na instalaci prostředí LeJOS-NXJ a přehrání firmwaru NXT kostky

Testování aplikace pro správu hesel KeePassX

Customer s NGPC Základy práce s katalogem ND

Bibliografických manažerů je celá řada. Tento materiál popisuje práci s nástrojem zvaným EndNote Basic.

TÉMATICKÝ OKRUH Softwarové inženýrství

Vývojové nástroje jazyka Java

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Základy programování (C#) Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1134_Základy programování (C#) _PWP

31 APZ Organizace. Popis modulu

MANUÁL K PROGRAMU JEDNODUCHÝ SKLAD (VER-1.2)

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Mzdy Optimum základy ovládání

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky

5. 3. Informační a komunikační technologie

Bc. Martin Majer, AiP Beroun s.r.o.

Maturitní témata Školní rok: 2015/2016

Katalog NGPC (New Generation Parts Catalogue)

AG info evidence masného skotu

METIS 2. T-WIST aplikace. uživatelská dokumentace

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Microsoft Word základní

Nové funkcé programu TRIFID 2015

Softwarové komponenty a Internet

6.16 Informatika a výpočetní technika

7. Enterprise Search Pokročilé funkce vyhledávání v rámci firemních datových zdrojů

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Identifikátor materiálu: ICT-1-21

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Dotyková obrázovká v prográmu TRIFID

Úvod. Program ZK KASA EET. Základní vlastnosti programu. Co program vyžaduje. Určení programu. Jak program spustit. Uživatelská dokumentace programu

MHD v mobilu. Instalace a spuštění. Co to umí

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

OVLÁDÁNÍ PROGRAMU Obsah

Lokality a uživatelé

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

Profilová část maturitní zkoušky 2013/2014

Zobrazte si svazy a uspořádané množiny! Jan Outrata

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Externí za ízení. Číslo dokumentu: Tato příručka popisuje použití volitelných externích zařízení. Kv ten 2006

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Oborová brána TECH tech.jib.cz

8.3 Popis dialogových oken

TESTOVÁNÍ UŽIVATELSKÉHO ROZHRANÍ

Výběr a instalace mobilního terminálu. II. Používání čárových kódů v katalogu položek. III. Tisk etiket s čárovými kódy

XD39NUR Semestrální práce Zimní semestr 2013/2014

1 Filozofie knihy jízd

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro editaci ŽS. Verze 1.

Úvod do Linuxu. SŠSI Tábor 1

Knihovna RecDBXLib ZÁZNAMY V DATABOXU TXV

5.15 INFORMATIKA A VÝPOČETNÍ TECHNIKA

Seznámení s prostředím dot.net Framework

IP kamera. Uživatelský manuál

Zadání semestrálního projektu Algoritmy II. letní semestr 2017/2018

4x standardní vstupy

Popis modulu Přístup k modulu Popis rozhraní Práce s rozhraním Selektor událostí Události na zařízení...

Manuál pro uživatele aplikace FUEL 2000 Enterprise

Popis programu: Popis přípon důležitých souborů: *.qpf projektový soubor Quartusu

Informační systém ozdravných pobytů zdravotní pojišťovny

Transkript:

Západočeská univerzita Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Programovací techniky Samostatná práce N19. Květinářství Vedoucí práce: Ing. Pavel Mautner Ph.D. Student: Tomáš Pospíšil, A09B0109K únor 2012 Stránka 1

Obecné pokyny k semestrální práci Zadání je vždy určeno pro jednoho studenta Práce se skládá ze dvou částí vytvoření funkčního programu a napsání dokumentace Než začnete programovat, zamyslete se nad zadaným problémem, jaká data budete uchovávat, jaké operace s nimi budete dělat, jaké vstupy a výstupy by požadoval uživatel vašeho softwaru atd. (tvořivost a schopnost analýzy je významnou součástí vašeho hodnocení) Úkolem v programové části je vždy o analyzovat problémovou oblast, o vytvořit 1 či více datových souborů (obyčejný textový soubor, HTML soubor, XML soubor ) s alespoň 20 záznamy, které odpovídají analýze problému, o datový soubor umět programově zpracovávat (číst, přepisovat vkládat, editovat a rušit záznamy), o implementovat základní datovou strukturou jako AVL strom, B strom, nebo tabulku (implementace zahrnuje přidání, odebrání a editaci záznamu) vylosujete si při výběru zadání, o vyhledávat alespoň podle dvou položek záznamu (tj. i vytvořit např. invertovaný seznam) o umožnit fulltextové vyhledání položky záznamu, o vytvořit smysluplné výstupy do HTML, vhodné pak i na obrazovku, o vytvořit prostředí pro snadnou obsluhu programu (menu, ošetření vstupů, ) nemusí být grafické, o vytvořit dokumentační komentáře ve zdrojovém textu programu a vygenerovat programovou dokumentaci (Javadoc) V rámci dokumentace nezapomenout na zadání, o popsat analýzu problému, o popsat návrh programu (např. jednoduchý UML), o vytvořit uživatelskou dokumentaci o zhodnotit práci a vytvořit závěr N19. Květinářství - software pro vedení agendy květinářství, nabízených květin a dalšího zboží, jednotlivých prodejů a tržeb Stránka 2

Analýza problému 1. Programovací jazyk: Volba jazyka je rozsáhlý problém, který je třeba řešit zvlášť pro každé nové zadání. Programovací jazyky se dají rozdělit podle mnoha kritérií. Ty nejzákladnější způsoby dělení jsou: programovací jazyky vyšší/nižší, interpretované/ kompilované a objektově orientované/strukturované. Samozřejmě, že to není veškeré dělení jazyků, ale pro řešení našeho problému to stačí. A) Otázka: Vyšší nebo nižší programovací jazyk? Nižší programovací jazyky, jsou jazyky primitivní, jejichž instrukce odpovídají příkazům procesoru. Jsou závislé na svém procesoru a takřka nepřenositelné na jiný procesor. V praxi to vypadá tak, že je třeba kód upravovat zvlášť pro každý procesor. Struktura kódu je obecně složitější než struktura zdrojového kódu vyššího programovacího jazyka. Na druhou stranu má volba nižšího jazyka také jednu zásadní výhodu. Programátor má přístup i k funkcím a instrukcím počítačů, ke kterým se s vyšším programovacím jazykem nedostane. Vyšší programovací jazyky jsou srozumitelnější, struktura zdrojových kódu je pro většinu programátorů logičtější a nejsou závislé na strojových principech počítače. Odpověď: Jelikož se jedná o jednoduchou aplikaci, na kterou stačí možnosti vyšších programovacích jazyků a zároveň hledáme co nejjednodušší řešení, volíme jeden z vyšších programovacích jazyků. B) Otázka: Interpretovaný nebo kompilovaný programovací jazyk? Interpretovaný jazyk je překládán až za běhu programu. Díky tomu jsou obecně pomalejší, ale nemají většinou tak velké formální požadavky na samotný zdrojový kód. Zásadní nevýhodou, která je zároveň i výhodou, je nezbytnost interpretru v počítači, na kterém je kód spouštěn. Avšak nám tato nevýhoda dává jedinečnou možnost napsat program, který lze spustit na různých platformách operačních systémech. To znamená, že je nezávislý na architektuře zařízení, na kterém je spuštěn. Kompilované jazyky musejí být již před vlastním spuštěním přeloženy kompilátorem. Je zde zcela vynechán mezikód, který používají interpretované jazyky. Ve většině programů to zaručuje rychlejší práci aplikace, ale taky naprostou nemožnost mezi různými platformami. U robustních aplikací je takovéto urychlení zásadní. Odpověď: Jelikož neznáme platformu, na které bude aplikace spuštěna, a zároveň neřešíme rozsáhlý problém, je rozumnější volbou varianta interpretovaného jazyka. C) Otázka: Objektově orientovaný nebo strukturovaný jazyk? Strukturované programování zpracovává samostatná data samostatnými funkcemi. Tyto funkce mají své vstupy a výstupy. Objektově orientované programování (OOP) nabízí možnost sdružování funkcí a dat do takzvaných objektů. Objekty mohou připomínat běžné objekty reálného světa (auto, student, dům, atd.). Tyto objekty, stejně jako v reálném světě, nesou o sobě informace, díky kterým je dokážeme od sebe rozlišit (rychlost, věk, počet podlaží, atd.). Zároveň objekty vykonávají různé činnosti (auto zatáčí, student píše test, dům hoří, atd.). Objektové Stránka 3

programování bývá pro méně zkušené programátory složitější a při samotném návrhu vyžaduje více času pro vytvoření správné struktury programu. Odpověď: Pro uchovávání záznamů v datových strukturách je dle mého názoru vhodnější použít OOP, neboť pomocí objektů se snáze sdružují informace, které si přejeme uchovávat. Pro výše uvedené důvody a pro největší zkušenosti jsem zvolil programovací jazyk Java. 2. Vývojové prostředí: Každý programátor má své oblíbené vývojové prostředí, na které ve většině případů nedá dopustit. Jedná se o jednoduché textové nástroje, jako jsou notepad, PSPad, vim-u, přes kvalitní freeware/ GNU GPL nástroje (Eclipse, netbeans, Dev-C++), až po profesionální prostředí (Microsoft Visual Studio). Mou volbou je freeware aplikace Eclipse IDE, pro svou jednoduchost, přehlednost, cenu a dobré debugové funkce. 3. Uživatelské rozhraní: Uživatelské rozhraní je jedním z klíčových faktorů, které ovlivňují úspěšnost a použitelnost dané aplikace. Při programování v programovacím jazyce Java bylo možné použít textové rozhraní CUI (character user interface) nebo grafické uživatelské rozhraní GUI (graphical user interface). Zvolil jsem volbu GUI, díky jejímu přívětivějšímu rozhraní pro uživatele a pro její ne příliš složité programovací struktury. 4. Algoritmus (datová struktura): Mezi datovými strukturami jsem volil hashovací tabulku pro její rychlost vyhledávání, i když v nejhorších případech bývá na horší úrovni než jiné vyhledávací algoritmy. Druhým zásadním důvodem pro tuto volbu, byla snadná a přehledná implementace v jazyce Java. Stránka 4

Stránka 5

STRUČNÝ POPIS PROGRAMU SPOUŠTĚNÍ PROGRAMU - Kompilace do jar souboru: příkazem jar cvfm pt_n19.jar manifest.mf SOUBORY_NEBO_ADRESÁŘ soubory či adresář musejí obsahovat všechny z níže uvedených (zdroj Source.zip): DialogBase.java LayoutBase.java manifest.mf MenuLayout.java MovLayout.java MovList.java MovReaList.java NoIntLayout.java NotItemMarked.java ProdLayout.java ProductIO.java Products.java ProductsList.java Reason.java Sales.java SalesHash.java SalesLayout.java SalesList.java SetupIO.java SetupLayout.java - Spuštění jar souboru: příkazem java jar pt_n19.jar obsah adresáře (zdroj výše uvedený postup nebo JAR.zip): ProductIO.dat Nepovinný soubor. Program si jej v případě nepřítomnosti vytvoří. pt_n19.jar SetupIO.dat Nepovinný soubor. Program si jej v případě nepřítomnosti vytvoří. Stránka 6

OVLÁDÁNÍ PROGRAMU Uživatelské rozhraní programu je rozděleno do několika částí: Main menu rozcestník celého programu Sales rozhraní pro uskutečnění vlastních prodejů Movements rozhraní pro manuální vyskladnění/ naskladnění zboží Products rozhraní pro přidání nového zboží/úpravu stávajícího zboží Setup rozhraní pro přidání/úpravu důvodů k vyskladnění/naskladnění zboží Pohyb v GUI rozhraní je možný pomocí směrových kláves + Enter a Tab nebo myši. Celé rozhraní je navrhnuto intuitivně a co možná nejjednodušeji pro použití neseznámeným uživatelem. MAIN MENU Main menu je rozcestníkem celého programu. Obsahuje tlačítka s odkazy na dalším rozhraní, jako jsou Sales (Prodeje), Movements(Pohyby), Products(Produkty), Setup (Nastavení), nebo umožňuje opustit aplikaci stlačením tlačítka Exit. Stránka 7

SALES Tlačítka: BACK Návrat zpět do Main menu HELP Nabídka zboží ADD Přidání zboží do seznamu prodávaného zboží REMOVE Odstranění zboží ze seznamu prodávaného zboží SALE Uskutečnění prodeje/vyskladnění zboží Textová pole: Prod. Pole pro číslo zboží automaticky vyplněno pomocí nabídky zboží (Help) Description Název zboží Qty Množství prodávaného zboží Price Cena za 1 kus zboží Total Cena celkem za x kusů zboží Stock Aktuální počet zboží ve skladě/prodejně PRICE Celková cena za prodávané zboží DPH 20% - Celkové DPH za prodávané zboží PRICE WITH DPH Celková cena s DPH za prodávané zboží Funkce rozhraní: Přidání požadované položky do seznamu prodávaného zboží provedete zadáním příslušného kódu zboží do pole Prod. buď přímo pomocí klávesnice (ručního skeneru barkódů) nebo pomocí tlačítka HELP a příslušné nabídky zboží, zadáním počtu požadovaných kusů do pole Qty a stačením tlačítka ADD. Odebrání požadované položky ze seznamu prodávaného zboží provedete označením této položky v seznamu prodávaného zboží a stačením tlačítka REMOVE. Uskutečnění prodeje provedete stlačením tlačítka SALE. Zboží ze seznamu prodávaného zboží bude vyskladněno. Stránka 8

MOVEMENTS Tlačítka: BACK Návrat zpět do Main menu HELP Nabídka zboží/důvodů SAVE Potvrzení pohybu zboží Search Vyhledání zboží Textová pole: PRODUCT Pole pro číslo zboží automaticky vyplněno pomocí nabídky zboží (Help) Product Pole pro číslo zboží Description Název zboží Reason Pole pro důvod vyskladnění automaticky vyplněno pomocí tlačítka (Help) Qty Množství naskladňovaného/vyskladňovaného zboží Stock Aktuální stav zboží Funkce rozhraní: Naskladnění/vyskladnění zboží se provede zadáním příslušného kódu zboží do pole PRODUCT buď přímo pomocí klávesnice (ručního skeneru barkódů) nebo pomocí tlačítka HELP a příslušné nabídky zboží, zadáním kódu důvodu vyskladnění/naskladnění do pole Reason buď přímo pomocí klávesnice (ručního skeneru barkódů) nebo pomocí tlačítka HELP a příslušné nabídky důvodů, zadáním množství zboží k vyskladnění/naskladnění do pole Qty a stlačením tlačítka SAVE. Pokud bude vše zadáno správně, aktuální stav zboží se navýší/sníží. Stránka 9

PRODUCTS Tlačítka: BACK Návrat zpět do Main menu NEW Vytvoření nového zboží HELP Nabídka zboží SAVE Uložení zboží do databáze Search Vyhledání zboží Textová pole: PRODUCT Pole pro číslo zboží automaticky vyplněno pomocí nabídky zboží (Help) Product Pole pro číslo zboží Description Název zboží Price Prodejní cena zboží Qty Množství naskladňovaného/vyskladňovaného zboží Cost Pořizovací cena zboží Type Typ zboží (nářadí, květina) Stock Aktuální stav zboží Width, Height, Length, Weight Rozměry a hmotnost zboží Stránka 10

SETUP Tlačítka: BACK Návrat zpět do Main menu add Vytvoří nový důvod k vyskladnění/naskladnění zboží remove Odebere položku z listu Textová pole: Reason ID Pole pro číslo důvodu k vyskladnění/ naskladnění Description Název důvodu k vyskladnění/ naskladnění Výběrové menu (Action): Load Položka k naskladnění zboží Unload Položka k vyskladnění zboží Stránka 11

Závěr Program je konstruován ke snadnému uživatelskému ovládání a ke každodennímu použití. Má mnoho nedostatků, jako jsou chybějící algoritmy k uchování pohybů na skladě či prodejně a další funkcionality, které si dovedu v tomto programu představit. Pro programátora je snadná jeho konfigurace a zavedení dalších nezbytností k plně hodnotnému a uživatelsky přívětivému prostředí. Volba hashovací tabulky nebyla v tomto případě tou nejlepší, neboť její uchovávání v paměti počítače není řazeno dle zřejmých požadavků na zobrazování položek v listech či seznamech (abecední řazení zboží atd..). Toto řazení by se muselo dále řešit, nebo hashovací algoritmus nahradit jiným. Stránka 12