Vytvorenie funkčného diagramu programu. Bloková schéma vyvíjaného softvéru Vývoj funkčnej schémy

Štrukturálne nazývaný diagram, ktorý odráža zlúčenina A interakcia manažmentučasti vyvíjaného softvéru.

Štrukturálne diagramy softvérových balíkov nie sú informatívne, pretože organizácia programov do balíkov neumožňuje prenos kontroly medzi nimi. Preto sú pre každý program v balíku vyvinuté blokové diagramy a zoznam programov v balíku je určený analýzou funkcií špecifikovaných v technických špecifikáciách.

Najjednoduchším typom softvéru je program, ktorý môže ako štrukturálne komponenty obsahovať iba podprogramy a knižnice zdrojov. Vývoj blokového diagramu programu sa zvyčajne vykonáva pomocou podrobnej metódy krok za krokom. Štrukturálnymi komponentmi softvérového systému alebo softvérového komplexu môžu byť programy, podsystémy, databázy, knižnice zdrojov atď. Blokový diagram softvéru balík demonštruje prenos riadenia z dispečerského programu na príslušný program (obr. 5.1 ).

Ryža. 5.1. Príklad blokovej schémy softvérového balíka

Bloková schéma softvérového systému zvyčajne ukazuje prítomnosť subsystémov alebo iných štrukturálnych komponentov. Na rozdiel od softvérového komplexu si jednotlivé časti (subsystémy) softvérového systému intenzívne vymieňajú dáta medzi sebou a prípadne aj s hlavným programom. Bloková schéma softvérového systému to zvyčajne neukazuje (obr. 5.2).

Ryža. 5.2. Príklad blokovej schémy softvérového systému

Kompletnejší obraz o navrhovanom softvéri z hľadiska interakcie jeho komponentov navzájom a s vonkajším prostredím poskytuje funkčný diagram.

Funkčná schéma. Funkčný diagram alebo dátový diagram (GOST 19.701-90) - diagram interakcie softvérových komponentov s popisom informačných tokov, zložením dát v tokoch a uvedením použitých súborov a zariadení. Na zobrazenie funkčných diagramov sa používajú špeciálne symboly stanovené normou. Hlavné označenia dátových diagramov podľa GOST 19.701-90 sú uvedené v tabuľke. 5.1.

Tabuľka 5.1

Názov bloku Označenie Účel bloku
Zapamätané údaje Na označenie tabuliek a iných dátových štruktúr, ktoré musia byť uložené bez zadania typu zariadenia
Náhodný vstup do pamäťe Odkazuje na tabuľky a iné dátové štruktúry uložené v RAM
Sekvenčná prístupová pamäť Odkaz na tabuľky a iné dátové štruktúry uložené na zariadeniach so sekvenčným prístupom (magnetická páska atď.)
Úložné zariadenie s priamym prístupom Odkazovať na tabuľky a iné dátové štruktúry uložené na zariadeniach s priamym prístupom (disky)
Dokument Určenie výstupu tabuliek a iných dátových štruktúr do tlačového zariadenia
Manuálny vstup Na označenie manuálneho zadávania údajov z klávesnice
Mapa Na označovanie údajov na magnetických alebo diernych štítkoch
Displej Na označenie údajov zobrazených na displeji počítača


Funkčné diagramy sú informatívnejšie ako štrukturálne diagramy. Na obr. 5.3 sú zobrazené funkčné schémy softvérových balíkov a systémov na porovnanie.

Musia byť popísané všetky komponenty štrukturálnych a funkčných schém. Pri štrukturálnom prístupe je obzvlášť potrebné vypracovať špecifikácie medziprogramových rozhraní, pretože počet najnákladnejších chýb závisí od kvality ich popisu. Najdrahšie chyby sú tie, ktoré sa objavia počas komplexného testovania, pretože ich odstránenie môže vyžadovať veľké zmeny v už odladených textoch.

Ryža. 5.3. Príklady funkčných schém: A - komplex programov; b - softvérový systém


Algoritmové diagramy

Účel prednášky: zoznámiť sa s návrhom softvéru pomocou štruktúrovaného prístupu.

Proces navrhovania komplexného softvéru začína objasnením jeho štruktúry, t.j. definovaním konštrukčných komponentov a väzieb medzi nimi. Výsledok spresnenia štruktúry môže byť prezentovaný vo formulári štrukturálne a/alebo funkčné schémy a popisy (špecifikácie) komponentov.

Štrukturálne nazývaný diagram odrážajúci zloženie a interakciu pri riadení častí vyvíjaného softvéru. Štrukturálne diagramy softvérových balíkov nie sú informatívne, pretože organizácia programov do balíkov neumožňuje prenos kontroly medzi nimi. Preto sú pre každý program v balíku vyvinuté blokové diagramy a zoznam programov v balíku je určený analýzou funkcií špecifikovaných v technických špecifikáciách.

Vývoj blokového diagramu najjednoduchšieho typu softvéru - programu, ktorý obsahuje iba podprogramy a knižnice zdrojov ako štrukturálne komponenty - sa vykonáva pomocou metódy krok za krokom. Štrukturálnymi komponentmi softvérového systému (komplexu) sú programy, knižnice zdrojov, podsystémy a databázy. Bloková schéma softvérového komplexu demonštruje prenos riadenia z dispečerského programu na príslušný program (obrázok 11.1a).

Obrázok 11.1 - Príklad schém softvérového balíka: a) štrukturálne;

b) funkčné

Bloková schéma softvérového systému ukazuje prítomnosť subsystémov alebo iných štrukturálnych komponentov. Na rozdiel od softvérového komplexu si jednotlivé časti (subsystémy) softvérového systému intenzívne vymieňajú dáta medzi sebou aj s hlavným programom. Bloková schéma softvérového systému to neukazuje (obrázok 11.2a).

Obrázok 11.2 – Príklad schém softvérového systému: a) štrukturálny;

b) funkčné

Úplnejšie pochopenie navrhnutého softvéru z pohľadu interakcie jeho komponentov medzi sebou navzájom a s vonkajším prostredím dáva funkčné schémy. Funkčná schéma (dátová schéma, GOST 19.701-90) - schéma interakcie softvérových komponentov s popisom informačných tokov, zložením údajov v tokoch a uvedením použitých súborov a zariadení. Na zobrazenie funkčných diagramov sa používajú špeciálne symboly stanovené normou. Hlavné označenia dátových schém sú uvedené v tabuľke D.1. Funkčné diagramy sú informatívnejšie ako štrukturálne diagramy. Obrázky 11.1b a 11.2b zobrazujú funkčné schémy softvérových komplexov a systémov. Musia byť popísané všetky komponenty štrukturálnych a funkčných schém. Špecifikácie medziprogramových rozhraní by mali byť starostlivo vypracované, pretože kvalita ich popisu určuje počet najnákladnejších chýb, medzi ktoré patria chyby zistené počas komplexného testovania.

Štrukturálny prístup k programovaniu pôvodne navrhoval dekompozíciu programov pomocou metódy krok za krokom detailovania. Výsledkom je bloková schéma programu, t.j. viacúrovňová hierarchická schéma interakcie medzi riadiacimi podprogramami. Takýto diagram zobrazuje minimálne dve úrovne hierarchie (zobrazuje všeobecnú štruktúru programu). Rovnaká metóda vám umožňuje získať štrukturálne diagramy s veľkým počtom úrovní. Rozdelenie na moduly sa vykonáva heuristicky, na základe odporúčaných veľkostí modulov (20-60 riadkov) a zložitosti štruktúry (2-3 vnorené riadiace štruktúry). Na analýzu vyrobiteľnosti hierarchie modulov sa používajú metódy Konštantín alebo Jackson.

Zapnuté štruktúrna mapa Konštantín vzťahy medzi modulmi sú znázornené vo forme grafu, ktorého vrcholy zodpovedajú modulom a spoločným dátovým oblastiam a oblúky zodpovedajú intermodulovým volaniam a prístupom do spoločných dátových oblastí. Existujú štyri typy vrcholov: modul– podprogram; subsystému- program; knižnica- súbor podprogramov umiestnených v samostatnom module; dátová oblasť- špeciálne navrhnutý súbor údajov, ku ktorým je možný prístup zvonku. V tomto prípade môžu byť jednotlivé časti softvérového systému volané postupne, paralelne alebo ako korutíny.

Objavili sa takmer súčasne techniky softvérový dizajn Jackson A Varnier-Orra aj na základe dekompozície údajov. Obe techniky sú určené na vytváranie „jednoduchých“ programov, ktoré pracujú so zložitými, ale hierarchicky usporiadanými dátovými štruktúrami. Pri vývoji softvérových systémov sa navrhuje najprv rozdeliť systém na samostatné programy a potom použiť tieto techniky. Môžu sa použiť len vtedy, ak údaje vyvíjaných programov môžu byť reprezentované vo forme hierarchie alebo súboru hierarchií.

Jacksonova technika je založená na hľadaní súladu medzi štruktúrami zdrojových údajov a výsledkami. Pri jeho používaní sú však možné situácie, keď na niektorých úrovniach neexistujú žiadne korešpondencie. Napríklad záznamy zdrojového súboru nie sú zoradené v poradí, v akom by sa príslušné riadky mali objaviť v zostave. Takéto situácie sa nazývajú „ strety».

Technika Warnier-Orr je založená na rovnakom princípe ako Jacksonova technika, ale štruktúry výstupných dát sú pri konštrukcii programu považované za hlavné a ak štruktúry vstupných dát nezodpovedajú štruktúram výstupných, tak môžu byť zmenený. Odpadá tak hlavná príčina kolízií. V praxi však nie je vždy možné revidovať štruktúry vstupných údajov: tieto štruktúry môžu byť už striktne definované, napríklad ak boli údaje získané počas vykonávania iných programov, preto sa táto technika používa menej často.

Podľa návrhu dátové štruktúry pochopiť vývoj ich reprezentácií v pamäti. Hlavné parametre, ktoré je potrebné zvážiť pri navrhovaní dátových štruktúr, sú:

    typ uloženej informácie každého dátového prvku - určuje typ zodpovedajúceho pamäťového poľa;

    spojenia medzi dátovými prvkami a vnorenými štruktúrami, ako aj množina operácií s nimi - určiť pamäťové štruktúry používané na reprezentáciu dát;

    čas uloženia štruktúrnych údajov („životnosť“) - zohľadňuje sa pri umiestňovaní údajov do statickej alebo dynamickej pamäte, ako aj do externej pamäte.

Existujú dve základné štruktúry na organizovanie údajov v pamäti RAM: vektor A zoznam. Vektorová štruktúra- postupnosť bajtov pamäte, ktoré sa používajú na umiestnenie dátových polí. Sekvenčné umiestnenie organizovaných dátových štruktúr umožňuje priamy prístup k prvkom: podľa indexu (v poliach alebo reťazcoch) alebo podľa názvu poľa (v záznamoch alebo objektoch). Vykonávanie operácií pridávania a odstraňovania na umiestnenie prvkov poľa však vyžaduje viacnásobné posuny prvkov. Umiestnenie vektorových reprezentácií v dynamickej pamäti môže výrazne zvýšiť efektivitu využitia RAM. Zoznam štruktúr sú postavené zo špeciálnych prvkov, ktoré okrem informačnej časti obsahujú jeden alebo viac ukazovateľov – adries prvkov alebo vnorených štruktúr spojených s týmto prvkom. Ich umiestnením do dynamickej pamäte sa organizujú rôzne vnútorné štruktúry. Typicky sa vektorová reprezentácia používa na ukladanie statických množín, tabuliek (jednorozmerných a viacrozmerných: matice, riadky, záznamy), ako aj grafov reprezentovaných maticou susedstva, maticou výskytu alebo analyticky. Reprezentácia zoznamu je vhodná na ukladanie dynamických (meniteľných) štruktúr a štruktúr so zložitými vzťahmi.

Moderné operačné systémy podporujú dva spôsoby usporiadania údajov v externej pamäti: konzistentné A s priamym prístupom. So sekvenčným prístupomúdaje je možné čítať iba sekvenčne alebo zapisovať sekvenčne (práca s klávesnicou alebo displejom, spracovanie textových súborov alebo súborov, ktorých formát záznamu sa počas prevádzky mení). Rovno prístup je možný len pre súbory na disku, ktoré si vymieňajú informácie so záznamami s pevnou dĺžkou (binárne súbory C alebo súbory typu Pascal). Adresu záznamu v takomto súbore možno určiť podľa jeho čísla, čo umožňuje priamy prístup k požadovanému záznamu. RAM ukladá údaje, ktoré vyžadujú rýchly prístup na čítanie aj zmenu; v externom - údaje, ktoré je potrebné uložiť po ukončení programu.

Je možné, že počas práce je vhodné pre urýchlenie prístupu k nim ukladať dáta do RAM a po dokončení ich prepísať do externej pamäte na dlhodobé uloženie. Toto je metóda, ktorú používa väčšina textových editorov: pri práci s textom sa celý alebo jeho časť umiestni do pamäte RAM, odkiaľ sa podľa potreby skopíruje do externej pamäte. V takýchto prípadoch sú vyvinuté dve reprezentácie údajov: v RAM a vo vonkajšej pamäti.

Správny výber štruktúr do značnej miery určuje efektívnosť vyvinutého softvéru a jeho technologické kvality, preto by sa pri navrhovaní mala tejto problematike venovať dostatočná pozornosť.

Ďalšie informácie k téme možno získať na.

Po zadaní údajov je potrebné dať užívateľovi možnosť vytlačiť si formulár certifikátu a kópiu klienta. Táto operácia musí byť vykonaná bez problémov. Tlač je možné vykonávať na dvoch typoch tlačiarní: nárazovej (matrix) a atramentovej. Tlač certifikátu na laserových tlačiarňach nie je možná z dôvodu zvýšených požiadaviek na kvalitu papiera. Pri tlači certifikátu na ihličkovej tlačiarni môžete vytlačiť dve kópie (certifikát + kópia) naraz pomocou uhlíkového papiera. Na atramentovej tlačiarni musíte vytlačiť každú kópiu samostatne. Preto je potrebné zabezpečiť užívateľsky meniteľné počítadlo kópií alebo špeciálnu funkciu nastavenia pre daný typ tlačiarne.

Obr.2 Schéma interakcie a dátovej komunikácie

Vytvorenie funkčného diagramu programu.

Funkčná skladba programu by mala v maximálnej miere poskytovať potrebný súbor schopností pre pokladníka OP na výkon jeho pracovných povinností súvisiacich so zadávaním údajov, evidenciou transakcií a vykonávaním reportovacích dokumentov. Za týmto účelom zostavíme približný zoznam funkcií, ktoré by mali byť implementované v našom systéme.

Približný zoznam funkcií systému.

1) Registrácia výmennej transakcie

· Zadávanie údajov o nákupoch meny

· Zadávanie údajov pre predaj meny

· Zadávanie údajov o prevode meny

· Tlač zákazníckej pomoci

2) Pozrite si dokumenty

· Zobraziť zoznam dokumentov dňa

· Zobrazenie zoznamu archivovaných dokumentov

3) Údržba adresárov

· Zadávanie údajov podľa hodnotových kódov

· Zadávanie údajov podľa typov dokladov

· Zadávanie údajov pomocou kódov mien

· Zadávanie výmenných kurzov podľa dátumu

4) Generovanie reportovacích dokumentov

· Tlač registra hotovosti v cudzej mene zakúpenej za hotovostné ruble;

· Tlač registra hotovosti v cudzej mene predávanej za hotovosť rubľov;

· Tlač registra na výmenu (konverziu) hotovosti v cudzej mene;

5) Ďalšie funkcie

· Zadávanie údajov do vstupného poľa z adresára

· Prevod čísla z digitálneho na malé písmená (suma slovami)

· Zmena vzhľadu kurzora

· Ukladanie údajov do archívnych súborov

Vyššie uvedený zoznam pokrýva všetky postupy popísané v časti technologického procesu OP a je doplnený o niektoré funkcie, ktoré budú potrebné v procese zadávania a opravy údajov.

Vypracovanie štrukturálneho diagramu programu.

Štrukturálny diagram softvérového balíka v základných pojmoch určuje tak vzhľad navrhovaného systému, ako aj princípy interakcie s používateľom. Diagram navrhnutého systému bude hierarchická stromová štruktúra, ktorá popisuje postupy pre zadávanie, spracovanie a výstup dát. Konštrukcia programov informačných a referenčných tried podľa tohto princípu značne uľahčuje úpravu systému ako celku a uľahčuje vnímanie a pochopenie princípu fungovania programu. Na zostavenie štruktúrneho diagramu je potrebné určiť hierarchiu a prepojenie vyššie uvedených postupov spracovania dát. Je prirodzené stanoviť hierarchiu postupov v podobe, v akej boli opísané v predchádzajúcej kapitole, keďže takáto schéma zodpovedá schéme „dôležitosti“ a „použiteľnosti“ postupov. Bloková schéma programu, berúc do úvahy všetko vyššie uvedené, je uvedená na obr.

Vývoj rozhrania programu na obrazovke

Existujúce prístupy k dizajnu rozhrania obrazovky

Rozhranie programu na obrazovke do značnej miery určuje pohodlie používateľa a je jedným z dôležitých faktorov ovplyvňujúcich efektivitu jeho práce. Program, ktorý vykonáva všetky funkcie, ktoré sú mu priradené a má vysoký výkon, môže byť úplne nevhodný na prácu kvôli neprijateľnému používateľskému rozhraniu. Len pred niekoľkými rokmi existoval textový editor, ktorý dokonale ilustruje tento prístup k dizajnu softvéru. Je nepravdepodobné, že by sa niekomu páčil textový editor, v ktorom na vloženie znaku do riadku musíte zadať jednopísmenový kód pre príkaz insert, číslo spracovávaného riadku (našťastie nie binárne), číslo znaku, za ktorý sa vloží nový znak, a tohto znaku samotného. Samozrejme, tento prístup je absolútne neprijateľný.

Za najpraktickejšie a užívateľsky najprívetivejšie systémy možno považovať tie, ktoré majú rozhranie obrazovky postavené na základe systému vyskakovacích ponúk. Najbežnejšie sú v súčasnosti dve ideológie (rozumej DOS aplikácie), ktoré zahŕňajú určitý tvar okien obrazovky a farebnú schému a typ vyskakovacích zoznamov. Ide o prostredia nástrojov Borland a operačný shell Norton od spoločnosti Symantec. Obe ideológie zabezpečujú určité rozdelenie priestoru obrazovky na oblasti alebo zóny určené pre špecifické informačné objekty a akcie. Zóny môžu byť do určitej miery prekonfigurované na žiadosť používateľa: ich veľkosť a poloha na obrazovke sa zmenia. Príkazy na spracovanie údajov sa vyvolávajú zo systému ponúk, ktorý je neustále prítomný na obrazovke (Borland), alebo sa vyvolávajú funkčným klávesom (Symantec).

V oboch prípadoch sú všetky systémové príkazy rozdelené podľa funkčnosti do skupín a sú prítomné v hlavnom menu

skutočné názvy skupín príkazov. Výberom skupiny získa používateľ prístup k zoznamu skupinových príkazov, ktoré môžu zahŕňať aj príkazy zoskupené do skupín druhej úrovne atď.

Tým sa vytvorí viacúrovňový systém kontextových ponúk. Použitie takejto ideológie zaisťuje jednoduchú navigáciu v systéme, ktorý má pomerne zložité, viacúrovňové menu s mnohými možnosťami. Prirodzene, nárast hniezdenia a veľkosti výberových zoznamov by mal mať rozumné limity, ktoré našťastie existujú v podobe obmedzeného priestoru obrazovky na monitore. Väčšina systémov má tiež možnosť prispôsobiť farebnú paletu podľa želania používateľa. Obslužný kryt Norton ponúka výber farieb z niekoľkých štandardných možností, v systémoch Borland si môžete vytvoriť vlastnú farebnú schému až do najmenšieho detailu. Približný pohľad na niektoré objekty obrazovky je na Obr. 4,5.

Výber ideológie rozhrania na obrazovke

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 v programe sa 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.

Podľa typu obrazu sa mriežky poludníkov a rovnobežiek kartografickej projekcie delia na kužeľové, valcové, azimutálne atď. Navyše 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, ...