Funkčný diagram a funkčné zloženie programu. Štruktúrovaný dizajn programu


Téma 1.3: Systémový softvér

Téma 1.4: Servisný softvér a základy algoritmov

Úvod do hospodárskej informatiky

1.3. Systémový softvér PC

1.3.1. Štruktúra softvéru PC

Súbor programov navrhnutých na riešenie problémov na PC sa nazýva softvér. Zloženie PC softvéru sa nazýva konfigurácia softvéru.

Softvér možno rozdeliť do troch kategórií:

  1. systémový softvér (programy na všeobecné použitie), ktoré vykonávajú rôzne pomocné funkcie, ako je vytváranie kópií použitých informácií, poskytovanie pomocných informácií o počítači, kontrola funkčnosti zariadení počítača atď.
  2. aplikačný softvér, ktorý zabezpečuje potrebnú prácu na PC: úpravu textových dokumentov, vytváranie kresieb alebo obrázkov, spracovanie informačných polí atď.
  3. nástrojový softvér (programovacie systémy), ktorý zabezpečuje vývoj nových počítačových programov v programovacom jazyku.


Ryža. 1.

Systémový softvér

Tieto programy na všeobecné použitie nie sú spojené s konkrétnou počítačovou aplikáciou a vykonávajú tradičné funkcie: plánovanie a správa úloh, správa I/O atď.

Inými slovami, systémové programy vykonávajú rôzne pomocné funkcie, napríklad vytvárajú kópie použitých informácií, poskytujú pomocné informácie o počítači, kontrolujú funkčnosť počítačových zariadení atď.

Systémový softvér zahŕňa:

  • operačné systémy (tento program sa načíta do pamäte RAM, keď je počítač zapnutý);
  • shellové programy (poskytujú pohodlnejší a vizuálnejší spôsob komunikácie s počítačom ako používanie príkazového riadku systému DOS, napríklad Norton Commander);
  • operačné shelly – systémy rozhraní, ktoré sa používajú na vytváranie grafických rozhraní, multiprogramovanie atď.;
  • Ovládače (programy určené na ovládanie portov periférnych zariadení, zvyčajne načítané do pamäte RAM pri spustení počítača);
  • utility (pomocné alebo pomocné programy, ktoré užívateľovi poskytujú množstvo doplnkových služieb).

Služby zahŕňajú:

  • správcovia súborov alebo správcovia súborov;
  • prostriedky dynamickej kompresie dát (umožňujú zvýšiť množstvo informácií na disku vďaka jeho dynamickej kompresii);
  • nástroje na prezeranie a prehrávanie;
  • diagnostické nástroje; ovládacie nástroje umožňujú kontrolovať konfiguráciu počítača a kontrolovať výkon počítačových zariadení, predovšetkým pevných diskov;
  • komunikačné nástroje (komunikačné programy) sú určené na organizovanie výmeny informácií medzi počítačmi;
  • Nástroje počítačovej bezpečnosti (zálohovanie, antivírusový softvér).

Je potrebné poznamenať, že niektoré nástroje sú súčasťou operačného systému, zatiaľ čo druhá časť funguje autonómne. Väčšina všeobecného (systémového) softvéru je súčasťou OS. Časť všeobecného softvéru je súčasťou samotného počítača (niektoré programy OS a kontrolné testy sú napísané v ROM alebo PROM nainštalovanom na základnej doske). Niektoré z bežných softvérov sú samostatné programy a dodávajú sa samostatne.

Aplikačný softvér

Aplikačné programy môžu byť použité samostatne alebo ako súčasť softvérových systémov alebo balíkov.

Aplikačný softvér – programy, ktoré priamo umožňujú vykonávať potrebnú prácu na PC: úpravu textových dokumentov, vytváranie kresieb alebo obrázkov, vytváranie tabuliek atď.

Aplikačné softvérové ​​balíky sú systémom programov, ktoré sa podľa rozsahu použitia delia na problémovo orientované, univerzálne balíky a integrované balíky. Moderné integrované balíky obsahujú až päť funkčných komponentov: testovací a tabuľkový procesor, DBMS, grafický editor, telekomunikačné nástroje.

Aplikačný softvér napríklad zahŕňa:

  1. balík kancelárskych aplikácií MS OFFICE.
  2. Účtovné systémy.
  3. Finančné analytické systémy.
  4. Integrované balíky pre správu kancelárie.
  5. CAD – systémy (computer-aided design systems).
  6. HTML alebo webové editory.
  7. Prehliadače sú prostriedky na prezeranie webových stránok.
  8. Grafický editor.
  9. Expertné systémy.

Nástrojový softvér

Nástrojový softvér alebo programovacie systémy sú systémy na automatizáciu vývoja nových programov v programovacom jazyku.

V najvšeobecnejšom prípade na vytvorenie programu vo vybranom programovacom jazyku (systémovom programovacom jazyku) potrebujete mať nasledujúce komponenty:

  1. Textový editor na vytvorenie súboru so zdrojovým textom programu.
  2. Kompilátor alebo interpret. Zdrojový text je preložený do stredného objektového kódu pomocou kompilačného programu. Zdrojový kód veľkého programu pozostáva z niekoľkých modulov(zdrojové súbory). Každý modul je zostavený do samostatného súboru s objektovým kódom, ktorý sa potom musí spojiť do jedného.
  3. Link editor alebo assembler, ktorý vykonáva prepojenie objektových modulov a generuje fungujúcu aplikáciu ako výstup – spustiteľný kód. Spustiteľný kód je úplný program, ktorý je možné spustiť na akomkoľvek počítači s operačným systémom, pre ktorý bol program vytvorený. Výsledný súbor má spravidla príponu .EXE alebo .COM.
  4. V poslednej dobe sa rozšírili metódy vizuálneho programovania (pomocou skriptovacích jazykov) zamerané na vytváranie aplikácií pre Windows. Tento proces je automatizovaný v prostredí rýchleho návrhu. V tomto prípade sa používajú hotové vizuálne komponenty, ktoré sa konfigurujú pomocou špeciálnych editorov.

Najpopulárnejšie editory (programovacie systémy využívajúce vizuálne nástroje) pre vizuálny dizajn:

  1. Borland Delphi - navrhnutý tak, aby vyriešil takmer akýkoľvek problém s programovaním aplikácií.
  2. Borland C++ Builder je vynikajúci nástroj na vývoj aplikácií pre DOS a Windows.
  3. Microsoft Visual Basic je populárny nástroj na vytváranie programov Windows.
  4. Microsoft Visual C++ – tento nástroj vám umožňuje vyvíjať akékoľvek aplikácie bežiace v prostredí operačného systému, ako je Microsoft Windows.

Súbor programov navrhnutých na riešenie problémov na PC sa nazýva softvér. Zloženie PC softvéru sa nazýva konfigurácia softvéru. Softvér možno rozdeliť do troch kategórií (obr. 1):

Obrázok 1. Klasifikácia softvéru

    systémový softvér (programy na všeobecné použitie), ktoré vykonávajú rôzne pomocné funkcie, ako je vytváranie kópií použitých informácií, poskytovanie pomocných informácií o počítači, kontrola funkčnosti zariadení počítača atď.

    aplikačný softvér, ktorý zabezpečuje potrebnú prácu na PC: úpravu textových dokumentov, vytváranie kresieb alebo obrázkov, spracovanie informačných polí atď.

    nástrojový softvér (programovacie systémy), ktorý zabezpečuje vývoj nových počítačových programov v programovacom jazyku.

Systémový softvér je súbor programov, ktoré poskytujú efektívnu správu komponentov počítačového systému, ako je procesor, RAM, vstupné/výstupné zariadenia, sieťové zariadenia, fungujúce ako „medzivrstvové rozhranie“, na jednej strane ktorého je hardvér a na druhej strane, užívateľské aplikácie. Na rozdiel od aplikačného softvéru systémový softvér nerieši konkrétne aplikačné problémy, ale iba zabezpečuje chod iných programov, spravuje hardvérové ​​prostriedky počítačového systému atď.

Tieto programy na všeobecné použitie nie sú spojené s konkrétnou počítačovou aplikáciou a vykonávajú tradičné funkcie: plánovanie a správa úloh, správa I/O atď. Inými slovami, systémové programy vykonávajú rôzne pomocné funkcie, napríklad vytvárajú kópie použitých informácií, poskytujú pomocné informácie o počítači, kontrolujú funkčnosť počítačových zariadení atď. Systémový softvér zahŕňa:

    operačné systémy (tento program sa načíta do pamäte RAM po zapnutí počítača)

    shell programy (poskytujú pohodlnejší a vizuálnejší spôsob komunikácie s počítačom ako používanie príkazového riadku DOS, napríklad Norton Commander)

    operačné shelly sú systémy rozhrania, ktoré sa používajú na vytváranie grafických rozhraní, multiprogramovanie atď.

    Ovládače (programy určené na ovládanie portov periférnych zariadení, zvyčajne načítané do pamäte RAM pri spustení počítača)

    utility (pomocné alebo pomocné programy, ktoré užívateľovi poskytujú množstvo doplnkových služieb)

Služby zahŕňajú:

    správcovia súborov alebo správcovia súborov

    nástroje na dynamickú kompresiu údajov (umožňujú zvýšiť množstvo informácií na disku vďaka jeho dynamickej kompresii)

    nástroje na prezeranie a prehrávanie

    diagnostické nástroje; ovládacie nástroje umožňujú kontrolu konfigurácie počítača a kontrolu funkčnosti počítačových zariadení, predovšetkým pevných diskov

    komunikačné nástroje (komunikačné programy) sú určené na organizovanie výmeny informácií medzi počítačmi

    Nástroje počítačovej bezpečnosti (zálohovanie, antivírusový softvér).

Utility sú programy určené na riešenie úzkeho rozsahu pomocných úloh.

Niekedy sú nástroje klasifikované ako servisný softvér

Nástroje sa používajú na:

    Monitorovanie indikátorov senzorov a výkonu zariadenia - monitorovanie teploty procesora a grafického adaptéra; čítanie S.M.A.R.T. pevné disky;

    Správa parametrov zariadenia - obmedzenie maximálnej rýchlosti otáčania CD mechaniky; zmena rýchlosti ventilátora.

    Monitorovacie ukazovatele - kontrola referenčnej integrity; správnosť záznamu údajov.

    Rozšírené možnosti - formátovanie a/alebo opätovné rozdelenie disku pri ukladaní dát, mazanie bez možnosti obnovy.

Typy inžinierskych sietí:

Diskové nástroje

      Defragmentátory

      Kontrola disku – vyhľadávanie súborov a oblastí disku, ktoré boli nesprávne zaznamenané alebo rôznym spôsobom poškodené a ich následné odstránenie pre efektívne využitie miesta na disku.

      Čistenie disku - odstránenie dočasných súborov, nepotrebných súborov, vyprázdnenie koša.

      Rozdelenie disku je rozdelenie disku na logické disky, ktoré môžu mať rôzne systémy súborov a operačný systém ich vníma ako niekoľko rôznych diskov.

      Zálohovanie - vytváranie záložných kópií celých diskov a jednotlivých súborov, ako aj obnova z týchto kópií.

      Disková kompresia - kompresia informácií na diskoch na zvýšenie kapacity pevných diskov.

      • Pomôcky registra

        Nástroje na monitorovanie zariadení

        Skúšky zariadení

Obrázok 2. Miesto open source softvéru vo viacúrovňovej štruktúre počítača

Je potrebné poznamenať, že niektoré nástroje sú súčasťou operačného systému, zatiaľ čo druhá časť funguje autonómne. Väčšina všeobecného (systémového) softvéru je súčasťou OS (obr. 2). Časť všeobecného softvéru je súčasťou samotného počítača (niektoré programy OS a kontrolné testy sú napísané v ROM alebo PROM nainštalovanom na základnej doske). Niektoré z bežných softvérov sú samostatné programy a dodávajú sa samostatne.

          Aplikačný softvér. Aplikačné programy môžu byť použité samostatne alebo ako súčasť softvérových systémov alebo balíkov. Aplikačný softvér - programy, ktoré priamo podporujú vykonávanie nevyhnutnej práce na PC: úprava textových dokumentov, vytváranie výkresov alebo obrázkov, vytváranie tabuliek a pod. Aplikačné softvérové ​​balíky sú sústavou programov, ktoré sa podľa rozsahu použitia delia na problémovo orientované, termíny všeobecných balíkov a integrované balíky. Moderné integrované balíky obsahujú až päť funkčných komponentov: testovací a tabuľkový procesor, DBMS, grafický editor, telekomunikačné nástroje. Aplikačný softvér napríklad zahŕňa:

    balík kancelárskych aplikácií MS OFFICE

    Účtovné systémy

    Finančné analytické systémy

    Integrované balíky pre správu kancelárie

    CAD – systémy (počítačom podporované konštrukčné systémy)

    HTML alebo webové editory

    Prehliadače – prostriedky na prezeranie webových stránok

    Grafický editor

    Expertné systémy.

          Nástrojový softvér. Nástrojový softvér alebo programovacie systémy sú systémy na automatizáciu vývoja nových programov v programovacom jazyku. V najvšeobecnejšom prípade, ak chcete vytvoriť program vo vybranom programovacom jazyku (systémový programovací jazyk), musíte mať nasledujúce komponenty: 1. Textový editor na vytvorenie súboru so zdrojovým textom programu. 2. Kompilátor alebo interpret. Zdrojový text je preložený do stredného objektového kódu pomocou kompilačného programu. Zdrojový kód veľkého programu pozostáva z niekoľkých modulov(zdrojové súbory). Každý modul je zostavený do samostatného súboru s objektovým kódom, ktorý je potom potrebné spojiť do jedného celku.3. Link editor alebo assembler, ktorý vykonáva prepojenie objektových modulov a generuje fungujúcu aplikáciu ako výstup – spustiteľný kód. Spustiteľný kód je úplný program, ktorý je možné spustiť na akomkoľvek počítači s operačným systémom, pre ktorý bol program vytvorený. Výsledný súbor má spravidla príponu .EXE alebo .COM.4. V poslednej dobe sa rozšírili metódy vizuálneho programovania (pomocou skriptovacích jazykov) zamerané na vytváranie aplikácií pre Windows. Tento proces je automatizovaný v prostredí rýchleho návrhu. V tomto prípade sa používajú hotové vizuálne komponenty, ktoré sa konfigurujú pomocou špeciálnych editorov. Najpopulárnejšie editory (programovacie systémy využívajúce vizuálne nástroje) pre vizuálny dizajn:

    Borland Delphi - navrhnutý tak, aby vyriešil takmer akýkoľvek problém s programovaním aplikácií

    Borland C++ Builder je vynikajúci nástroj na vývoj aplikácií pre DOS a Windows

    Microsoft Visual Basic je populárny nástroj na vytváranie programov Windows

    Microsoft Visual C++ – tento nástroj vám umožňuje vyvíjať akékoľvek aplikácie bežiace v prostredí operačného systému, ako je Microsoft Windows

Kontrolné otázky:

    Definujte operačný systém.

    Aký softvér sa považuje za systémový softvér?

    Pomenujte obslužný softvér.

    Aký softvér sa považuje za aplikačný softvér?

    Aký je účel softvéru?

    Aké sú hlavné triedy programov? Uveďte príklady programov v každej triede podľa ich účelu.

Štrukturálne a funkčné schémy programu

Štrukturálny diagram je súbor elementárnych väzieb objektu a spojení medzi nimi, jeden z typov grafických modelov. Elementárnym článkom sa rozumie časť objektu, riadiaceho systému a pod., ktorá realizuje elementárnu funkciu. Na obr. 2.1 je bloková schéma vyvinutého programu.

Obrázok 2.1 - Bloková schéma programu

Funkčná schéma je dokument, ktorý vysvetľuje procesy prebiehajúce v jednotlivých funkčných okruhoch produktu (inštalácie) alebo produktu ako celku. Funkčný diagram je vysvetlenie určitých typov procesov vyskytujúcich sa v integrálnych funkčných blokoch a obvodoch zariadenia. Na obrázku 2.2 je funkčná schéma vyvinutého programu.

Obrázok 2.2 - Funkčná schéma programu

Popis procedúr, funkcií a modulov

Vyhlásenie modulu:

Každý zdrojový súbor musí obsahovať deklaráciu modulu. Slovo jednotka je kľúčové slovo, preto ho treba písať malými písmenami. Názov modulu môže obsahovať veľké aj malé písmená a musí byť rovnaký ako názov používaný operačným systémom pre tento súbor.

Štandardné moduly jazyka Delphi. Prostredie Delphi obsahuje výbornú sadu modulov, ktorých schopnosti uspokoja aj toho najnáročnejšieho programátora. Všetky moduly možno rozdeliť do dvoch skupín: systémové moduly a moduly vizuálnych komponentov.

Systémové moduly zahŕňajú System, SysUtils, ShareMem, Math. Obsahujú najčastejšie používané dátové typy v programoch, konštanty, premenné, procedúry a funkcie. Modul System je srdcom prostredia Delphi; v ňom obsiahnuté podprogramy zabezpečujú chod všetkých ostatných modulov systému. Modul System je automaticky súčasťou každého programu a nie je potrebné ho špecifikovať v príkaze use.

Moduly vizuálnych komponentov (VCL - Visual Component Library) slúžia na vizuálny vývoj plnohodnotných GUI aplikácií - aplikácií s grafickým užívateľským rozhraním (Graphical User Interface). Tieto moduly spolu predstavujú objektovo orientovanú knižnicu na vysokej úrovni so všetkými druhmi prvkov používateľského rozhrania: tlačidlá, štítky, ponuky, panely atď. Okrem toho moduly tejto knižnice obsahujú jednoduché a efektívne prostriedky na prístup k databázam. Tieto moduly sa pripájajú automaticky po umiestnení komponentov na formulár.

Popis procedúr:

Tento postup zatvorí titulnú stranu a stranu a ukončí program.

procedure TForml.Button2Click(Sender: TObject);

Tento postup otvorí hlavné menu programu a odstráni titulnú stránku z obrazovky.

procedure TForm2.Button1Click(Sender: TObject);

Tento postup otvorí okno s výberom spôsobu riešenia problému s prepravou a odstráni okno ponuky z obrazovky.

Tento postup otvorí okno s informáciami o vyvinutom programe a odstráni okno ponuky z obrazovky.

Tento postup otvorí okno s informáciami pomocníka pre program, čo používateľovi uľahčí prácu a odstráni okno ponuky.

Tento postup otvorí okno o vývojárovi a odstráni okno ponuky.

procedure TForm2.Button5Click(Sender: TObject);

Tento postup zatvorí okno ponuky a ukončí program.

procedure TForm3.Button1Click(Sender: TObject);

Tento postup opustí hlavnú ponuku a zatvorí okno s výberom spôsobu riešenia problému s prepravou:

procedure TForm3.Button3Click(Sender: TObject);

Tento postup zatvorí okno s riešením dopravného problému pomocou troch metód a zobrazí formulár s riešením problému metódou minimálnych nákladov:

Tento postup zatvorí okno s riešeniami problému dopravy pomocou troch metód a zobrazí formulár s riešením problému pomocou metódy dvojitej preferencie:

procedure TForm2.Button2Click(Sender: TObject);

procedure TForm2.Button3Click(Sender: TObject);

procedure TForm2.Button4Click(Sender: TObject);

Tieto postupy umožňujú používateľovi prejsť z hlavnej ponuky na ľubovoľnú položku v programe: „Formulár riešenia“, „Príručka používateľa“, „Informácie pre vývojárov“, „Koniec“.

postup KROK ZA KROKOM;

Toto je postup na vykonávanie výpočtov krok za krokom v programe, môžete sledovať každú fázu vyplnenia tabuľky. Po vykonaní jedného výpočtu procedúra preruší výpočet a čaká na príkazy od užívateľa.

procedure TForm4.Label2Click(Sender: TObject);

procedure TForm4.Label3Click(Sender: TObject);

procedure TForm4.Label4Click(Sender: TObject);

procedure TForm4.Label5Click(Sender: TObject);

Tieto postupy načítajú textové pole Memo s obsahom textového dokumentu v závislosti od vybratej položky ponuky. Textové dokumenty obsahujú informácie o používaní aplikácie.

procedure TForm1.Button8Click(Sender: TObject);

Tento postup vykoná výpočty pomocou vzorcov, dosadí zadané hodnoty a nakoniec zapíše výsledok do premennej.

procedure TForm1.Button9Click(Sender: TObject);

Tento postup zobrazí odpoveď v textovom poli.

procedure TForm1.Button2Click(Sender: TObject);

Tento postup vyplní vstupné polia počiatočnými údajmi v súlade so zadaním pre projekt kurzu.

procedure TForm3.Button4Click(Sender: TObject);

procedure TForm4.Button1Click(Sender: TObject);

Tieto postupy zatvoria okno a zobrazia formulár s výberom položky ponuky.

čistenie postupu;

Tento postup vymaže vstupné a výstupné polia a uvoľní premenné z hodnoty, ktorú majú.


Vývoj programového blokového diagramu (architektúry) je jednou z najdôležitejších etáp v procese vývoja softvéru z nasledujúcich dôvodov:

  • nesprávna voľba architektúry vedie k riziku zlyhania celého projektu v budúcnosti;

  • táto fáza je základom celého procesu vývoja;

  • dobre premyslená architektúra uľahčuje úpravu softvérového produktu, ak sa zmenia požiadavky naň.
Architektúrou sa rozumie súbor programových komponentov, ako aj väzieb a spôsobov organizácie výmeny informácií medzi nimi. Prvou úlohou, ktorú je potrebné vyriešiť pri vývoji štruktúrneho diagramu systému, je úloha identifikovať jeho základné komponenty.

Na základe analýzy požiadaviek na systém je určený súbor všetkých funkcií, ktoré musí program podporovať. Následne sa získané funkcie skombinujú do logicky prepojených skupín. Každá z týchto skupín sa môže stať jednou zo súčastí softvérového systému. Musíte byť pripravení na to, že prvá verzia sady komponentov nebude úplná. Počas procesu analýzy prvkov a v počiatočných fázach architektonického návrhu môžu byť identifikované ďalšie prvky, ktoré je potrebné zahrnúť do vyvíjaného programu. Z veľkej časti budú tieto funkcie potrebné na vykonávanie technologických procesov na udržanie systému v neporušenom a prevádzkyschopnom stave. Je celkom prirodzené predpokladať, že tieto funkčné vlastnosti nemôžu byť známe zákazníkovi softvérového systému a vývojárom v prvých fázach vývoja.

V prvom rade musí architektúra programu obsahovať všeobecný popis systému. Bez takéhoto popisu je dosť ťažké vytvoriť súvislý obraz z mnohých malých detailov alebo aspoň tucta samostatných tried. Architektúra by mala obsahovať dôkazy o tom, že sa pri jej vývoji zvažovali alternatívne možnosti a odôvodniť výber konečnej organizácie systému.

Architektúra musí jasne definovať zodpovednosti každého komponentu. Komponent by mal mať jednu oblasť zodpovednosti a mal by vedieť čo najmenej o oblastiach zodpovednosti ostatných komponentov. Minimalizáciou množstva informácií, ktoré komponenty vedia o iných komponentoch, môžete jednoducho lokalizovať informácie o návrhu aplikácie do jednotlivých komponentov.

Architektúra musí jasne definovať pravidlá komunikácie medzi komponentmi programu a popísať, ktoré ďalšie komponenty môže daný komponent využívať priamo, ktoré nepriamo a ktoré by nemal používať vôbec.

Používateľské rozhranie sa často navrhuje vo fáze požiadaviek. Ak to tak nie je, malo by sa to určiť vo fáze návrhu architektúry. Architektúra by mala popisovať hlavné prvky formátu webovej stránky, grafického rozhrania (GUI) atď. Použiteľnosť rozhrania môže v konečnom dôsledku určiť popularitu alebo zlyhanie programu.

Architektúra programu je modulárna, takže grafické rozhranie je možné meniť bez ovplyvnenia základnej logiky programu.

Program na spracovanie dotazníkov študentských prieskumov možno rozdeliť na dve časti s rôznymi funkciami a úrovňami prístupu pre používateľov:


  • systém študentských prieskumov;

  • systém na spracovanie výsledkov prieskumu;

  • riadiaci systém.
Všetky časti sú prepojené do jedného programu spoločnou databázou.



Obrázok 2.1. - Štruktúra systému


Prieskumný systém obsahuje nasledujúce funkcie:

  • zadanie otázky z dotazníka;

  • automatická kontrola typu a správnosti zadaných údajov;

  • ukladanie údajov do databázy.
Systém na spracovanie výsledkov prieskumu vám umožňuje:

  • zobrazovať alebo tlačiť prehľady prieskumov;

  • zobraziť informácie o prieskume konkrétneho študenta;

  • porovnajte výsledky súčasných a predchádzajúcich prieskumov s rovnakými otázkami.
Riadiaci systém umožňuje:

  • kontrolovať priebeh prieskumu;

  • spravovať údaje - pridávať, mazať a meniť;
Každý zo systémov je možné rozdeliť na dva podsystémy podľa prostredia, v ktorom beží:

  • serverová časť napísaná v programovacom jazyku PHP a vykonávaná na serveri;

  • klientska časť, napísaná v značkovacom jazyku HTML a programovacom jazyku JavaScript pomocou knižnice jQuery a spustená v prehliadači používateľa.
S
Serverová časť programu svojou štruktúrou zodpovedá architektúre MVC (Model-View-Controller) alebo model-view-controller. MVC je softvérová architektúra, v ktorej sú dátový model aplikácie, používateľské rozhranie a logika riadenia rozdelené do troch samostatných komponentov, takže úprava jedného komponentu má minimálny vplyv na ostatné komponenty.
Obrázok 2.2. – Architektúra Model-View-Controller
Tento prístup vám umožňuje rozdeliť údaje, prezentáciu a spracovanie akcií používateľa do troch samostatných komponentov.

  • Model(Model) - modul zodpovedný za priamy výpočet niečoho na základe údajov získaných od používateľa. Výsledok získaný týmto modulom musí byť odovzdaný riadiacej jednotke a nesmie obsahovať nič súvisiace s priamym výstupom (to znamená, že musí byť prezentovaný v internom formáte systému). Hlavným cieľom je, aby bol model úplne nezávislý od ostatných častí a nevedel o ich existencii takmer nič, čo by umožnilo meniť ovládač aj pohľad na model bez toho, aby ste sa dotkli samotného modelu, a dokonca umožnilo fungovanie niekoľkých inštancií pohľady a ovládače s rovnakým modelom v rovnakom čase. V dôsledku toho model za žiadnych okolností nemôže obsahovať odkazy na objekty zobrazenia alebo ovládača.

  • vyhliadka- modul výstupu informácií. K zodpovednostiam pohľadu patrí zobrazovanie údajov získaných z modelu. Pohľad má zvyčajne voľný prístup k modelu a môže z neho preberať údaje, ide však o prístup len na čítanie; pohľad má zakázané meniť čokoľvek v modeli alebo dokonca jednoducho volať metódy, ktoré vedú k zmenám v jeho internom stave. Na interakciu s ovládačom pohľad zvyčajne implementuje rozhranie známe ovládaču, ktoré umožňuje nezávisle meniť pohľady a má viacero pohľadov na ovládač.

  • Ovládač- modul riadenia vstupu a výstupu dát. Úlohy regulátora zahŕňajú reakciu na vonkajšie udalosti a zmenu modelu a/alebo pohľadu v súlade s logikou v ňom vloženou. Jeden ovládač môže v závislosti od situácie pracovať s niekoľkými zobrazeniami, pričom s nimi interaguje prostredníctvom určitého (vopred známeho) rozhrania, ktoré tieto zobrazenia implementujú. Dôležitá nuansa - v klasickej verzii MVC ovládač neprenáša údaje z modelu do zobrazenia.

    Regulátor prijíma dáta od užívateľa a odovzdáva ich modelu. Okrem toho prijíma správy od modelu a odovzdáva ich pohľadu. Je dôležité poznamenať, že pohľad aj ovládač sú závislé od modelu. Model však nezávisí ani od ovládača, ani od správania. To je jedna z kľúčových výhod takéhoto delenia. Umožňuje vám zostaviť model nezávislý od vizuálnej reprezentácie, ako aj vytvoriť niekoľko rôznych reprezentácií pre jeden model.
Výhody, ktoré architektúra MVC predstavuje oproti tradičnému modelu:

  • transparentnosť systému;

  • jediný vstupný bod do systému;

  • opätovné použitie kódu;

  • rýchly vývoj;

  • dostupnosť hotových riešení;

  • jednoduchosť podpory;

  • ľahko vykonávať zmeny.
Využitie architektúry MVC teda poskytuje hmatateľné výhody pri návrhu a vývoji programu na spracovanie anketových dotazníkov pre študentov katedry, čo má pozitívny vplyv ako na rýchlosť samotného vývoja, tak aj na kvalitu konečného výsledku.

2.Vývoj štruktúry databázy programu

Organizácia štruktúry databázy je vytvorená na základe nasledujúcich úvah:

  • primeranosť k popisovanému objektu - na úrovni konceptuálneho a logického modelu;

  • jednoduchosť použitia pre účtovníctvo a analýzu dát - na úrovni takzvaného fyzického modelu.
Podľa modelu prezentácie údajov sú hlavné hierarchické, sieťové a relačné modely, a preto na prácu s každou z vyššie uvedených databáz používajú svoje vlastné DBMS.

V tomto prípade je najvhodnejší relačný dátový model, pretože všetky informácie je možné jednoducho prezentovať vo forme tabuliek. Relačný dátový model je logický dátový model, ktorý popisuje štrukturálny aspekt, aspekt integrity a aspekt spracovania údajov relačných databáz.

Štrukturálny aspekt- Údaje v databáze sú množinou vzťahov.

Aspekt integrity- vzťahy spĺňajú určité podmienky integrity.

Aspekt spracovania- sú podporované operátory manipulácie so vzťahmi.

Dôležitým aspektom návrhu databázy je normalizácia – proces prevodu databázy do formy, ktorá zodpovedá normálnym formám. Normalizácia pomáha chrániť vašu databázu pred logickými a štrukturálnymi problémami nazývanými dátové anomálie. Napríklad, ak je v tabuľke niekoľko rovnakých záznamov, existuje riziko narušenia integrity údajov pri aktualizácii tabuľky. Tabuľka, ktorá prešla normalizáciou, je menej náchylná na takéto problémy, pretože jeho štruktúra zahŕňa definovanie vzťahov medzi údajmi, čo eliminuje potrebu záznamov s duplicitnými informáciami.

Ako DBMS bol vybraný bezplatný databázový systém MySQL. Flexibilita MySQL DBMS je zabezpečená podporou veľkého množstva typov tabuliek: užívatelia si môžu vybrať ako tabuľky MyISAM, ktoré podporujú fulltextové vyhľadávanie, tak aj tabuľky InnoDB, ktoré podporujú transakcie na úrovni jednotlivých záznamov. Vďaka otvorenej architektúre a licencovaniu GPL (GNU General Public License - licencia na slobodný softvér, ktorej účelom je poskytnúť užívateľovi práva na kopírovanie, úpravu a distribúciu programov a tiež zabezpečiť, aby užívatelia všetkých odvodených programov dostali vyššie uvedené práva), v MySQL DBMS sa neustále objavujú nové typy tabuliek.

Dôležitou výhodou MySQL DBMS je, že bol portovaný na veľké množstvo platforiem, ako sú AIX, FreeBSD, HP-UX, GNU/Linux, Mac OS X, NetBSD, OpenBSD, Solaris a Windows. Upozorňujeme, že MySQL AB poskytuje na bezplatné stiahnutie nielen zdrojové kódy DBMS, ale aj hotové spustiteľné moduly zostavené a optimalizované pre konkrétne operačné systémy.

MySQL má aplikačné programovacie rozhranie (API) pre jazyky ako Delphi, C, C++, Java, Perl, PHP, Python a Ruby, knižnice pre jazyky platformy .NET a tiež poskytuje podporu pre ODBC prostredníctvom ovládača ODBC (Open DataBase Connectivity je programové rozhranie pre prístup k databázam) MyODBC.

Ako hlavný typ tabuľky bol zvolený typ MyISAM. Tabuľky MyISAM sú ideálne optimalizované na použitie v spojení s webovými aplikáciami, kde prevládajú dopyty na čítanie. Tabuľky ako MyISAM vykazujú veľmi dobré výsledky pri SELECT dotazoch. Je to z veľkej časti spôsobené nedostatočnou podporou transakcií a cudzích kľúčov. Pri úprave a pridávaní záznamov sa však celá tabuľka nakrátko uzamkne, čo môže pri veľkom zaťažení viesť k vážnym oneskoreniam. V prípade programu na analýzu prieskumných dotazníkov to však nie je vážny problém, pretože sa neplánuje vysoké zaťaženie systému.

Ďalšou výhodou tabuliek ako MyISAM je nezávislosť na platforme. Súbory tabuľky je možné presúvať medzi počítačmi rôznych architektúr a rôznych operačných systémov bez akejkoľvek konverzie.

Tabuľky MyISAM môžu mať pevné, dynamické alebo komprimované záznamy. Voľba medzi pevným a dynamickým formátom je daná definíciami stĺpcov.

Štruktúra databázy je znázornená na obrázku 2.4.

R

Obrázok 2.3. – Štruktúra databázy


Vzťahy medzi tabuľkami usporiadanými v databáze vám umožňujú vykonávať kaskádové mazanie a aktualizácie údajov. Použitie tabuliek odkazov umožnilo znížiť redundanciu údajov na minimum.

Tabuľka it_students obsahuje údaje o študentoch, ktorí dokončili prieskum.

Tabuľka 2.1 – tabuľka údajov „it_students“.


Lúka

Typ

Dĺžka

Popis

id

Číselné

11

Index

č

Číselné

11

Identifikačné číslo študenta

názov

Symbolický

100

názov

druhé meno

Symbolický

100

Priezvisko

priezvisko

Symbolický

100

Priezvisko

narodenia

dátum

-

Dátum narodenia

rok_postupl

rok

-

Rok prijatia

adresu

Symbolický

500

Adresa

phone_h

Symbolický

15

Domáci telefón

phone_m

Symbolický

15

Mobilný telefón

pošty

Symbolický

250

Emailová adresa

icq

Číselné

10

ICQ číslo

Tabuľka it_answers_var obsahuje možnosti odpovedí na otázky prieskumu.

Tabuľka 2.2 – Tabuľka údajov „it_answers_var“

Tabuľka it_questions obsahuje prieskumné otázky.

Tabuľka 2.3 – tabuľka údajov „it_questions“.

Tabuľka it_tests_cfg spája otázky prieskumu s konkrétnym dotazníkom.

Tabuľka 2.4 – Tabuľka údajov „it_tests_cfg“

Tabuľka it_tests obsahuje údaje o všetkých dotazníkoch a dátumoch prieskumov.

Tabuľka 2.5 – tabuľka údajov „it_tests“.

Tabuľka it_text_answers obsahuje údaje o odpovediach študentov zadaných ručne.

Tabuľka 2.6 – Tabuľka údajov „it_text_answers“

Tabuľka it_students_answers obsahuje údaje o odpovediach študentov.

Tabuľka 2.6 – Tabuľka údajov „it_students_answers“

3.Vývoj databázového modelu toku informácií

Keďže program na analýzu dotazníkov študentských prieskumov je postavený na princípe MVC, informačné toky môžu byť reprezentované nasledovne. Keď je prijatá požiadavka od užívateľa, ktorý odošle prehliadač na webový server, radič podľa naprogramovaných algoritmov kvalifikuje prijatú požiadavku, upraví ju a odošle do modelu. Model, ktorý je prepojením medzi radičom a DBMS, interpretuje požiadavku a vykoná príslušné volanie do MySQL DBMS, pričom výsledky vráti do kontroléra.

Je pozoruhodné, že pre kontrolóra zostáva skryté, s akým typom alebo implementáciou DBMS pracuje, všetky volania do databázy prebiehajú cez model, ktorého hlavnou úlohou je abstrahovať prácu s údajmi. Namiesto databázy môžete dokonca použiť textový alebo XML súbor, na tom nezáleží. Paralelne radič odošle požiadavku komponentu zobrazenia, ktorý vytvorí finálnu šablónu a vráti ju do riadiacej jednotky. Je tiež možné, že výmena údajov prebieha priamo medzi modelom a pohľadom. Kontrolér skombinuje výber z databázy a šablóny zobrazenia a odovzdá ho prehliadaču používateľa.



Obrázok 2.4. - Schéma informačných tokov architektúry MVC

4.Vývoj podpory algoritmov

Algoritmická podpora všetkých komponentov programu má značné rozdiely, pretože nesú rôzne funkcie.

Keď sa študent prvýkrát prihlási do systému prieskumu, vytvorí sa nové ID relácie. Relácia alebo relácia umožňuje serveru identifikovať používateľa pomocou špeciálneho čísla, ktoré je jedinečné a je priradené, keď používateľ komunikuje so serverom. Relácie vám navyše umožňujú naviazať premenné na daného používateľa a uložiť tieto premenné na server. Inými slovami, relácie vám umožňujú urobiť premenné globálne pre všetky komponenty programu. Systém prieskumu teda dokáže jednoznačne určiť, od ktorého používateľa pracujúceho s programom určité údaje pochádzajú.

D
Ďalej študent odpovedá na sériu anketových otázok a až po vyplnení ankety sa všetky údaje uložia do databázy. Algoritmus prevádzky prieskumného systému je znázornený na obrázku 2.5.

Obrázok 2.5. – Algoritmus fungovania prieskumného systému

Jedným z najdôležitejších bezpečnostných bodov webovej aplikácie je kontrola všetkých prichádzajúcich údajov, preto by ste mali vždy skontrolovať údaje zadané používateľom do vyhľadávacích formulárov, vypĺňanie registračných polí atď., Na prítomnosť „nebezpečných“ údajov. Môže ísť o škodlivý kód JavaScript, príkazy PHP alebo PERL alebo (najnebezpečnejšie) príkazy pre server.

Vždy by ste mali pamätať na to, že absolútne každý používateľ predstavuje nebezpečenstvo pre nechránenú webovú aplikáciu, preto sa vždy oplatí kontrolovať požiadavky a premenné prichádzajúce od používateľa.


  • analýza premenných POST a GET a superglobálnych polí;

  • separácia premenných;

  • filtrovanie reťazcových premenných.
Je nevyhnutné skontrolovať prichádzajúce premenné na úplnom začiatku programu, čím sa zabráni neovereným, potenciálne nebezpečným údajom od používateľov v práci s funkciami a dopytmi do databázy. Všetky funkcie potrebné na ochranu tak budú umiestnené na jednom konkrétnom mieste alebo dokonca súbore. V prípade programu na spracovanie dotazníkov študentskej ankety sa filtrovanie dát vykonáva na úrovni frameworku CodeIgniter v automatickom režime, keďže linka $config["global_xss_filtering"] = PRAVDA.

Absolútne každá premenná v programe musí mať svoj vlastný typ už vo fáze návrhu, či už ide o číslo alebo reťazec. Tento problém je obzvlášť akútny pre programovacie jazyky so slabým alebo chýbajúcim písaním, medzi ktoré patrí PHP a JavaScript. Preto sa v najkritickejších oblastiach programu kontrolujú premenné zhody typu.

Nebezpečné sú najmä textové premenné, napríklad pole na zadanie odpovede na anketovú otázku. Jednoducho ich treba skontrolovať na prítomnosť škodlivého kódu. Na odstránenie nebezpečenstva sú niektoré prvky z textu odstránené alebo nahradené inými symbolmi. Algoritmus na spracovanie prichádzajúcich údajov v rámci CodeIgniter je znázornený na obrázku 2.6.

R
Obrázok 2.6. – Algoritmus na spracovanie prichádzajúcich údajov v rámci CodeIgniter

2.5 Vývoj programového rozhrania

Jednou z najdôležitejších otázok pri vývoji softvérového systému je vývoj používateľského rozhrania. Každý systém, ktorý pri svojej prevádzke používa technické prostriedky, patrí do triedy systémov „človek-stroj“. Bolo by správne predložiť tieto požiadavky na rozhranie testovacích systémov:


  • rozhranie by malo byť jasné, jednoduché a ľahko použiteľné

  • používateľ by nemal byť rozptyľovaný činnosťami, ktoré nesúvisia s vykonávanou úlohou.
Používateľské rozhranie je vytvorené v značkovacom jazyku HTML pomocou JavaScriptu a knižnice jQuery, čo umožnilo vytvoriť interaktívne používateľské rozhranie programu.

TO

Napríklad textové pole na zadávanie dátumu pomocou jQuery bolo prevedené na kompaktný kalendár, ktorý má funkciu automatickej kontroly správnosti zadaného dátumu (pozri obrázok 2.7).

Obrázok 2.7. – Rozhranie kalendára na výber dátumu narodenia
Používateľské rozhranie dostupné pre študentov zúčastňujúcich sa prieskumu je trochu minimalistické. Vďaka tomu nie sú študenti rozptyľovaní krásnou grafikou a sústredia sa na premýšľanie o odpovedi na otázku. Rozhranie s jedným z

prieskumy je znázornené na obrázku 2.8.

Obrázok 2.8. – Rozhranie na zodpovedanie anketovej otázky


Ak z nejakého dôvodu študent nevyberie žiadnu z odpovedí na otázku, ale pokúsi sa prejsť na ďalšiu otázku, prieskumný systém automaticky zobrazí chybové hlásenie a ponúkne opätovné zodpovedanie aktuálnej otázky (pozri obrázok 2.9).

Obrázok 2.9. - Chybové hlásenie pri zadávaní údajov



Systém na spracovanie výsledkov prieskumu dokáže zobraziť výsledky v niekoľkých režimoch – textovom, grafickom a tlačovom režime. Rozhranie pre zobrazenie výsledkov prieskumu v grafickej podobe je znázornené na obrázku 2.10.

Obrázok 2.10. – Rozhranie na zobrazenie výsledkov prieskumu



Prehliadač, ktorý je klientom vo vzťahu k serveru a posiela mu požiadavku na spracovanie webovej stránky, môže byť implementáciou takzvaných tenkých klientov. Prehliadač je schopný zobrazovať webové stránky a je spravidla súčasťou operačného systému a funkcie jeho aktualizácie a údržby spočívajú na dodávateľovi operačného systému. Aplikačná logika je sústredená na serveri a funkciou prehliadača je hlavne zobrazovať informácie stiahnuté cez sieť zo servera a prenášať používateľské dáta späť. Jednou z výhod tohto prístupu je skutočnosť, že klienti sú nezávislí od konkrétneho operačného systému používateľa a webové aplikácie sú teda multiplatformové služby.

Významnou výhodou vytvárania webových aplikácií na podporu štandardnej funkcionality prehliadača je, že funkčnosť musí bežať nezávisle od operačného systému klienta. Namiesto písania rôznych verzií pre Microsoft Windows, Mac OS X, GNU/Linux a ďalšie operačné systémy je aplikácia vytvorená raz a nasadená na akejkoľvek platforme.

3. Technologická časť

3.1 Technológia vývoja programu

3.1.1 Základy webového servera

Ako funguje webový server: Je známe, že webové servery ukladajú informácie vo forme textových súborov, nazývaných aj stránky. Okrem textu môžu takéto stránky obsahovať odkazy na iné stránky (umiestnené na rovnakom alebo inom serveri), odkazy na grafické obrázky, zvukové a obrazové informácie, rôzne objekty na zadávanie údajov (polia, tlačidlá, formuláre atď.) a ako aj iné objekty a programy spustené na serveri. Stránky v skutočnosti predstavujú určitý druh prepojenia medzi objektmi rôznych typov. Sú navrhnuté pomocou špeciálneho hypertextového značkovacieho jazyka HyperText Markup Language alebo skrátene HTML. Na prístup k informáciám umiestneným na webových serveroch používatelia používajú špeciálne klientske programy - prehliadače. V súčasnosti existujú desiatky rôznych prehliadačov, ale len niekoľko z nich je v súčasnosti najobľúbenejších:


  • Microsoft Internet Explorer;

  • Opera;

  • Mozilla Firefox

  • Google Chrome.
Každá stránka webového servera má svoju vlastnú takzvanú univerzálnu adresu zdroja – Universal Resource Locator (URL). Na prístup na konkrétnu stránku musí používateľ poskytnúť prehliadaču jej adresu URL. Každý webový server má spravidla jednu hlavnú stránku obsahujúcu odkazy na všetky ostatné stránky na tomto serveri. Preto prezeranie obsahu webového servera zvyčajne začína jeho hlavnou (indexovou) stránkou.

3.1.2 Pasívne a aktívne webové servery

Existujú pasívne a aktívne webové servery. Ak stránky servera obsahujú iba statický text a multimediálne informácie, ako aj hypertextové odkazy na iné stránky, potom sa server nazýva pasívny. Keď sa stránky servera správajú podobne ako okná bežných interaktívnych aplikácií a vstupujú do dialógu s používateľom, máme do činenia s aktívnym serverom.


3.1.3 Objektovo orientovaný prístup

V súčasnosti je čoraz populárnejšie využívanie objektovo orientovaného prístupu pri vývoji webových aplikácií. A hoci výhody tohto prístupu nie sú také zrejmé ako napríklad v programovacích jazykoch ako C++ alebo Java, stále väčší počet voľne distribuovaných knižníc a programov napísaných v programovacom jazyku PHP prechádza na objektovo orientované rozhranie. . Tým nútia vývojárov, ktorí ich používajú, aby sa obrátili na objektovo orientované možnosti PHP. Zavedenie plnej podpory pre objektovo-orientovaný model v piatej verzii PHP interpreta ďalej podporuje záujem o túto metodiku.

Použitie objektovo orientovaného prístupu k miestu a nie miestu často urobí projekt úspešným. Programovanie ako začiatočník v štýle objektovo orientovaného programovania sa často cíti ako navigácia v mínovom poli – ak neviete, kde sú míny, je nemožné dosiahnuť koniec projektu. Samotné objektovo orientované programovanie nie je všeliekom - je to fungujúca technológia, ktorá vám umožňuje:


  • zvýšiť percento opätovne použitého zdrojového kódu;

  • pri programovaní pracujte s pojmami a objektmi reálneho sveta (študent, skupina, kurz atď.), a nie s počítačovými pojmami nízkej úrovne (súbor, riadok atď.), čo vám umožňuje vytvárať väčšie projekty s menším počtom chýb a efektívnejšie v krátkom čase.
Vývoj programovacích technológií, ako poznamenal Dijkstra, je diktovaný tézou „Rozdeľ a panuj“. Akákoľvek úspešná technológia predpokladá, že čím kratší je zdrojový kód programu, tým ľahšie sa vytvára, ladí a udržiava a jednoduchý program je oveľa menej náchylný na chyby ako zložitý.

Na úsvite počítačovej éry bol program jedno vlákno, ktoré spracovávalo jedno pole údajov. Postupom času narastala zložitosť programov a požiadavky na ne kladené a tento spôsob organizácie dát sa ukázal ako neprijateľný. Bol navrhnutý štrukturálny prístup, v ktorom sa pole údajov stalo prístupným odkiaľkoľvek v programe, ale hlavný tok programu bol rozdelený do niekoľkých procedúr. Samostatná malá procedúra, aj keď používa spoločné údaje, je oveľa jednoduchšia na vývoj ako veľké množstvo zdrojového kódu.

Každá procedúra má lokálnu premennú, ktorej životnosť je určená dĺžkou trvania procedúry. Niektoré procedúry môžu volať iné, ale dátové pole v programe zostáva spoločné a dostupné pre všetky procedúry. Tento prístup sa používa v procedurálnom programovaní v PHP a umožňuje vytvárať rozsiahle softvérové ​​komplexy. Vývoj, ladenie a podpora programov, ktoré pracujú s veľkými objemami údajov (napríklad databázou jednotlivých oddelení), však stále zostáva zložitým a vyžaduje značné zručnosti a skúsenosti.

Reakciou na zvyšujúcu sa zložitosť bol vznik objektovo orientovaného prístupu k programovaniu: program je rozdelený do niekoľkých dátových polí, z ktorých každé má svoje vlastné procedúry, ako aj procedúry, ktoré interagujú s inými dátovými poľami.

Výsledkom je, že komplexná úloha sa rozloží na množstvo jednoduchších čiastkových úloh a vývojári získajú flexibilnejší spôsob riadenia projektu – úprava jedného obrovského monolitického bloku kódu je oveľa náročnejšia ako kolekcia malých, voľne pospájaných blokov.

Bez ohľadu na prepojenie s programovacím jazykom má objektovo orientovaný prístup niekoľko všeobecných princípov, konkrétne:


  • schopnosť vytvárať abstraktné dátové typy, čo umožňuje spolu s preddefinovanými dátovými typmi (napríklad celé číslo, reťazec atď.) zaviesť vlastné dátové typy (triedy) a deklarovať „premenné“ takýchto dátových typov (objektov). Vytváraním vlastných dátových typov nepracuje programátor so strojovými pojmami (premenná, funkcia), ale s objektmi reálneho sveta, čím sa dostáva na novú úroveň abstrakcie;

  • zapuzdrenie, ktoré obmedzuje interakciu používateľov abstraktných dátových typov len na ich rozhranie a skryje vnútornú implementáciu objektu, čím sa zabráni ovplyvneniu jeho vnútorného stavu. Ľudská pamäť je obmedzená a nemôže obsahovať všetky detaily veľkého projektu, zatiaľ čo použitie zapuzdrenia vám umožňuje navrhnúť objekt a použiť ho bez obáv z internej implementácie a uchyľovania sa len k malému počtu metód rozhrania;

  • dedičnosť, ktorá umožňuje vyvinúť existujúci abstraktný dátový typ – triedu, vytvorením novej triedy na jej základe. V tomto prípade nová trieda automaticky získa schopnosti existujúceho abstraktného dátového typu. Abstraktné dátové typy sú často príliš zložité, takže sa uchyľujú k ich sekvenčnému vývoju, čím sa vytvára hierarchia tried od všeobecných po špecifické;

  • polymorfizmus, umožňujúci konštrukciu celých reťazcov a rozvetvených stromov, ktoré od seba dedia abstraktné dátové typy (triedy). V tomto prípade bude mať celá množina tried niekoľko metód s rovnakými názvami: každá trieda v tomto strome bude mať zaručene metódu s rovnakým názvom. Tento princíp pomáha automaticky spracovávať dátové sady rôznych typov.

3.1.4 Vlastnosti rámca CodeIgniter

Použitý rámec CodeIgniter je napísaný pomocou objektovo orientovaného prístupu. Všetky triedy radičov, pohľadov a modelov zavedené programátorom dedia pôvodné triedy zavedené do samotného rámca. To umožňuje písať menší zdrojový kód, pretože všetky potrebné základné funkcie sú okamžite dostupné.

Okrem tried ovládačov, zobrazení a modelov dostupných pre programátora má framework CodeIgniter k dispozícii aj zásuvné moduly a pomocné funkcie. Pomocníci, ako už názov napovedá, sú navrhnuté tak, aby pomáhali vykonávať niektoré menšie funkcie. K dispozícii sú napríklad pomocníci na vytváranie webových formulárov, sťahovanie súborov alebo prácu s reláciami. Na rozdiel od všetkých ostatných hlavných prvkov rámca sú pomocníkmi množiny elementárnych funkcií napísaných aj bez použitia objektovo orientovaného prístupu. Každá funkcia vykonáva malú, prísne obmedzenú úlohu. Súprava je však pomerne veľká a takáto „maličkosť“ sa v práci stáva veľmi užitočnou.

Pluginy sú takmer to isté ako pomocníci, až na hlavný rozdiel: nie sú súborom funkcií, sú jednou funkciou. Okrem toho môžete venovať pozornosť tomu, že pomocníci sú skôr súčasťou jadra systému, zatiaľ čo pluginy sú niečo externé, ktoré vyvinuli programátori tretích strán. V realite to takto dopadne. Dokonca aj doplnky, ktoré sa dodávajú s hlavnou súpravou, sú napísané používateľmi CodeIgniter v komunite.


3.1.5 Eclipse IDE

Pri vývoji programu na spracovanie anketových dotazníkov pre študentov katedry sme použili aj taký dôležitý a užitočný programátorský nástroj, akým je integrované vývojové prostredie (IDE - Integrated Development Environment), a to Eclipse. Eclipse je bezplatný rámec pre vývoj modulárnych multiplatformových aplikácií. Vyvinuté a udržiavané nadáciou Eclipse Foundation.

Najznámejšie aplikácie založené na platforme Eclipse sú rôzne „Eclipse IDE“ na vývoj softvéru v rôznych jazykoch (napríklad najpopulárnejšie „Java IDE“, ktoré bolo pôvodne podporované). V tomto prípade boli rozšírenia použité na programovanie v programovacích jazykoch PHP (modul PDT) a JavaScript (modul JSEclipse), ako aj rozloženie pomocou značkovacieho jazyka HTML.

3.2 Technológia testovania programu

Testovanie programu je proces identifikácie chýb v softvéri. V súčasnosti existuje veľa metód na testovanie programov, ktoré však nezaručujú identifikáciu a odstránenie všetkých nedostatkov a chýb, ani stanovenie správneho fungovania analyzovaného programu. Preto všetky existujúce testovacie metódy fungujú v rámci formálneho overovacieho procesu pre softvér, ktorý sa skúma alebo vyvíja.

Tento formálny proces overovania môže preukázať, že neexistujú chyby iba z hľadiska použitej metódy, ale nezaručuje ich úplnú absenciu.

Test je informácia pozostávajúca zo špeciálne vybraných počiatočných údajov pre ladený program a zodpovedajúcich referenčných výsledkov používaných na monitorovanie správneho fungovania programu.

Riadenie programu spočíva vo výbere testov, ktorých získanie správnych výsledkov by zaručilo správnu činnosť programu pre zvyšok vstupných údajov z celého prípustného rozsahu hodnôt.

Systém bol testovaný niekoľkými spôsobmi:


  • Záťažové testovanie;

  • manuálne ladenie a sledovanie programu pomocou rozšírenia XDebug;

  • Testovanie jednotiek pomocou phpUnit.
Pri testovaní programov napísaných v PHP by ste mali skontrolovať, či údaje zobrazené na obrazovke používateľa spĺňajú očakávania. Možné sú tieto hlavné problémy:

  • na obrazovke sa nič nezobrazuje alebo sa zobrazuje systémová chyba s príslušným kódom (chyba autorizácie, porucha webového servera atď.);

  • pri práci s databázou došlo k zlyhaniu a vygeneruje sa chybové hlásenie;

  • zlyhanie servera v dôsledku vysokého zaťaženia aplikácie alebo databázy;

  • Vyskytla sa chyba pri vykonávaní programu, čo má za následok zobrazenie nesprávnych údajov alebo chybového hlásenia.

3.2.1 Záťažové testovanie programu

Jedným z najdôležitejších testov je testovanie záťaže, ktoré vám umožňuje nájsť úzke miesta v zdrojovom kóde alebo volaniach databázy.

Existuje mnoho nástrojov, ktoré zjednodušujú úlohu zvyšovania počtu požiadaviek a volania viacerých operácií na serveri. Test limitného zaťaženia musí byť navrhnutý tak, aby presne kopíroval očakávané pracovné zaťaženie aplikácie.

Na záťažové testovanie programu na spracovanie anketových dotazníkov pre študentov katedry bol použitý program curl-loader. Curl-loader je voľne distribuovaný nástroj na testovanie výkonu webových aplikácií napísaný v programovacom jazyku C. Je schopný simulovať stovky až tisíce serverových volaní cez protokoly HTTP a HTTPS a využíva knižnicu libcurl, ktorá vám umožňuje jednoducho testovať aplikácie, ktoré vyžadovať autorizáciu. A podpora protokolu HTTPS vám umožňuje použiť utilitu curl-loader na testovanie záťaže webových aplikácií pracujúcich prostredníctvom šifrovaných transportných mechanizmov SSL (Secure Sockets Layer) a TLS (Transport Layer Security).

3.2.2 Ladenie pomocou vstavaných nástrojov PHP

Štandardné správanie aplikácie napísanej v PHP, keď sa v kóde vyskytne chyba, do značnej miery závisí od konfiguračných nastavení. Spravidla sa nastavujú v konfiguračnom súbore php.ini:

  • parameter display_errors, nastavený na zapnuté alebo vypnuté, určuje, či sa majú chybové správy zobrazovať používateľovi alebo či sa majú ponechať skryté;

  • parameter log_errors, nastavený na zapnuté alebo vypnuté, spôsobí, že interpret PHP zapíše správy do súboru protokolu udalostí;

  • Direktíva error_reporting určuje, v ktorých prípadoch sa má vygenerovať varovanie a v ktorých prípadoch ho možno ignorovať.
Pri vývoji a ladení programu na testovacom serveri musíte povoliť parameter display_errors a deaktivovať parameter log_errors. To umožňuje programátorovi čo najrýchlejšie reagovať na výskyt chybovej situácie, čím sa minimalizuje počet „prepínačov medzi oknami“.

Vo fungujúcej verzii programu by ste naopak mali vypnúť parameter display_errors, ale povoliť log_errors. Na jednej strane to sťaží život útočníkom, ktorí už nebudú môcť vidieť ladiace informácie. Na druhej strane, v kritickej situácii vám pomôže pochopiť, čo sa presne stalo, a opraviť chybu, aj keď nie je reprodukovateľná v testovacom prostredí.

V oboch prípadoch je vhodné nastaviť parameter error_reporting na najpodrobnejší stav - E_ALL, čo núti PHP hlásiť čo najmenšie chyby v kóde.

3.2.3 Ladenie programu pomocou XDebug

Zatiaľ čo programovací jazyk PHP možno použiť na vytváranie skriptov príkazového riadka pre úlohy, ako je správa systému a tradičné spracovanie údajov, sila jazyka je zrejmá najmä vo webových aplikáciách.

Vzhľadom na krátke trvanie webových aplikácií a ich vrstvený dizajn (klientska aplikácia, sieť, webový server, aplikačný kód a podkladová databáza) môže byť ťažké zachytiť chyby v zdrojovom kóde. Aj keď predpokladáme, že všetky vrstvy okrem PHP kódu fungujú bezchybne, spätné sledovanie chyby programu môže byť náročné, najmä ak aplikácia používa veľké množstvo tried.

PHP echo výraz a funkcie ako var_dump(), debug_zval_dump() a print_r() sú bežné a veľmi obľúbené ladiace nástroje, ktoré môžu pomôcť vyriešiť rôzne menšie problémy. Ako prostriedok testovania a ladenia však tieto výrazy (a ešte spoľahlivejšie nástroje, napríklad balík PEAR Log) pomáhajú len málo a nie vždy.

Okrem toho je tento typ ladenia prístupom hrubej sily. Ak chýbajú potrebné informácie, musíte zopakovať zdrojový kód, zopakovať predchádzajúce kroky a znova začať hľadať chybu. Oveľa efektívnejšou stratégiou je testovanie aplikácie počas jej spustenia. Môžete katalogizovať parametre dotazu, zobraziť zásobník volaní procedúr a zistiť hodnotu ľubovoľnej premennej alebo objektu. Môžete dočasne prerušiť vykonávanie aplikácie a dostávať upozornenia na zmeny hodnoty premennej

Toto „živé“ alebo interaktívne skúmanie zabezpečuje špeciálna aplikácia nazývaná debugger. Ladiaci program beží alebo sa pripája k procesu, aby s ním manipuloval a skúmal jeho pamäť. Alebo v prípade interpretovaných jazykov môže debugger priamo interpretovať kód. Typický moderný debugger dokáže indexovať a prezerať zdrojový kód, zobrazovať zložité dátové štruktúry v čitateľnej forme a súčasne zobrazovať stav programu, zásobník hovorov, výstup programu a hodnoty všetkých premenných. Napríklad je bežné, že debugger katalogizuje a zobrazuje vlastnosti a metódy triedy.

Namiesto manuálneho pridávania rôznych výstupných funkcií ladenia môžete použiť XDebug na vytvorenie protokolu sledovania. Protokol sledovania je zoznam volaní funkcií a metód triedy počas vykonávania programu. Jeho výhodou je, že úplne každý hovor sa prejaví v logu.

Protokol sledovania sa zvyčajne líši od spustenia k spusteniu, pretože závisí od prichádzajúcich údajov, ktoré sa líšia od požiadavky k požiadavke.

Sledovanie protokolu vám pomôže pochopiť, ako sa program vykonáva, ale je veľmi ťažké predstaviť si všetky možné vetvy, pokiaľ nie je program veľmi jednoduchý. Z tohto dôvodu je testovanie veľkých programov dosť ťažké: existuje príliš veľa rôznych vývojových ciest a každý z nich musí byť testovaný.

Nástroj na ladenie aplikácií XDebug, ako naznačuje jeho názov, poskytuje niekoľko funkcií na zobrazenie stavu programu a je veľmi cenným výskumným nástrojom. Po nainštalovaní XDebug zasahuje, aby zabránil nekonečným rekurziám, pridáva k chybovým hláseniam informácie o zásobníku a sledovaní funkcií, monitoruje alokáciu pamäte a vykonáva niekoľko ďalších funkcií. Xdebug obsahuje aj sadu funkcií, ktoré možno pridať do zdrojového kódu na získanie diagnostických údajov za behu.

Výsledky modulu XDebug je možné zobraziť pomocou programu KCachegrind, ktorý umožňuje vizualizovať procesy vyskytujúce sa v zdrojovom kóde (pozri obrázok 3.1).

Aby sme to zhrnuli, XDebug je malý, ale veľmi užitočný nástroj pre vývojárov PHP a mal by byť nainštalovaný na každom interpretači PHP používanom na vývoj. XDebug by ste však nemali používať na produkčných serveroch, pretože to výrazne zníži výkon.
R

Obrázok 2.1. – Rozhranie programu KCachegrind

3.2.4 Jednotkové testovanie pomocou phpUnit

Unit testovanie je proces v programovaní, ktorý vám umožňuje kontrolovať správnosť jednotlivých modulov zdrojového kódu programu. Cieľom je napísať overovacie testy pre každú netriviálnu funkciu alebo metódu. To vám umožní rýchlo skontrolovať, či nasledujúca zmena kódu viedla k objaveniu sa chýb v už napísaných a testovaných častiach programu, a tiež uľahčuje detekciu a odstránenie takýchto chýb. Účelom testovania jednotiek je izolovať jednotlivé časti programu a ukázať, že jednotlivé časti fungujú.

Pri ladení a testovaní programu na spracovanie anketových dotazníkov pre študentov katedry bol použitý systém phpUnit, ktorý umožňuje unit testovanie webových aplikácií napísaných v programovacom jazyku PHP.

Ak chcete napísať minimálnu sadu testov pomocou phpUnit, musíte:


  • zahrnúť knižnicu PHPUnit.php;

  • vytvorte podtriedu základnej triedy TestCase;

  • pridajte k nemu ľubovoľný počet testovacích metód, ktorých názvy začínajú na „test“. Ako vstup sa dodajú vopred známe parametre a výsledok sa porovná s referenčným pomocou rodiny funkcií Assert, ktoré trieda test zdedí zo základnej triedy TestCase;

  • vytvorte triedu PHPUnit_TestSuite a odovzdajte jej názov triedy so sadou testov ako parametrom;

  • Spustite súbor testov a skontrolujte výsledok vykonania.

6 (?). Zoznam grafického materiálu

6.1 Vyjadrenie problému

6.2 Bloková schéma programu


3. ŠTRUKTURÁLNA SCHÉMA PROGRAMU

Hlavné funkcie, ktoré je potrebné implementovať do nášho programu, vyplývajú z formulácie a analýzy problému:

1)Zobrazenie užívateľských údajov vo forme tabuľky a práca s nimi.

2) Pridávanie a odstraňovanie typov objektov.

3)Grafické znázornenie plánu s možnosťou škálovania.

4) Práca so súbormi a výsledky tlače.

5) Pohodlné používateľské rozhranie.

Nižšie je uvedený funkčný blokový diagram programu znázornený vo forme hlavných modulov a spojení medzi nimi. Jednoznačne predstavuje implementáciu vyššie uvedených požiadaviek v programe.

Ryža. 3.1. Funkčná štruktúra programu.

Hlavnou časťou programu je modul riadenia a generovania rozhrania. Predstavuje hlavný formulár, na ktorom sa nachádzajú ovládacie prvky, ktoré umožňujú vykonávať ďalšie funkcie a tvoria aj používateľské rozhranie.


4. ZÁKLADNÉ ALGORITMY

Hlavným je algoritmus na zostavenie obrazu na základe údajov z hlavnej tabuľky, implementovaný vo forme metódy plandraw().

Nižšie je jeho bloková schéma a popis.

4.1 Popis algoritmu

Ak karta obsahujúca náš obrázok plánu nie je aktivovaná, aktivujeme ju.

Pripravíme tabuľku vzdialeností a vyčistíme ju od predchádzajúcich záznamov.

Nastavíme parametre pozadia (farbu) a nakreslíme ho, následne nastavíme parametre pera (hrúbka a štýl čiary), ktoré určia zobrazenie čiar trasy vo výkrese. Na začiatku je hrúbka čiary rovná jednej - pre kreslenie súradnicovej siete.

Pomocou vlastnosti tabuľky RecordCount zistíme počet riadkov v hlavnej tabuľke.

Nastavíme ukazovateľ aktuálneho rekordu na prvý a zorganizujeme cyklus prechádzania všetkých tabuľkových záznamov, v ktorom počítame počet trás.

Hneď na začiatku cyklu sa pripravíme na zobrazenie mierky - premennej mierky priradíme faktor zväčšenia (v celých jednotkách) a pre obe rolovacie lišty určíme maximálnu hodnotu, ktorá závisí od stupňa zväčšenia a veľkosť obrázku.

Ak je číslo trasy nula, tak je splnená podmienka na vykreslenie súradnicovej siete – poludníkov a rovnobežiek. Najprv sa vykoná cyklus kreslenia meridiánov - postupujeme od 0 do 360 stupňov v krokoch v závislosti od stupňa zväčšenia (15, 6, 3 alebo 1 stupeň) a pri každom poludníku sa podpíše zodpovedajúci stupeň zemepisnej dĺžky (východný zemepisná dĺžka - so znamienkom „+“), západná – so znamienkom „-“). Hlavný poludník je znázornený čiernou farbou. Podobné akcie sa vykonávajú v cykle kreslenia paralel, jediný rozdiel je v tom, že cyklus prebieha od 0 do 180 stupňov. Znak „+“ označuje severnú zemepisnú šírku a znak „-“ označuje južnú zemepisnú šírku.

Ak chcete zobraziť čiary trasy, zmeňte hrúbku čiary na 2.

Vytvoríme tri polia, do ktorých budeme zadávať indexy aktuálnych záznamov trasy a súradnice. Ďalej organizujeme slučku, v ktorej prechádzame položkami tabuľky a vypĺňame tieto polia pre aktuálnu trasu. Okrem toho sa do súradnicových polí zadávajú už škálované hodnoty. V tom istom cykle počítame počet bodov trasy.

V ďalšej slučke zoradíme obsah indexového poľa, aby sme potom mohli kresliť body na trase v poradí, v akom sú uvedené v tabuľke.

Nastavte farbu čiary v závislosti od čísla trasy. A organizujeme slučku, ktorá kreslí čiary.

V cykle kreslenia čiar robíme nasledovné: berúc do úvahy polohy posúvačov sa vypočíta poloha okna vo vzťahu k mape a súradnice bodu v okne sa vypočítajú vzhľadom na túto polohu. Ak je to náš prvý prechod, potom jednoducho presunieme kurzor na bod s vypočítanými súradnicami, ak nie a príznak kreslenia čiar je zapnutý, nakreslíme čiaru z predchádzajúceho bodu do tohto. Ak je začiarkavacie políčko vypnuté, na mape sa umiestňujú iba body.

Potom sa vypočíta vzdialenosť medzi bodmi umiestnenými na zemeguli, ktorých projekcie sme práve zobrazili na našej mape. Vzdialenosti sa počítajú v kilometroch, polomer Zeme sa považuje za 6371 km. Vzdialenosť sa vypočíta, ak sa i nerovná 0 a toto nie je prvý prechod cyklom. Táto podmienka je nevyhnutná, pretože na zistenie vzdialenosti k aktuálnemu bodu používame súradnice predchádzajúceho bodu.

Keďže zemský povrch je guľový, musíme vypočítať dĺžku oblúka. Hlavným problémom je nájsť uhol, pod ktorým oblúk spočíva.

Do úvahy prichádzajú tri prípady:

1) ak sú body na rovnakej zemepisnej dĺžke, uhol sa dá ľahko určiť - bude sa rovnať rozdielu medzi väčšou a menšou hodnotou zemepisnej šírky.

2) ak sú body na rovnakej zemepisnej šírke, tak jej určenie tiež nie je ťažké - rovná sa rozdielu medzi väčšou a menšou hodnotou zemepisnej dĺžky, vynásobenému korekciou cos(f), kde f je aktuálna zemepisná šírka.

3) ak sú body umiestnené v rôznych zemepisných šírkach a dĺžkach, tento prípad nájdenia uhla je zložitejší. Pozrime sa na to podrobne.

Najprv nájdeme rozdiel v zemepisnej dĺžke bodov, ako keby boli na rovnakej zemepisnej šírke, vynásobíme korekciou cos(f) a vypočítame lineárnu vzdialenosť medzi nimi pomocou kosínusovej vety (ďalšie dve strany trojuholníka sú polomery Zeme). Rovnakým spôsobom vypočítame vzdialenosť medzi bodmi, ako keby boli na rovnakej zemepisnej dĺžke. Tieto vzdialenosti označujeme ako l1 a l2.

Teraz máme pravouhlý trojuholník s nohami l1, l2, ktorých prepona je vzdialenosť l3. Vypočítame to pomocou Pytagorovej vety. Naším cieľom je nájsť uhol a. Pomocou kosínusovej vety nájdeme kosínus tohto uhla. Po vypočítaní kosínusu oblúka z neho dostaneme uhol! Nižšie je uvedený vysvetľujúci nákres.


Ryža. 4.1. Vysvetlenie výpočtov vzdialeností v rôznych zemepisných šírkach a dĺžkach.

Po nájdení uhla vypočítame dĺžku oblúka a výslednú vzdialenosť zadáme do tabuľky vzdialeností spolu s číslom aktuálnej trasy.

Poznámka: Keďže funkcie kosínus a arkkozín pracujú s uhlami špecifikovanými v radiánoch, program prevádza radiány na stupne a naopak. Všetky tieto výpočty vedú k hromadeniu chýb.

Všetky uvedené vzorce sú uvedené v prílohe E.

Po vypočítaní vzdialenosti ju zobrazíme na pláne vedľa aktuálneho bodu, ak je zapnutá príslušná vlajka. Navyše, vzhľadom na podmienku pre odhad dĺžky trasy, obrázok nezobrazuje dĺžku jedného úseku, ale súčet dĺžok úsekov predchádzajúcich tomuto bodu. Užívateľ si môže pozrieť dĺžky jednotlivých segmentov v tabuľke vzdialeností.

Mapa tiež zobrazuje typ objektu pre daný bod, ak je začiarknuté políčko „zobraziť typ objektu“.

Ak je začiarkavacie políčko „nezobrazovať tabuľku vzdialeností“ vypnuté, zviditeľnite ho.

Po nakreslení všetkých trás uvoľníme pamäť alokovanú pre polia indexov a súradníc.


4.2 Vývojový diagram algoritmu

Ryža. 4.2. Vývojový diagram algoritmu kreslenia plánu.


5. IMPLEMENTÁCIA SOFTVÉRU 5.1 Výber prostredia na vývoj programu

Ako už bolo spomenuté v “Problémovom vyhlásení”, na vytvorenie tohto programu bolo zvolené vývojové prostredie Borland C++Builder 5. Toto rozhodnutie je dané tým, že v ňom nie je proces tvorby rozhrania náročný ani pre programátora, ktorý sa prvýkrát stretol s Builderom a pracuje dobre s databázami a grafikou, čo je presne to, čo potrebujeme na vývoj nášho programu.

Nevýhodou je podľa mňa veľký spustiteľný kód programu - na to, aby fungoval na stroji, kde nie je nainštalovaný Builder, je potrebné zahrnúť doň všetky použité knižnice, preto veľkosť program sa niekoľkonásobne zväčší.

Okrem toho je na Builderi dobrá vec, že ​​komponenty majú veľa vlastností, ktoré sa dajú meniť nielen počas konštrukcie, ale aj počas vykonávania programu, vďaka čomu je práca s nimi flexibilnejšia.

5.2 Práca s tabuľkami

Ako databázový ovládač používame Paradox. Tento typ databázy bol zvolený predovšetkým preto, že Builder má vstavané nástroje na prácu s tabuľkami Paradox, ako je Borland Database Engine, a tiež je dodávaný s programom Database Desktop. Po druhé, výhodou Paradoxu je, že názov databázy je možné zadať ako cestu k adresáru, kde sa nachádza súbor tabuľky a všetky tabuľky sú uložené v samostatných súboroch. Po tretie, zaberajú málo miesta a sú najjednoduchšie z miestnych stolov. Po štvrté, tabuľky Paradox vám umožňujú vytvárať kľúčové polia.

Pre zabezpečenie práce s tabuľkou sme do formulára nainštalovali nasledujúce komponenty:

DBGrid, pomocou ktorého môžeme vkladať, mazať, upravovať údaje v tabuľke alebo ich jednoducho zobrazovať.

Zoznam DBComboBox, pomocou ktorého môžeme vkladať údaje z tabuľky objektov do aktuálneho záznamu hlavnej tabuľky. Pred použitím tohto zoznamu musí byť vyplnený hodnotami z tabuľky objektov. Aby sme to dosiahli, pri spustení programu prejdeme všetky jeho záznamy a ich obsah zadáme do poľa Položky tohto zoznamu.

Navigátor DBNavigator - pomocou neho môžete odstraňovať, pridávať, upravovať záznamy v tabuľke a tiež sa v nich pohybovať. Pripojíme ho k mriežke, v ktorej bude zobrazená naša tabuľka.

Všetky tieto komponenty sú prepojené s tabuľkou cez DataSourse, vo vlastnostiach ktorej uvádzame jej názov. Okrem toho je samotná tabuľka tiež reprezentovaná ako komponent Table, v ktorom by sa mala venovať najväčšia pozornosť trom vlastnostiam:

1)Aktívna – zobrazuje, či je tabuľka aktívna. Ak sa k nej pokúsite dostať, ak je táto vlastnosť zakázaná, program vygeneruje chybu „Túto operáciu nemožno vykonať na uzavretom súbore údajov“. Počas testovania sa sledovali a riešili všetky možné situácie, ktoré by mohli viesť k tejto chybe.

2) DatabaseName – názov databázy, za ktorú sa berie cesta k adresáru, z ktorého bola tabuľka otvorená alebo vytvorená.

3) TableName – názov tabuľky - súbor s príponou .db, v ktorom je tabuľka uložená.

Všetky tieto vlastnosti sa počas vykonávania programu menia.

Potrebujeme komponent Table, aby sme sa zbavili špecifikácie. Pod rúškom tabuľky môžeme otvoriť akúkoľvek konkrétnu tabuľku a zmeniť iba vlastnosti tabuľky bez ovplyvnenia ostatných komponentov. Napríklad pri otváraní tabuľky zatvoríme a deaktivujeme predchádzajúcu, pričom sa vymaže názov databázy a názov tabuľky vo vlastnostiach komponentu Tabuľka a otvoríme a aktivujeme novú, pričom do DatabaseName zapíšeme nové názvy adresárov a súborov. a TableName pri otvorení. (Pozri metódy TBOpenFileClick a TBCloseFileClick v prílohe A).

Komponenty DataSourse a Table sa nachádzajú na formulári, ale sú viditeľné iba pri práci s programom v Builderi.

5.3 Práca s grafikou

Na kreslenie plánu používame komponent Image. Tento objekt má dve dôležité vlastnosti:

1)Obrázok – je objekt triedy TPicture, čo je kontajner pre grafiku akéhokoľvek druhu. Tie. tento komponent môže ukladať bitmapovú grafiku, ikony alebo inú užívateľom definovanú grafiku. Obrázok je miesto, kde sa nachádza náš výkres. S jeho pomocou uložíme výsledný výkres do súboru. (Pozri prílohu A, metóda TBSaveFileClick). Upozorňujeme tiež, že veľkosť obrázka a obrázka nemusia byť rovnaké. Tento problém bude podrobnejšie diskutovaný nižšie.

2) Canvas – plátno. Celý proces kreslenia prebieha na plátne komponentu Image. Canvas umožňuje nastaviť parametre pera, štetca, písma, kresliť objekty ako čiary, obdĺžniky, elipsy a tiež zobrazovať text.

V našom programe používame kreslenie čiar pomocou obrysových metód MoveTo a LineTo, kreslenie bodov pomocou Elipsy a výstup textu pomocou metódy TextOut. (Pozri prílohu A, plandraw).

Tie. canvas nám umožňuje pracovať s funkciami Windows GDI bez priameho prístupu k nim, čo značne uľahčuje prácu s grafikou.


5.4 Vývoj rozhrania

Osobitnú pozornosť treba venovať aj vývoju rozhrania, pretože je potrebné, aby bolo užívateľsky prívetivé. Nástroje Builder uľahčujú implementáciu rozhrania v štandardoch Windows.

Hlavné prvky štandardného programového rozhrania Windows:

1) Ponuky – poskytujú používateľom jednoduchý spôsob vykonávania logicky zoskupených príkazov.

Hlavné menu sa vytvára pomocou komponentu MainMenu a je veľmi pohodlné ho pri vytváraní programu upravovať, keďže ho na kontrolu nepotrebujete spúšťať – celý jeho obsah je už zobrazený vo formulári.

2) Panel nástrojov – obsahuje tlačidlá nástrojov, ktoré zodpovedajú položkám v ponuke programu a poskytujú používateľovi priamejší prístup k jeho príkazom.

Panel nástrojov je implementovaný pomocou komponentu ToolBar, ktorý umožňuje rýchlo pridávať a umiestňovať tlačidlá. Všetky tlačidlá nástrojov na paneli nástrojov majú rovnakú šírku a výšku.

Pre každé tlačidlo môžete nastaviť ikonu, ktorá zobrazuje akciu, ktorú vykonáva, výberom čísla ikony z obrázkov uložených v komponente ImageList. Je to výhodné, pretože ikonu môžete jednoducho zmeniť bez toho, aby ste zakaždým načítali ikonu zo súboru.

V súlade so štandardom Windows som na paneli vytvoril tlačidlá zodpovedajúce položkám ponuky „Nové“, „Otvoriť“, „Uložiť“, „Tlačiť“.

3) Tlačidlá - s ich pomocou užívateľ spustí vykonávanie akcie priradenej tomuto tlačidlu.

Typicky, podľa štandardu rozhrania Windows, sa tlačidlá takmer nikdy nepoužívajú, aby nezaťažovali okno programu. Namiesto toho sa používajú panely s nástrojmi a ponuky.

Ale keďže náš program nevykonáva veľké množstvo akcií, môžeme použiť aj tlačidlá. Je to výhodné v tom, že na rozdiel od ponúk sú umiestnené vedľa prvku, v súvislosti s ktorým sa vykonáva akcia, ktorú volajú (napríklad tlačidlá na pridávanie a odstraňovanie objektov sú umiestnené vedľa zoznamu objektov a tlačidlá na priblíženie sú ďalšie na obrázok ), čo bude samozrejme pre používateľa pohodlné.

Okrem toho na ne môžete vložiť podpisy vysvetľujúce ich účel, čo je tiež výhodné.

Tlačidlo sa vytvorí umiestnením komponentu Button na formulár. Pri vývoji programu sa využíva jeho vlastnosť Caption - nápis na tlačidle a pri behu sa používa vlastnosť Enabled na znefunkčnenie tlačidla alebo naopak na jeho aktiváciu. (Pozri prílohu A, HideButtons() a ShowButtons()). Napríklad pri otváraní tabuľky aktivujeme tlačidlá na kreslenie plánu a pri zatváraní ich deaktivujeme.

4) Rozbaľovacie zoznamy – umožňujú používateľovi vybrať položku zo zoznamu. Je to oveľa pohodlnejšie ako manuálne zadávanie.

V tomto programe sa rozbaľovacie pole používa na zadanie typu objektu do tabuľky (DBComboBox, diskutované vyššie) a na odstránenie typu objektu z tabuľky objektov (ComboBox).

Rozdiel medzi DBComboBox a ComboBox je v tom, že prvý je spojený s poľom tabuľky a druhý je jednoduchý zoznam. Použitie jednoduchého zoznamu ComboBox umožňuje riešiť problémy interakcie s tabuľkou a DBComboBox, ktoré vznikajú pri odstraňovaní objektu z tabuľky.

5) Scroll bary – realizované pomocou komponentu ScrollBox, v našom prípade sú potrebné na posúvanie obrázka plánu pri jeho zväčšení. Program zmení parameter Max, ktorý určuje maximálnu mieru rolovania v závislosti od mierky.

6) Zaškrtávacie políčka (prepínače) – určujú, či je možnosť, ktorú reprezentujú, povolená alebo zakázaná.

V Builderi je to komponent CheckBox.

Začiarkavacie políčka v programe určujú, či sú povolené alebo zakázané nasledujúce funkcie:

Kreslenie čiar trás;

Zobrazenie vzdialenosti na pláne;

Zobrazenie typu objektu na pláne;

Zobraziť tabuľku vzdialeností.

Začiarkavacie políčka sa zvyčajne nachádzajú v ponuke nastavení. Ale kvôli jednoduchosti nášho programu sa zobrazujú na paneli vedľa poľa kreslenia, čo je pre používateľa veľmi výhodné.

7) Záložky - v tomto programe sa tabuľka a výkres plánu nachádzajú na rôznych záložkách. Verím, že to bude pre používateľa pohodlnejšie, keďže celý program je obsiahnutý v jednom okne a zároveň plocha tabuľky ani plocha kreslenia nie sú umiestnené na úkor seba.

V Builderi existujú dva typy kariet: TabControl a PageControl.

Program používa PageControl, pretože na rozdiel od prvého môže tento komponent obsahovať heterogénne ovládacie prvky na kartách. V TabControl sú všetky stránky rovnaké.

8) Dialógové okná sú veľmi pohodlným nástrojom, ktorý pomáha implementovať také dialógy s používateľom, ako je ukladanie, otváranie súboru, tlač a výber farby použitej v tomto programe.

Všetky potrebné dialógy sú umiestnené vo formulári, ale zostanú pre používateľa neviditeľné. Volá ich program a implementujú štandardné rozhranie Prieskumníka.

Pomocou dialógových okien OpenDialog a SaveDialog program dostane názov súboru a adresára, ktoré si používateľ vyberie. Pomocou PrintDialog sa vyvolajú nastavenia tlače. A ColorDialog vám pomôže vybrať farbu (používa sa na výber farby pozadia obrázka).

Účel každého komponentu používateľského rozhrania je popísaný v používateľskej príručke.

Stojí za zmienku, že každý objekt rozhrania má vlastnosť s názvom Align. Umožňuje vám zarovnať ovládací prvok vpravo, vľavo, hore alebo dole vo formulári a paneli a ovládací prvok tam zostane, aj keď sa zmení veľkosť formulára. Napríklad panel s tlačidlami v blízkosti obrázka je zarovnaný doprava, tabuľka vzdialeností je zarovnaná doľava a pole obrázka je zarovnané na alClient, ktorý zaberá všetok voľný priestor medzi tabuľkou a panelom. . Keď natiahnete formulár, tieto ovládacie prvky sa tiež roztiahnu, zatiaľ čo zostanú na svojom mieste.

Použitie vlastnosti Zarovnať je pohodlné, pretože vo fáze návrhu môžete komponenty usporiadať podľa potreby a potom nemusíte manuálne nastavovať ich veľkosti pri každej zmene tvaru.

5.5 Niektoré vlastnosti algoritmov

Algoritmus kreslenia

Keďže už bol dosť podrobne popísaný, pridám k jeho vývoju len jednu poznámku: kreslí mapu v konformnej projekcii. Tie zachovávajú rovnosť uhlov medzi smermi na mape a v prírode. Zároveň sú skreslené rozmery území.

Tento typ projekcie bol vybraný, pretože je najjednoduchšie nakresliť preň súradnicovú mriežku, pretože pozostáva z priamych čiar. (Viac informácií o mapových projekciách a súradniciach siete nájdete v prílohe E.)

Vzdialenosti sú vypočítané v skutočných veľkostiach.

Algoritmus na výpočet vzdialenosti.

Je tiež podrobne popísaný v "Popise algoritmu". Je súčasťou algoritmu kreslenia.

Bol odvodený autorom programu, pretože jeho analógy sa nikde nenašli. Jeho zvláštnosťou je, že je potrebné vziať do úvahy zakrivenie zemského povrchu a vypočítať dĺžku oblúka. To je obzvlášť ťažké, ak sú body umiestnené v rovnakej zemepisnej šírke a dĺžke.

Za tvar zemského povrchu sa považuje guľa. To môže viesť k chybám, pretože tvar zeme je v skutočnosti elipsoid, ale výrazne to zjednodušuje výpočty. Priemerný polomer Zeme sa považuje za 6371 km. To dáva chybu asi 0,3%.

Treba tiež poznamenať, že na výpočet vzdialenosti, najmä v najkomplexnejšom prípade, sa používa niekoľko sekvenčných výpočtov, v dôsledku ktorých sa chyba hromadí. Veľkosť chyby je ovplyvnená aj prevodom stupňovej miery uhla na radiány a naopak. Ale s modernou presnosťou počítačových výpočtov bude táto chyba malá a okrem toho úloha nenaznačovala, že odhad trasy by mal byť presný.

Vytvorenie tabuľky

Tu treba povedať, že v žiadnej knihe, ktorú mám, som nenašiel algoritmus na vytváranie tabuľky programovo. Všetka literatúra hovorila o vytváraní tabuliek v DatabaseDesktop, čo by bolo pre používateľa nepohodlné inštalovať ešte väčší program len na vyriešenie problému s vytváraním nových tabuliek.

Napriek tomu sa tento algoritmus našiel v pomocníkovi Buildera, hoci tam obsahoval chyby.

Program tiež predstavuje jeho pracovný príklad (pozri prílohu A, TBNewFileClick).

Ako vlastnosť tohto algoritmu je potrebné poznamenať, že pred volaním procedúry vytvárania tabuľky CreateTable() musíte inicializovať všetky polia s uvedením ich názvu, typu, dĺžky (ak sa vyžaduje) a požadovanej hodnoty (či je to potrebné). alebo nie). Po inicializácii polí deklarujeme kľúčové pole a až potom zavoláme procedúru vytvorenia tabuľky. Potom musíte novú tabuľku naviazať na komponent Tabuľka, aby ste s ňou mohli pracovať pomocou mriežky a navigátora. Názov súboru novej tabuľky sa požaduje pomocou SaveDialog.

Problém s veľkosťou grafiky

Pri vývoji programu sa vyskytol dosť vážny problém s kreslením obrázka - pri zmene veľkosti formulára sa mala zmeniť veľkosť obrázka, ale nestalo sa tak.

Dôvodom bolo, že veľkosť komponentu Image sa stále menila, no veľkosť obrázka zostala rovnaká. V tejto súvislosti bola vytvorená procedúra ResizeForm (viď príloha A), ktorá reagovala na zmeny veľkosti formulára a menila veľkosť obrázka v súlade so zmenenou veľkosťou komponentu Image.

5.6 Testovanie

Počas celého návrhu programu sa testoval a ladil. Osobitná pozornosť bola venovaná dvom bodom - správnosti práce s tabuľkami a správnosti kreslenia plánu.

Pri práci s tabuľkami bolo prvým krokom vysledovanie akýchkoľvek problémov spojených s otváraním, vytváraním tabuliek a kreslením. Ak napríklad nedeaktivujete tlačidlá kreslenia, kliknutie na ne, keď tabuľka nie je otvorená, môže viesť k chybe. Na odstránenie tejto chyby, ak nie je otvorený stôl, tlačidlá sa deaktivujú.

Ďalšou dôležitou chybou, ktorá bola opravená, je problém s veľkosťou grafiky (pozri vyššie).

Taktiež bolo potrebné zabezpečiť, aby sa pri deaktivácii/povolení checkboxov a zmene veľkosti formulára nekreslil obrázok, ak používateľ ešte neklikol na tlačidlo „kresliť“. Toto sledovanie sa v programe vykonáva pomocou príznaku žrebovania, ktorý sa nastaví, keď používateľ klikne na tlačidlo žrebovania, a zruší sa, keď klikne na tlačidlo vymazať. Počas testovacieho procesu boli monitorované a odladené všetky situácie, v ktorých bola kontrola tohto príznaku potrebná.

Najdôležitejším aspektom testovania bola kontrola funkčnosti programu na počítači, na ktorom nie je nainštalovaný Builder. To pomohlo určiť nasledovné:

1) pri zostavovaní programu musíte zahrnúť všetky použité knižnice. To sa dosiahne vypnutím dvoch možností v nastaveniach kompilátora. Súčasne sa zväčší spustiteľný kód programu, ale môže fungovať aj na počítači bez Buildera.

2) program vyžaduje databázový stroj Borland. Ak ho nemáte v počítači, musíte ho nainštalovať.


6. POPIS PROGRAMU

Program je určený na poskytovanie informačnej podpory pri tvorbe plánu lokality. Umožňuje ukladať údaje o bodoch plánu do tabuľky, zobrazovať ich graficky, vytvárať novú tabuľku, pridávať a mazať typy objektov, počítať vzdialenosti a odhadovať dĺžku trasy, kresliť viacero trás, ukladať výsledky do súboru resp. vytlačiť.

Program bol vytvorený pre operačný systém Windows a má štandardizované a užívateľsky prívetivé rozhranie. Spolu s ním prichádza príklad v podobe tabuľky s trasami vlakov.


7. NÁVOD NA INŠTALÁCIU

Pre inštaláciu programu musia byť splnené nasledovné požiadavky: procesor 233 MHz alebo vyšší, RAM 16 MB, OS Windows98 alebo vyšší.

Ak chcete nainštalovať program, musíte urobiť nasledovné:

1) Vytvorte nový priečinok pre program.

2) Z média, na ktorom sa nachádza archív programu (disketa alebo disk), skopírujte ho do tohto priečinka.

3) Rozbaľte archív do tohto priečinka.

4) Uistite sa, že súbory objects.db a rasst.db sú v rovnakom priečinku ako program.

5) Uistite sa, že atribút „Iba na čítanie“ je pre tieto súbory vymazaný. Ak nie, odstráňte ho.

6) Rozbaľte archív s knižnicami do priečinka Windows.

7) Teraz môžete spustiť program a používať ho.


8. UŽÍVATEĽSKÁ PRÍRUČKA 8.1 Hlavné menu Menu "Súbor".

Aby ste mohli začať pracovať v programe, musíte otvoriť súbor s tabuľkou alebo vytvoriť nový. Môžete to urobiť pomocou položiek ponuky Súbor, Otvoriť a Nový.

"Otvoriť" - otvorenie existujúcej tabuľky. Vyvolá dialógové okno, v ktorom musí používateľ vybrať súbor s príponou .db.

"Nový" - vytvorenie novej tabuľky. Vyvolá sa dialóg, v ktorom používateľ zadá názov novej tabuľky.

"Tlačiť" - v závislosti od otvorenej karty vytlačí obrázok alebo tabuľku. Po výbere tejto položky sa otvorí dialógové okno s nastaveniami tlače, po kliknutí na tlačidlo "OK" sa úloha odošle na tlač.

Menu tabuľky

"Postaviť plán" - ak je tabuľka otvorená, aktivuje záložku "Plán" a nakreslí plán.

"Pridať typ objektu" - vyvolá formulár na pridanie typu objektu.

"Vymazať typ objektu" - vyvolá formulár na vymazanie typu objektu.

Ponuka Pomoc

"O programe" - zobrazuje názov programu a informácie o autorovi.


8.2 Panel rýchlych tlačidiel

Akcie týchto tlačidiel sú podobné položkám s rovnakým názvom v ponuke "Súbor".

- "New" - vytvorenie novej tabuľky.

- "Open" - otvorenie existujúcej tabuľky.

- "Tlačiť" - vytlačí obrázok alebo tabuľku.

8.3 Tabuľka tab

Mriežka tabuľky – tabuľka sa do nej načíta. Pomocou tejto mriežky môže používateľ upravovať a zobrazovať položky tabuľky.

Navigátor – umiestnený pod mriežkou, umožňuje upravovať a prezerať tabuľku.

Navigačné tlačidlá

- "Prvý záznam" - presunie sa na prvý záznam v tabuľke.

- "Predchádzajúci záznam" - presunie sa na predchádzajúci záznam v tabuľke.

- "Ďalší záznam" - presunie sa na ďalší záznam v tabuľke.

- "Posledný záznam" - presunie sa na posledný záznam v tabuľke.

- „Pridať záznam“ - tabuľka sa prepne do editačného režimu, pred aktívny záznam sa vloží nový prázdny záznam.

- „Vymazať záznam“ – vymaže aktuálny záznam po predchádzajúcej žiadosti o potvrdenie.

- "Upraviť" - upraviť aktuálny záznam.

- "Zrušiť zmeny" - zruší zmeny v aktuálnom zázname a vráti jeho predchádzajúcu hodnotu.

- "Aktualizovať". Aktualizuje tabuľku v mriežke.

Pod navigátorom sa nachádza Zoznam objektov a tlačidlá na mazanie a pridávanie objektov.

Zoznam objektov – obsahuje zoznam typov objektov. Keď vyberiete typ zo zoznamu, zapíše sa do aktuálneho záznamu v tabuľke.

Pridať typ objektu – volá formulár pridania typu. Keď ho pridáte, okamžite sa pridá do zoznamu.

Vymazať typ objektu – vyvolá formulár na vymazanie typu objektu.

Pridajte formulár typu objektu

Obsahuje editačné pole na zadávanie textu, do ktorého sa zadáva názov nového typu.

"Pridať" - pridá typ objektu do zoznamu a tabuľky bez zatvorenia formulára.

"Ok" - ak objekt nebol pridaný, zapíše ho do zoznamu a tabuľky a zatvorí formulár.

"Zrušiť" - zatvorí formuláre bez pridania.

Odstrániť formulár typu objektu

Zoznam objektov – z neho používateľ vyberie, ktorý objekt potrebuje vymazať.

"Vymazať" - vymaže vybraný typ objektu z tabuľky a zoznamu.

"Vymazať všetko" - úplne vymaže tabuľku objektov a zoznamy.

"OK" - zatvorí formulár.


8.4 Záložka „Plán“.

Pole výkresu je oblasť, kde sa zobrazuje výkres plánu.

Posuvníky – zobrazia sa, keď zväčšíte obrázok kliknutím na tlačidlo „Zväčšiť“. Umožňuje posúvať zväčšený obrázok.

Tabuľka vzdialeností – zobrazuje pre každú trasu jej počet a dĺžku úsekov v kilometroch. Tabuľka je viditeľná, ak nie je začiarknuté políčko "Skryť tabuľku vzdialeností".

"Vymazať mapu" - vymaže obrazové pole.

„Nakresliť“ - nakreslí plán.

"Farba pozadia" - umožňuje vybrať farbu pozadia obrázka. Po kliknutí na toto tlačidlo sa zobrazí dialógové okno výberu farby.

"+ Enlarge" - zväčší obrázok na pláne.

"- Oddialiť" - zmenší obrázok na pláne. Toto tlačidlo sa aktivuje, keď stlačíte tlačidlo zvýšenia.

"Predvolené" - nastaví počiatočnú veľkosť obrázka.

„Nakresliť čiary trasy“ - ak je začiarknuté, trasy sa nakreslia do plánu, ak nie, zobrazia sa iba body.

„Zobraziť vzdialenosti na mape“ – ak je začiarknuté políčko, vedľa každého bodu trasy sa zobrazí vzdialenosť vo forme súčtu dĺžok úsekov predchádzajúcich tomuto bodu. „0“ sa umiestni blízko prvého bodu trasy.

„Zobraziť typ objektu na mape“ – ak je začiarknuté políčko, vedľa každého bodu sa zobrazí typ objektu.

"Skryť tabuľku vzdialeností" - ak je začiarknuté políčko, tabuľka vzdialeností je neviditeľná. Ak nie je začiarknuté, tabuľka sa zobrazí napravo od poľa kreslenia.

Všetky začiarkavacie políčka sú predvolene začiarknuté.


9. TESTOVACÍ PRÍPAD

Ako testovací príklad znázorníme trasy niekoľkých vlakov Gorkého železnice.

Poďme nasledujúcimi vlakmi:

N 497G Gorky-Mosk - Adler

N 471G Gorkij-Mosk - Novorossijsk

N 431G Gorky-Mosk - Adler

N 367G Gorkij-Mosk - Samara

N 059A Gorkij-Mosk - Petrohrad-Glavn

N 039G Gorkij-Mosk - Moskva Kursk

Zapíšme do tabuľky súradnice najväčších obývaných oblastí ako body na každej trase. Ako objekty použijeme názvy miest.

Ryža. 9.1. Celkový pohľad na program na karte "Tabuľka", zadanie názvu objektu do záznamu pomocou zoznamu.


Predtým sme do tabuľky objektov pridali stanicu Red Knot, ale keďže ju nepotrebujeme, odstránime ju.

Ryža. 9.2. Odstráňte typ objektu.

Pri vytáčaní trasy vlaku 431 potrebujeme Vladimíra. Keďže nie je na zozname, musíte ho pridať.

Ryža. 9.3. Pridanie typu objektu.


Takže sme zhromaždili všetky trasy, ktoré sme chceli. Výsledkom bolo, že sme skončili s takýmto stolom.

Ryža. 9.4. Tabuľka

Teraz pomocou nášho tabletu vytvoríme plán.

Ryža. 9.5. Obrázok plánu so všetkými nápismi.


Štandardne zobrazujeme čiary, vzdialenosti a názvy miest.

Uvidíme, ako budú vyzerať trasy bez podpisov.

Ryža. 9.6. Obrázok plánu bez všetkých nápisov.

Teraz sa pozrime na vzdialenosti.

Ryža. 9.7. Obrázok plánu iba so vzdialenosťami.


V skutočnosti neboli vypočítané veľmi presne, ale je to preto, že sme nebrali do úvahy všetky body týchto trás a tiež prijaté súradnice neboli úplne správne - boli určené z mapy „okom“.

Teraz sa pozrime na náš plán len s názvami miest.

Ryža. 9.8. Obrázok plánu zobrazujúci iba typy objektov.

Ryža. 9.9. Obrázok plánu vo forme bodiek so všetkými podpismi.


Môžete tiež vidieť tabuľku vzdialeností.

Ryža. 9.11. Celkový pohľad na program na karte "Plán" s viditeľnou tabuľkou vzdialeností.


ZÁVER

Úloha predložená v zadaní bakalárskej práce bola úspešne splnená. Vyvinutý program plne spĺňa počiatočné podmienky opísané v probléme. Program implementoval najmä prácu s tabuľkami, grafikou a súbormi.

Práca používateľa programu sa vykonáva pomocou jednoduchého rozhrania vytvoreného podľa štandardov rozhrania programu Windows.

Medzi ďalšie vylepšenia a rozšírenie možností tohto projektu patrí pridanie výpočtu najkratšej trasy, kreslenie ikon objektov, reliéfne obrázky a možnosť načítať obrázok mapy ako pozadie.


BIBLIOGRAFIA

1. P. Gustafson, M. Cashman, B. Swart, J. Holingworth. Borland C++ Builder 6. Príručka pre vývojárov. – Williams, 2004.

2. A. Archangelskij. Programovanie v C++ Builder 6. – Binom, 2002.

3. T.A. Pavlovská. C/C++. Programovanie v jazyku vysokej úrovne. – Peter, 2001.


PRÍLOHA PRÍLOHA E. Mapové projekcie a mriežkové mapy

Nie je možné rozvinúť guľovú plochu v rovine bez zlomov a záhybov, to znamená, že jej pôdorysný obraz v rovine nemožno znázorniť bez skreslení, s úplnou geometrickou podobnosťou všetkých jej obrysov. Úplnú podobnosť obrysov ostrovov, kontinentov a rôznych predmetov premietaných na rovnú plochu je možné dosiahnuť len na guli (glóbuse). Obraz zemského povrchu na guľôčke (glóbuse) má rovnakú mierku, rovnaký uhol a rovnakú veľkosť.

Nie je možné súčasne a úplne zachovať tieto geometrické vlastnosti na mape. Geografická mriežka postavená na rovine, zobrazujúca poludníky a rovnobežky, bude mať určité skreslenia, takže obrazy všetkých objektov na zemskom povrchu budú skreslené. Povaha a rozsah skreslení závisí od spôsobu konštrukcie kartografickej siete, na základe ktorej je mapa zostavená.

Zobrazenie povrchu elipsoidu alebo gule v rovine sa nazýva mapová projekcia. Existujú rôzne typy mapových projekcií. Každá z nich zodpovedá špecifickej kartografickej sieti a jej vlastným deformáciám. V jednom type projekcie sú rozmery plôch skreslené, v inom - uhly, v treťom - plochy a uhly. Zároveň sú vo všetkých projekciách bez výnimky skreslené dĺžky čiar.

Kartografické projekcie sa klasifikujú podľa charakteru skreslenia, typu obrazu poludníkov a rovnobežiek (geografická sieť) a niektorých ďalších charakteristík. Na základe povahy skreslení sa rozlišujú tieto mapové projekcie:

Rovnouhlé, zachovávajúce rovnosť uhlov medzi smermi na mape a v prírode. Na obrázku E.1 je znázornená mapa sveta, na ktorej si kartografická sieť zachováva vlastnosť rovnostrannosti. Mapa si zachováva podobnosť rohov, ale veľkosti plôch sú skreslené. Napríklad oblasti Grónska a Afriky na mape sú takmer rovnaké, ale v skutočnosti je oblasť Afriky asi 15-krát väčšia ako plocha Grónska.

Obr.E.1 Mapa sveta v konformnej projekcii.

Rovnaké veľkosti, zachovávajúc proporcionalitu oblastí na mape k zodpovedajúcim oblastiam na zemskom elipsoide. Obrázok E.2 zobrazuje mapu sveta nakreslenú v projekcii na rovnakú plochu. Zachováva proporcionalitu všetkých oblastí, ale podobnosť obrázkov je skreslená, to znamená, že neexistuje rovnostrannosť. Vzájomná kolmosť poludníkov a rovnobežiek na takejto mape je zachovaná len pozdĺž stredného poludníka.

Rovnaká vzdialenosť, udržiavanie konštantnej mierky v akomkoľvek smere;

Ľubovoľné, nezachovávajúce ani rovnosť uhlov, proporcionalitu plôch, ani stálosť mierky. Účelom použitia ľubovoľných projekcií je rovnomernejšie rozloženie skreslení na mape a pohodlie pri riešení niektorých praktických problémov.


Ryža. E. 2 Mapa sveta v rovnoplošnej projekcii.

Siete poludníkov a rovnobežiek projekcie mapy sa podľa typu obrazu delia na kužeľové, valcové, azimutálne atď. Okrem toho v každej z týchto skupín môžu existovať projekcie rôzneho charakteru skreslenia (konformné, rovnoplošné , atď.). Geometrická podstata kužeľových a valcových projekcií spočíva v tom, že na bočnú plochu kužeľa alebo valca sa premieta sieť poludníkov a rovnobežiek s následným rozložením týchto plôch do roviny. Geometrická podstata azimutálnych projekcií spočíva v tom, že mriežka meridiánov a rovnobežiek sa premieta na rovinu dotýkajúcu sa gule na jednom z pólov alebo sečnicu pozdĺž nejakej rovnobežky. Kartografická projekcia, ktorá je najvhodnejšia z hľadiska charakteru, veľkosti a rozloženia skreslení pre konkrétnu mapu, sa volí v závislosti od účelu, obsahu mapy, ako aj veľkosti, konfigurácie a geografickej polohy mapovaného územia. Vďaka kartografickej mriežke všetky skreslenia, bez ohľadu na to, aké veľké môžu byť, samy osebe neovplyvňujú presnosť určenia geografickej polohy (súradníc) objektov zobrazených na mape na mape. Kartografická sieť, ktorá je grafickým vyjadrením projekcie, zároveň umožňuje pri meraní na mape zohľadniť povahu, veľkosť a rozloženie skreslení. Preto je akákoľvek geografická mapa matematicky určeným obrazom zemského povrchu.

Osobné dcérske pozemky Aginského Burjatského autonómneho okruhu na roky 2005 - 2010,“ ktorý bol pripravený v predbežnej verzii. 4. Hlavné smery pre zlepšenie činnosti vládnych orgánov pri podpore osobných pomocných pozemkov vidieckeho obyvateľstva v Aginskom Burjatskom autonómnom okruhu 4.1 Problémy a priority rozvoja osobných pomocných pozemkov v Aginskom...

Štúdium rodín viedlo k rozvoju psychologických, pedagogických a sociologických metód, ktoré prehlbujú a rozširujú predstavy o modernej rodine. KAPITOLA 3. SOCIÁLNE PROBLÉMY A VYHĽADÁVANIE SOCIÁLNEJ PRÁCE S MLADÝMI RODINAMI V OBCI VORONOVKA 3.1 Všeobecná charakteristika str. Voronovka, okres Shegarsky, kraj Tomsk, okres Shegarsky sa nachádza v južnej časti mesta Tomsk...




Poskytovanie a podpora pre deti; - v súčasnosti bol v Rusku vyvinutý a zavedený mechanizmus financovania cielených programov na podporu materstva a detstva. 2. Finančný mechanizmus realizácie štátnej politiky na podporu materstva a detstva 2.1 Postup a podmienky vyplácania sociálnych dávok V Rusku je k dnešnému dňu pomerne rozvinutý systém dávok, ...