130 likes | 300 Views
Semestrální práce KIV/PT. Martin Kales Hana Hůlová. Standardní zadání. Vytvořte 3 vstupní soubory, každý o velikosti minimálně 5MB (obyčejné textové soubory) obsahující texty v českém jazyce z následujících oblastí : zpravodajství beletrie odborná literatura
E N D
Semestrální práce KIV/PT Martin Kales Hana Hůlová
Standardní zadání • Vytvořte 3 vstupní soubory, každý o velikosti minimálně 5MB (obyčejné textové soubory) obsahující texty v českém jazyce z následujících oblastí : • zpravodajství • beletrie • odborná literatura • Programově načtěte vstupní soubory, vytvořte slovníky použitých slov (implementujte vhodnou základní datové paměťové struktury pro načtená data ze souborů) • Seřaďte slova podle četnosti výskytu + kontrolní výpisy • Umožněte fulltextové vyhledání slov • Vytvořte smysluplné výstupy do HTML, vhodné pak i na obrazovku • Vytvořte prostředí pro snadnou obsluhu programu (menu, ošetření vstupů,…) – nemusí být grafické • Vytvořte dokumentační komentáře ve zdrojovém textu programu a vygenerujte programovou dokumentaci (Javadoc) • Dokumentace • Zadání • Analýza problému • Popis programu • Uživatelská dokumentace • Závěr
Analýza problému • Volba datových struktur => • BVS (pro načtení) • Hash tabulka (pro četnost) • Volba datových typů => • Prvek • Slovo • Údaj o četnosti • Ukazatele na následníky v BVS • PrvekCetnost • Prvek • Ukazatel na další prvek v Hash tabulce
BVS Postupně vkládáme všechna slova do BVS. • 1.slovo=> kořen stromu • Následující slova => porovnání podle abecedy s kořenem a zbytkem stromu: a) menší slova (abecedně) =>vlevo b) větší slova (abecedně) =>vpravo
Programově načtěte vstupní soubory, vytvořte slovníky použitých slov
Hash tabulka • Uložení slov podle četnosti • Pole třídy PrvekCetnost o velikosti rovné nejvyšší četnosti • Tvoříme převodem z BVS • Index spojového seznamu určuje četnost
Program Program se skládá ze 4 souborů: • Prvek.java • Strom.java • Text.java • Gui.java
Prvek.java • Základní datový typ celého programu • Obsahuje: • Slovo (String) • Četnost (int) • Ukazatel na levého následníka v BVS (Prvek) • Ukazatel na pravého následníka v BVS (Prvek)
Strom.java • Implementace BVS • Obsahuje metodu: • pridejPrvek(Prvek) • Najde vhodnou pozici v BVS a přidá Prvek • Dále metody pro porovnávání dvou prvků • boolean Porovnej(Prvek, Prvek) • Prvek Porovnej_Mensi(Prvek, Prvek) • Prvek Porovnej_Vetsi(Prvek, Prvek)
Text.java • Analýza textu • Obsahuje metody: • Strom zpracujText(BufferedReader) • Rozděluje text na slova slova = radka.split("[^A-Za-zÁÄÉËÍÓÖÚÜÝßáäéëíóöúüýČčĎďĚ켾ŇňŐőŘřŠšŤťŮůŰűŽž]+") • A rovnou vrací celý BVS • Metody pro procházení stromem, vyhledávání a výpisu do HTML • Procházení stromem a vyhledávání => zásadně metoda InOrder • Jednoduchost, prochází stromem podle abecedy
Gui.java • Klientská třída • Grafické prostředí
Zhodnocení • Výhody • Jednoduchost • User-friendly • Nevýhody • Pomalé zpracování • Opětovné načítání ze souboru (ne z paměti)