Students Semestrální práce z předmětu Informatika I. Dokumentace projektu. Vysoké Učení Technické v Brně

Podobné dokumenty
Práce s programem MPVaK

Nový modul přípravy IPLP v systému Mediox

Nápověda aplikace Patron-Pro

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

Úvod...1 Instalace...1 Popis funkcí...2 Hlavní obrazovka...2 Menu...3 Práce s aplikací - příklad...5

Úvod...1 Instalace...1 Popis funkcí...2 Hlavní obrazovka...2 Menu...3 Práce s aplikací - příklad...5

Konvertor diakritiky 3. Instalace

Uživatelská příručka pro ředitele škol

Reliance 3 design OBSAH

Pravidla a plánování

Návod pro použití Plug-in SMS Operátor

Semestrální práce 2 znakový strom

Převod na nový školní rok

Příloha 6. Palety nástrojů

Webová aplikace Znalostní testy online UŽIVATELSKÁ PŘÍRUČKA

Stručný návod na evidenci záznamů publikační činnosti v OBD 2.5

Připojení ke vzdálené aplikaci Target 2100

Formulář NÚV v programu PPP4

APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze

PDF Split and Merge. Průvodce programem pro práci s PDF

4.2. Odhlásit se Šifrování hesla Sepnutí výstupních relé Antipassback Zobrazení všech dat...

Akceptační test. Úvod

Převod na 2. pololetí

Manuál k e-learningovému vzdělávacímu modulu 1 MODUL HIGH-TECH POTRAVINY. Popularizace zdraví Po.Zdrav (CZ.1.07/3.1.00/ )

Uživatelská příručka

MANUÁL ADMINISTRÁTORA. k aktivaci online testování na stránce

Questionnaire příručka uživatele

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

Evidence požadavků uživatelů bytů a nebytových prostor

Uživatelská příručka administrativního rozhraní Vědecké knihovny v Olomouci

TransKlim ver.1.13 Uživatelská příručka pro verzi 1.13

Externí Helpdesk Uživatelská příručka. verze 1.00

Revize majetku. Dovývoj je vytvořen jako součást DELPHI Pluginu a může být přidán do jakékoliv existující knihovny. (pokud existují zdrojové kódy)

Inovace a zkvalitnění výuky prostřednictvím ICT Vytváření aplikací pro systém Windows Víceřádkové vstupy komponenta Memo

Monitoring mikroregionů a jejich rozvojových dokumentů. imr. On-line systém evidence mikroregionů a jejich rozvojových dokumentů

Postupy práce se šablonami IS MPP

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Základní popis Toolboxu MPSV nástroje

Instalace souborů VHOPE a souborů knihovny VHOPE

Konzervace, restaurování 2

Nápověda k aplikaci EA Script Engine

Manuál pro mobilní aplikaci Patron-Pro. verze pro operační systém Symbian

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Školící dokumentace administrátorů IS KRIZKOM (úroveň ÚSÚ) role ( administrátor )

Jednoduchý návod k použití programu Vinotéka 2007, v 2.2.1

Návod na používání Digitálního povodňového plánu povodňové komise

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Microsoft Office. Word hromadná korespondence

Základní popis Toolboxu MPSV nástroje

Elektronické zpracování dotazníků AGEL. Verze

Zápis průběžné klasifikace do školního evidenčního programu BAKALÁŘI (s vystavením klasifikace na webu pro rodiče)

Průvodce instalací modulu Offline VetShop verze 3.4

Pokyny pro obsluhu programu. EZZ01 File reader 1.3

Uživatelská dokumentace

Uživatelský manuál. A4000 Download

SLEDOVÁNÍ VÝKONŮ. Uživatelská dokumentace. Verze: 1.0 Datum: Listopad 2011

BALISTICKÝ MĚŘICÍ SYSTÉM

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

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...

EVIDENCE DOCHÁZKY SE ČTEČKOU INTAGRAL. příručka uživatele

Vyhledávací techniky a editace v klientovi ARL

Hromadná korespondence

Svolávací systém Uživatelský manuál

Univerzální rezervační systém. Uživatelská příručka

Vypracoval: Antonín Krumnikl Mob.: Tel.:

REGISTR VINIC - ŽÁDOST O ZATŘÍDĚNÍ VÍNA (UŽIVATELSKÁ PŘÍRUČKA PRO FARMÁŘE) Brno CCV, s. r. o.

Modul Zásoby Dodavatelé/Odběratelé Materiál pro samostudium +1336

Uživatelská příručka.!instalace!průvodce.!dialogová okna!program zevnitř

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

Mzdové dokumenty propojení Ms Word, OOD

Univerzální prohlížeč naměřených hodnot

Opravy a prodej. Uživatelská příručka. Milan Hradecký.

SOFTWARE 5P. Instalace. SOFTWARE 5P pro advokátní praxi Oldřich Florian

Aplikace Scan2NG příručka pro skenování dokumentů

Uživatelský manuál k prodejní aplikaci věrnostního systému Nestlé

Personální evidence zaměstnanců

Program. Uživatelská příručka. Milan Hradecký

Outdoor Expert. Uživatelský manuál. Verze aplikace: OutdoorExpert_Manual.docx 1 /

Informace k převodu na nový školní rok

MOBILNÍ SKLADNÍK. Příručka k základnímu ovládání. Beta verze popisu produktu Aktualizace dokumentu: z 10

Tour de ABB 2013 Průvodce online aplikací

Instalace Linuxu Ubuntu v programu VirtualBox

Unity a Objekty (NMIN102) RNDr. Michal Žemlička, Ph.D.

Program. Uživatelská příručka. Milan Hradecký

Program. Uživatelská příručka. Milan Hradecký

Datové typy a struktury

PALSTAT s.r.o. systémy řízení jakosti PALSTAT CAQ verze Mezioperační kontrola 07.1/ Obsah

DBGen v.1.0. Uživatelská příručka v. 1.0

MS WINDOWS UŽIVATELÉ

Založení nové karty - základy

Zásoby_Evidenční výroba Návod pro uživatele +1367

Školící dokumentace administrátorů IS KRIZKOM (úroveň KRAJ) (role manager, administrátor )

Aplikace BSMS. Uživatelská příručka - 1 -

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

Dílčí projekt: Systém projektování textilních struktur 1.etapa: tvorba systému projektování vlákno - příze - tkanina

PALSTAT s.r.o. systémy řízení jakosti PALSTAT CAQ verze Výstupní kontrola 07.1/ Obsah

DUM 06 téma: Tvorba makra pomocí VBA

TRHACÍ PŘÍSTROJ LABTEST 2.05

Uživatelský manuál k prodejní aplikaci věrnostního systému Nestlé

Práce se šablonami v MS Word MS Word 2007

Transkript:

Students 2005 Semestrální práce z předmětu Informatika I Dokumentace projektu Vysoké Učení Technické v Brně Fakulta Strojního Inženýrství Mechatronika Staněk Martin E96 stanek_martin@seznam.cz

Obsah Zadání.. 3 Koncepce. 4 Realizace. 7 Uživatelské rozhraní a uživatelská příručka 9 Technické parametry aplikace 14

Zadání projektu Funkce : Program má sloužit, jako jednoduchá evidence studentů. Ke každému studentovi přísluší množina jeho prospěchu ze které se počítá průměr. Tyto průměry se vyhodnocují a je poskytnuta informace o nejlepších a nejhorších studentech. Data jsou uchovávána v souborech. Jazyk : Pascal Diskuze zadaní : Každá studijní skupina nemá blíže definovaný počet studentů, stejně jako není blíže definováno kolik případných skupin má být uloženo v souboru, počet známek jednotlivého studenta není rovněž specifikován. Z těchto důvodů aplikace musí umět zpracovat neomezené množství studijních skupin, v každé skupině může být neomezené množství studentů a každý student může být klasifikován neomezeným množstvím známek. Skupiny mohou vznikat, stejně jako zanikat, studenti mohou odcházet i přicházet a jejích známky se mohou, např. v důsledku chybného zadání, měnit a mazat. Proto aplikace musí být schopná reflektovat na tyto události. Informace o studentech je třeba ukládat do souboru, tento soubor musí reflektovat stejné požadavky na strukturu a množství dat jako samotná aplikace. Proto nelze použít typové soubory, protože jednotlivých položek může být neomezené množství, ale musí být definované s konečnou velikostí. Uživatelské rozhraní je nutno řešit efektivně, elegantně a s požadavkem maximální uživatelské přívětivosti a nejlépe, tak aby uživateli bylo vysloveně zabráněno dopouštět se zadávání chyb na vstupech apod.. Jazyk pro realizaci jsem zvolil Object Pascal 32, IDE Delphi 7.

Koncepce Koncepce projektu spočívá v modelu jádra a uživatelského rozhraní. Jádrem rozumím objekt (třídu), která zapouzdřuje funkce a procedury pro práci s daty v paměti, stejně jako pro práci se soubory. Uživatelské rozhraní s tímto jádrem pouze pracuje, nemělo by provádět žádné operace, které chronologicky spadají do působnosti jádra. Jádro Je realizováno jako objekt, operující nad dynamickým seznamem, musí obsahovat tyto a další funkce : - načtení databáze ze souboru - vytvoření databáze - uložení databáze do souboru - uvolnění databáze z haldy - přidání / odebrání studijní skupiny / odebrání všech studijních skupin - přidání / odebrání / odebrání všech studentů jedné a konkrétní studijní skupiny - přidání / odebrání známky konkrétnímu studentu konkrétní studijní skupiny - výpočet průměru prospěchu konkrétního studenta v konkrétní studijní skupině - výpočet průměru prospěchů konkrétní studijní skupiny - vyhodnocení studijních výsledků pro konkrétní studijní skupinu - apod.... Uživatelské rozhraní Podle diskuze zadání musí být elegantní, přehledné, funkční a jednoznačné. Dialogy vstupů musí být voleny tak, aby uživatele jednoznačně vedly k požadovanému cíli, měly by maximálně omezit možnost zadání chybného vstupu. Uživatelské rozhraní by dále mělo maximálně splňovat veškeré závazné normy pro aplikace typu Win32.

Schématické znázornění databáze Student - Jméno a Příjmení jsou textové položky typu String - Známka je dynamické pole celých čísel - Předchozí a Následující jsou odkazy na předchozího/následujícího studenta typu Pointer Studijní skupina - Název je textová položka typu String - 1. Student je odkaz na prvního studenta ve skupině, implicitně nill - Předchozí a Následující jsou odkazy na předchozí/následující studijní skupinu Databáze - Název a Poznámka jsou textové položky typu String - 1. Skupina je odkaz na první studijní skupinu, implicitně nill

Znázornění databáze na haldě - Nenavazuje-li na prvek nějaký další, je odkaz na následujícího nill - Nenavazuje-li prvek na žádný předchozí, je odkaz na předchozí nill Respektive

Realizace Jádro je tvořeno třídou TStudentsDatabase, tato obsahuje všechny procedury a funkce, tak, aby bylo schopno pracovat nad databází a soubory dle koncepce projektu. Soubory databáze jsou de facto *.ini soubory, práci s těmito soubory elegantně zajišťuje třída TINIFile implementovaná v systému Delphi. Uživatelské rozhraní je tvořeno systémem formulářů. Tyto jsou neprofesionálně nadefinovány staticky, nicméně si troufám tvrdit, že to pro potřebu aplikace tohoto charakteru plně postačuje. Následuje už jenom výpis hlavičky hlavní unity, resp. třídy TStudentsDatabase : type TArrayOfBytes = array of byte; TMarks = TArrayOfBytes; // ukazatel na strukturu TStudent PStudent = ^TStudent; // struktura TSTudent TStudent = record Name : string; // jmeno studenta Surrname : string; // prijmeni studenta Marks : TMarks; // dynamicke pole s jeho prospechem Prew, // pointer na predchoziho studenta Next : PStudent; // pointer na nasledujiciho studenta end; // ukazatel na strukturu TWorkGroup PWorkGroup = ^TWorkGroup; // struktura TWorkGroup TWorkGroup = record Name : string; // nazev prac skupiny Students : PStudent; // pointer na prvniho studenta Prew, // pointer na predchozi pracovni skupinu Next : PWorkGroup; // pointer na nasledujici pracovni skupinu end; // struktura TDatabaseList, predstavujici defakto linearni seznam // s neomezenym poctem pracovnich skupin s neomezenym poctem studentu TDatabaseList = record Name : string; // jmeno databaze Description : string; // poznamka k databazi WorkGroups : PWorkGroup; // pointer na prvni prac. skupinu end; PTreeNode = ^TTreeNode; TStudentDatabase = class(tcomponent) protected DatabaseExists : boolean; INIFile : TINIFile; fdatabaselist : TDatabaseList; ftree : TTreeView; private public constructor Create(AOwner : TComponent; const Tree : TTreeView); reintroduce; destructor Destroy; override; procedure ClearTreeView; procedure DisposeDatabase function GetWorkGroupTreeNode(const workgroupindex : word) : PTreeNode; function GetStudentTreeNode(const workgroupindex, studentindex : word) : PTreeNode; function GetWorkGroup(const ind : word) : PWorkGroup; function GetStudent(const workgroupindex, index : word) : PStudent; function GetStudentByPointer(const workgroup : PWorkGroup; const studentindex : word) : PStudent;

procedure CreateDatabaseList(const name : string); procedure ShowInTree; procedure SelectWorkGroupInTree(const workgroupindex : integer); procedure SelectStudentInTree(const workgroupindex, studentindex : integer); procedure DeleteDatabase; procedure DeleteWorkGroup(const workgroupindex : word); procedure DeleteStudent(const workgroupindex, studentindex : word); procedure DeleteAllStudents(const workgroupindex : word); procedure DeleteAllStudentsByPointer(const workgroup : PWorkGroup); procedure DeleteSelected(const workgroupindex, studentindex : integer); procedure DeleteMark(const workgroupindex, studentindex, mark : integer); function SaveToFile(const filepath : string) : boolean; function LoadFromFile(const filepath : string) : boolean; function AddWorkGroup(const name : string) : integer function AddStudent(const workgroupindex : integer; const name, surrname : string) : integer; function NewDatabase(const databasepath, name, description : string) : boolean; function CanSaveDatabase : boolean; function CanAddItems : boolean; function GetStudentsCount(const workgroupindex : integer) : integer; function GetWorkGroupsCount : integer; function GetStudentsCountByPointer(const workgroup : PWorkGroup) : integer; function AddMark(const workgroup, student : integer; const mark : byte) : integer; function GetStudentAverage(const workgroupindex, studentindex : word) : real; function GetWorkGroupAverage(const workgroupindex : word) : real; function GetBestNStudents(const workgroupindex, n : word) : TArrayOfBytes; property DatabaseList : TDatabaseList read fdatabaselist; published {} end;

Uživatelské rozhraní a uživatelská příručka Instalace Aplikace se neinstaluje, pouze se rozbalí do pracovního adresáře, tento adresář aplikace bude později chápat, jako výchozí pro otevírání a ukládání databází. Je samozřejmě schopna ukládat a načítat z jiných adresářů. Archiv obsahuje soubor students2005.exe, soubor ukázkové databáze fsi.fis a tento dokument students2005.pdf. První kroky Po úspěšné instalaci a spuštění aplikace jsme ohromeni elegancí tohoto okna : Nyní máme v zásadě dvě možnosti, jak pokračovat. Můžeme vytvořit novou databází, a nebo načíst ukázkovou databázi ze souboru. Zvolme variantu a) a klikněme na první tlačítko v nástrojové liště zleva Nová databáze. Otevře se tento průvodce :

Jsme vyvedeni z míry invencí otevřivšího se okna, ale nicméně se přemůžeme a následujeme rady průvodce a vyplníme položky a stiskněme tlačítko Další >. Následuje další část dialogu, z této se samozřejmě můžeme vrátit zpět, stejně tak bez jakýchkoli následků na zdraví a majetku můžeme stisknout Storno, tato volba zmaří veškeré snahy o založení databáze a vrátí nás do výchozího stavu. Bohužel uživateli není možno zabránit, aby se pokusil vytvořit soubor s cestou typu : C:\procnepouzitotaznikyvnazvusouboru?????.fis, proto se aplikace pokusí soubor vytvořit a až na základě selhání zápisu, který je ošetřen standardním try except, vyhodí hlášku o chybě. Zadá-li uživatel název souboru, který již existuje, je na to šetrně upozorněn a je mu nenápadně podsunuta otázka, zda to skutečně zamýšlel a zda si existující soubor přeje přepsat. Pokud jsme prošli úskalím vytvoření nové databáze, měli bychom spatřit něco velmi podobné následujícímu : Přidávání pracovních skupin a studentů

V tuto chvíli se nám již otevírá nesmírně vzrušující možnost přidávat skupiny a studenty, toto nám bylo doposud znemožněno, protože databáze ještě neexistovala a nebyla ani načtena, proto nemělo smysl nic nikam přidávat. Zkusme si nyní přidat několik skupin čtvrtým tlačítkem na nástrojové liště zleva Přidej kruh. : Tlačítko OK se uschopní až v momentě, kdy má vepsaný název skupiny minimálně jeden znak, zneschopní se v momentě, pokud je textové pole prázdné. Vytvořili jsme tedy skupinu a nyní se pokusme přidat do této skupiny studenta, použijeme na to tlačítko Přidej studenta. Výraznou podmínkou úspěchu této akce je, že musí být označena skupina ke které se chystáme přidávat, není-li tomu tak, aplikace nás nařkne z neschopnosti. Podmínka přidání studenta je ještě rozšířena o skutečnost, že musí být vyplněno jak jméno, tak příjmení, experimentování s touto podmínkou vede ke změnám funkční impotence tlačítka OK dialogu stejně jako v případě skupiny. Po vzájemné domluvě s programem dosahujeme cca tohoto výsledku :

Jsme ve fázi, kdy lze s lehkým sadismem, čí bez něj klasifikovat studenty. Učiňme tak prostřednictvím tlačítka Přidej hodnocení. Formulář, který spatříme je záměrně řešen tak, aby uživatel zvolil nějakou známku n, kde n N n < 0, 5 >. Samozřejmě, že následuje opět podmínka označení nějakého studenta. Produktem naší snahy může být něco podobného : Průměr studenta je aktualizován v závislosti na změnách známek.

Odebírání položek databáze Skupiny a studenty jsme přidali a nyní je odebereme, odebrání studenta dosáhneme jeho označení ve skupině a stisknutím tlačítka Smaž, student se odstraní dynamického seznamu a odstraní se z haldy, to samé platí pro skupiny s tím rozdílem, že jsou odstraněni z haldy i všichni studenti skupiny, pokud nějaké měla. Označení kořenu stromu s názvem databáze a stisk tlačítka Smaž má za následek odstranění celé databáze a de facto návrat ve výchozí stav. U klasifikace můžeme při odstraňování známek popustit uzdu fantazii a kreativitě poněkud více, jelikož lze označit jednu známku v tabulce, nebo skupinu po sobě následujících známek, po stisku tlačítka Smaž, bude celý námi vybraný interval smazán a průměr přepočítán. Načtení databáze Vše co platí pro databázi vytvořenou platí i pro tu načtenou. Ze souboru databázi načteme po stisku tlačítka Otevři databázi v nástrojové liště, nepřekvapí nás standardní dialog pro otevření. Uložení změn Změny uložíme tak, že stiskneme tlačítko Ulož. Otevře se standardní dialog pro ukládání, chceme-li pouze uložit změny zvolíme stejný soubor, jaký je ten momentálně načtený. Statistika prospěchu V zadání projektu byla řeč o vyhodnocování prospěchu jednotlivých studentů, aby tomu bylo učiněno zadost stiskněme tlačítko Statistika. Kde se konečně dostáváme k prapůvodnímu požadavku a smyslu cca 3tisíc řádků programového kódu : Toto okno nás informuje kdo je v jaké skupině nejlepší, nejhorší a jak si vedou jednotlivé skupiny.

Technické parametry aplikace Jazyk : Object Pascal 32, IDE Deplhi 7 Personal Platforma : IBM PC, MS Windows 95+ Verze : 1.0.0.build Soubory nutné pro chod programu : students2005.exe Velikost programu : 971.5 kb Programový kód : 2689 řádků, 89.3 kb Jazyková lokalizace : čeština Licence : freeware, opensource Uživatelská podpora : stanek_martin@seznam.cz http://www.stanek-martin.euweb.cz Vývojová platforma Acer TravelMate 620 Intel Pentium IIIm, 1200MHz, 256MB RAM MS Windows XP SP2