» Diagram ng istraktura ng software. Disenyo ng software gamit ang isang structured na diskarte

Diagram ng istraktura ng software. Disenyo ng software gamit ang isang structured na diskarte

3. STRUCTURAL DIAGRAM NG PROGRAM

Ang mga pangunahing pag-andar na kailangang ipatupad sa aming programa ay sumusunod mula sa pagbabalangkas at pagsusuri ng problema:

1) Pagpapakita ng data ng user sa anyo ng isang talahanayan at nagtatrabaho kasama nito.

2) Pagdaragdag at pagtanggal ng mga uri ng bagay.

3)Graphical na representasyon ng plano na may kakayahang mag-scale.

4) Paggawa gamit ang mga file at mga resulta sa pag-print.

5) Maginhawang user interface.

Nasa ibaba ang isang functional block diagram ng programa, na inilalarawan sa anyo ng mga pangunahing module at mga koneksyon sa pagitan nila. Malinaw na kinakatawan nito ang pagpapatupad ng mga kinakailangan sa itaas sa programa.

kanin. 3.1. Functional na istraktura ng programa.

Ang pangunahing bahagi ng programa ay ang control at interface generation module. Kinakatawan nito ang pangunahing anyo kung saan mayroong mga kontrol na nagpapahintulot sa iba pang mga function na maisagawa at bumubuo rin ng user interface.


4. BATAYANG ALGORITHMS

Ang pangunahing isa ay ang algorithm para sa pagbuo ng isang imahe batay sa data mula sa pangunahing talahanayan, na ipinatupad sa anyo ng plandraw() na pamamaraan.

Nasa ibaba ang block diagram at paglalarawan nito.

4.1 Paglalarawan ng algorithm

Kung hindi na-activate ang tab na naglalaman ng larawan ng aming plano, ia-activate namin ito.

Naghahanda kami ng talahanayan ng mga distansya, nililinis ito ng mga nakaraang entry.

Itinakda namin ang mga parameter ng background (kulay) at iguhit ito, pagkatapos ay itakda ang mga parameter ng panulat (kapal at istilo ng linya), na tutukuyin ang pagpapakita ng mga linya ng ruta sa pagguhit. Sa simula, ang kapal ng linya ay katumbas ng isa - para sa pagguhit ng coordinate grid.

Gamit ang RecordCount table property, makikita namin ang bilang ng mga row sa main table.

Itinakda namin ang kasalukuyang record pointer sa una, at nag-aayos ng isang cycle ng pagdaan sa lahat ng mga talaan ng talahanayan, kung saan binibilang namin ang bilang ng mga ruta.

Sa pinakadulo simula ng cycle, naghahanda kami para sa pagpapakita ng scale - nagtatalaga kami ng magnification factor (sa buong unit) sa scale variable, at para sa parehong mga scroll bar ay tinutukoy namin ang maximum na halaga, na depende sa antas ng magnification at ang laki ng larawan.

Kung ang numero ng ruta ay zero, kung gayon ang kundisyon para sa pagguhit ng coordinate grid - mga meridian at parallel - ay natutugunan. Una, ang isang cycle ng pagguhit ng mga meridian ay ginaganap - pumunta tayo mula 0 hanggang 360 degrees sa mga hakbang depende sa antas ng magnification (15, 6, 3, o 1 degrees), at malapit sa bawat meridian ang kaukulang antas ng longitude ay nilagdaan (silangan longitude - na may "+" sign) , western - na may "-" sign). Ang prime meridian ay inilalarawan sa itim. Ang mga katulad na aksyon ay isinasagawa sa cycle ng pagguhit ng mga parallel, ang pagkakaiba lamang ay ang cycle ay tumatakbo mula 0 hanggang 180 degrees. Ang sign na "+" ay nagpapahiwatig ng hilagang latitude, at ang "-" na sign ay nagpapahiwatig ng southern latitude.

Baguhin ang kapal ng linya sa 2 upang ipakita ang mga linya ng ruta.

Lumilikha kami ng tatlong array kung saan ilalagay namin ang mga index ng kasalukuyang mga talaan ng ruta at mga coordinate. Susunod, inaayos namin ang isang loop kung saan dumaan kami sa mga entry sa talahanayan at punan ang mga array na ito para sa kasalukuyang ruta. Bukod dito, ang mga naka-scale na halaga ay ipinasok sa mga coordinate array. Sa parehong cycle binibilang namin ang bilang ng mga punto ng ruta.

Sa susunod na loop, pinag-uuri-uriin namin ang mga nilalaman ng array ng index upang maaari naming iguhit ang mga waypoint sa pagkakasunud-sunod kung saan lumilitaw ang mga ito sa talahanayan.

Itakda ang kulay ng linya depende sa numero ng ruta. At inayos namin ang isang loop na gumuhit ng mga linya.

Sa cycle ng pagguhit ng linya ginagawa namin ang sumusunod: isinasaalang-alang ang mga posisyon ng mga scroll bar, kinakalkula ang posisyon ng window na may kaugnayan sa mapa, at ang mga coordinate ng punto sa window ay kinakalkula na may kaugnayan sa posisyon na ito. Kung ito ang aming unang pass, pagkatapos ay ilipat lamang namin ang cursor sa punto na may kinakalkula na mga coordinate kung hindi, at ang line drawing flag ay naka-on, gumuhit kami ng isang linya mula sa nakaraang punto sa isang ito; Kung ang checkbox ay hindi pinagana, ang mga puntos lamang ang inilalagay sa mapa.

Pagkatapos ay kinakalkula ang distansya sa pagitan ng mga puntong matatagpuan sa globo, ang mga projection na kakalarawan lang natin sa ating mapa. Ang mga distansya ay kinakalkula sa kilometro, ang radius ng Earth ay kinuha na 6371 km. Ang distansya ay kinakalkula kung ang i ay hindi katumbas ng 0, at hindi ito ang unang pagpasa sa cycle. Ang kundisyong ito ay kinakailangan dahil ginagamit namin ang mga coordinate ng nakaraang punto upang mahanap ang distansya sa kasalukuyang isa.

Dahil ang ibabaw ng mundo ay spherical, kailangan nating kalkulahin ang haba ng arko. Ang pangunahing problema dito ay ang paghahanap ng anggulo kung saan nakasalalay ang arko.

Tatlong kaso ang isinasaalang-alang:

1) kung ang mga punto ay nasa parehong longitude, ang anggulo ay madaling matukoy - ito ay magiging katumbas ng pagkakaiba sa pagitan ng mas malaki at mas maliit na mga halaga ng latitude.

2) kung ang mga punto ay nasa parehong latitude, kung gayon ang pagpapasiya nito ay hindi rin mahirap - ito ay katumbas ng pagkakaiba sa pagitan ng mas malaki at mas maliit na mga halaga ng longitude, na pinarami ng correction cos(f), kung saan ang f ay ang kasalukuyang latitude.

3) kung ang mga punto ay matatagpuan sa iba't ibang latitude at longitude, ang kasong ito ng paghahanap ng anggulo ay mas kumplikado. Tingnan natin ito nang detalyado.

Una, makikita natin ang pagkakaiba sa longitude ng mga punto, na parang nasa parehong latitude, i-multiply sa correction cos(f), at kalkulahin ang linear na distansya sa pagitan ng mga ito gamit ang cosine theorem (ang iba pang dalawang panig ng tatsulok ay ang radii ng Earth). Sa parehong paraan, kinakalkula namin ang distansya sa pagitan ng mga punto, na parang nasa parehong longitude. Tinutukoy namin ang mga distansyang ito bilang l1 at l2.

Ngayon mayroon kaming isang kanang tatsulok na may mga binti l1, l2, ang hypotenuse na kung saan ay ang distansya l3. Kinakalkula namin ito gamit ang Pythagorean theorem. Ang aming layunin ay upang mahanap ang anggulo a. Gamit ang cosine theorem, makikita natin ang cosine ng anggulong ito. Ang pagkakaroon ng pagkalkula ng arc cosine mula dito, nakuha namin ang anggulo! Nasa ibaba ang isang paliwanag na pagguhit.


kanin. 4.1. Pagpapaliwanag ng mga kalkulasyon ng distansya sa iba't ibang latitude at longitude.

Matapos mahanap ang anggulo, kinakalkula namin ang haba ng arko at ipasok ang nagresultang distansya sa talahanayan ng distansya kasama ang bilang ng kasalukuyang ruta.

Tandaan: dahil ang mga function ng cosine at arccosine ay gumagana sa mga anggulo na tinukoy sa mga radian, ang programa ay nagko-convert ng mga radian sa mga degree at vice versa. Ang lahat ng mga kalkulasyong ito ay humahantong sa akumulasyon ng mga pagkakamali.

Ang lahat ng nabanggit na mga formula ay ibinibigay sa Appendix E.

Ang pagkakaroon ng pagkalkula ng distansya, ipinapakita namin ito sa plano sa tabi ng kasalukuyang punto, kung ang kaukulang bandila ay naka-on. Bukod dito, dahil sa kundisyon para sa pagtantya ng haba ng ruta, hindi ipinapakita ng figure ang haba ng isang segment, ngunit ang kabuuan ng mga haba ng mga segment bago ang puntong ito. Maaaring tingnan ng user ang mga haba ng indibidwal na mga segment sa talahanayan ng distansya.

Ipinapakita rin ng mapa ang uri ng bagay para sa isang partikular na punto kung ang checkbox na "ipakita ang uri ng bagay" ay may check.

Kung ang checkbox na "huwag ipakita ang talahanayan ng distansya" ay hindi pinagana, gawin itong nakikita.

Matapos maiguhit ang lahat ng mga ruta, inilalaan namin ang memorya na inilaan para sa mga array ng index at coordinate.


4.2 Algorithm flowchart

kanin. 4.2. Flowchart ng algorithm ng pagguhit ng plano.


5. IMPLEMENTASYON NG SOFTWARE 5.1 ​​Pagpili ng kapaligiran sa pagbuo ng programa

Tulad ng nabanggit na sa "Problem Statement", ang kapaligiran ng pag-unlad ng Borland C++ Builder 5 ay pinili upang lumikha ng programang ito Ang desisyon na ito ay dahil sa ang katunayan na sa loob nito ang proseso ng paglikha ng isang interface ay hindi mahirap kahit na para sa isang programmer na ay nakatagpo ng Builder sa unang pagkakataon, at gumagana ang mga ito nang maayos sa mga database at graphics, na kung ano mismo ang kailangan namin upang bumuo ng aming programa.

Ang kawalan, sa palagay ko, ay ang malaking executable code ng programa - upang gumana ito sa isang makina kung saan hindi naka-install ang Builder, kinakailangang isama ang lahat ng mga aklatan na ginamit dito, kaya naman ang laki ng ang programa ay nagiging ilang beses na mas malaki.

Bilang karagdagan, ang magandang bagay tungkol sa Tagabuo ay ang mga bahagi ay may maraming mga katangian na maaaring baguhin hindi lamang sa panahon ng pagtatayo, kundi pati na rin sa panahon ng pagpapatupad ng programa, na ginagawang mas flexible ang pagtatrabaho sa kanila.

5.2 Paggawa gamit ang mga talahanayan

Ginagamit namin ang Paradox bilang driver ng database. Ang uri ng database na ito ay unang napili dahil ang Tagabuo ay may mga built-in na tool para sa pagtatrabaho sa mga talahanayan ng Paradox, tulad ng Borland Database Engine, at kasama rin ang Database Desktop program. Pangalawa, ang bentahe ng Paradox ay ang pangalan ng database ay maaaring tukuyin bilang landas sa direktoryo kung saan matatagpuan ang file ng talahanayan, at ang lahat ng mga talahanayan ay nakaimbak sa magkahiwalay na mga file. Pangatlo, kumukuha sila ng kaunting espasyo at ang pinakasimple sa mga lokal na mesa. Pang-apat, pinapayagan ka ng mga talahanayan ng Paradox na lumikha ng mga pangunahing field.

Upang matiyak na gumagana sa talahanayan, na-install namin ang mga sumusunod na bahagi sa form:

Isang DBGrid kung saan maaari naming ipasok, tanggalin, o i-edit ang data sa isang talahanayan, o ipakita lamang ito.

Isang listahan ng DBComboBox kung saan maaari naming ipasok ang data mula sa object table sa kasalukuyang talaan ng pangunahing talahanayan. Bago gamitin ang listahang ito, dapat itong punan ng mga halaga mula sa talahanayan ng bagay. Upang gawin ito, kapag sinimulan ang programa, dumaan kami sa lahat ng mga tala nito at ipinasok ang kanilang mga nilalaman sa field na Mga Item ng listahang ito.

Navigator DBNavigator - kasama nito maaari kang magtanggal, magdagdag, mag-edit ng mga tala sa talahanayan, at mag-navigate din sa mga ito. Ikinonekta namin ito sa grid kung saan ipapakita ang aming talahanayan.

Ang lahat ng mga sangkap na ito ay konektado sa talahanayan sa pamamagitan ng DataSourse, sa mga katangian kung saan ipinapahiwatig namin ang pangalan nito. Bukod dito, ang talahanayan mismo ay kinakatawan din bilang isang bahagi, Talahanayan, kung saan ang pinakamalaking pansin ay dapat bayaran sa tatlong katangian:

1) Aktibo - nagpapakita kung ang talahanayan ay aktibo. Kung susubukan mong i-access ito kung hindi pinagana ang property na ito, bubuo ang program ng error na "Hindi maisagawa ang operasyong ito sa closed dataset." Sa panahon ng pagsubok, ang lahat ng posibleng sitwasyon na maaaring humantong sa error na ito ay sinusubaybayan at pinangangasiwaan.

2)DatabaseName - ang pangalan ng database ay kinuha bilang ang landas sa direktoryo kung saan binuksan o nilikha ang talahanayan.

3) TableName – ang pangalan ng talahanayan - isang file na may extension na .db kung saan nakaimbak ang talahanayan.

Ang lahat ng mga katangiang ito ay nagbabago sa panahon ng pagpapatupad ng programa.

Kailangan namin ang bahagi ng Table upang maalis ang detalye. Maaari naming, sa ilalim ng pagkukunwari ng Talahanayan, magbukas ng anumang partikular na talahanayan at baguhin lamang ang mga katangian ng Talahanayan nang hindi naaapektuhan ang iba pang mga bahagi. Halimbawa, kapag binubuksan ang isang talahanayan, isinasara at idini-deactivate namin ang nauna, habang ang pangalan ng database at pangalan ng talahanayan sa mga katangian ng bahagi ng Table ay tinanggal, at nagbubukas at nag-a-activate kami ng bago, nagsusulat ng bagong direktoryo at mga pangalan ng file sa DatabaseName at TableName kapag binubuksan. (Tingnan ang mga pamamaraan ng TBOpenFileClick at TBCloseFileClick sa Appendix A).

Ang mga bahagi ng DataSourse at Table ay matatagpuan sa form, ngunit makikita lamang ang mga ito kapag nagtatrabaho sa programa sa Builder.

5.3 Paggawa gamit ang mga graphic

Upang iguhit ang plano, ginagamit namin ang bahagi ng Larawan. Ang bagay na ito ay may dalawang mahalagang katangian:

1)Larawan - ay isang bagay ng klase ng TPicture, na isang lalagyan para sa mga graphics ng anumang uri. Yung. ang bahaging ito ay maaaring mag-imbak ng mga bitmap na graphics, mga icon, o iba pang mga graphics na tinukoy ng gumagamit. Ang larawan ay kung saan matatagpuan ang aming pagguhit. Sa tulong nito, nai-save namin ang nagresultang pagguhit sa isang file. (Tingnan ang Appendix A, paraang TBSaveFileClick). Pakitandaan din na maaaring hindi magkapareho ang mga laki ng Larawan at Larawan. Ang problemang ito ay tatalakayin nang mas detalyado sa ibaba.

2) Canvas - canvas. Ang buong proseso ng pagguhit ay isinasagawa sa canvas ng bahagi ng Imahe. Binibigyang-daan ka ng Canvas na itakda ang mga parameter ng panulat, brush, font, gumuhit ng mga bagay tulad ng mga linya, parihaba, ellipse, at nagpapakita rin ng teksto.

Sa aming programa, gumagamit kami ng line drawing gamit ang MoveTo at LineTo outline method, pagguhit ng mga puntos gamit ang Ellipse, at text output gamit ang TextOut method. (Tingnan ang Appendix A, plandraw).

Yung. Hinahayaan kami ng canvas na magtrabaho kasama ang mga function ng Windows GDI nang hindi direktang ina-access ang mga ito, na ginagawang mas madali ang pagtatrabaho sa mga graphics.


5.4 Pag-unlad ng interface

Ang espesyal na pansin ay dapat ding bayaran sa pagbuo ng interface, dahil ito ay kinakailangan upang gawin itong user-friendly. Pinapadali ng mga tool ng Tagabuo na ipatupad ang interface sa mga pamantayan ng Windows.

Ang mga pangunahing elemento ng karaniwang interface ng programa ng Windows:

1) Mga Menu - magbigay ng madaling paraan para sa mga user na magsagawa ng mga lohikal na nakagrupong command.

Ang pangunahing menu ay nilikha gamit ang bahagi ng MainMenu, at napakaginhawa upang i-edit ito kapag lumilikha ng isang programa, dahil hindi mo kailangang patakbuhin ito upang suriin ito - ang lahat ng mga nilalaman nito ay ipinapakita na sa form.

2) Toolbar - naglalaman ng mga pindutan ng tool na tumutugma sa mga item sa menu ng programa at nagbibigay sa gumagamit ng mas direktang access sa mga utos nito.

Ang toolbar ay ipinatupad gamit ang ToolBar component, na nagbibigay-daan sa iyong mabilis na magdagdag at maglagay ng mga button. Ang lahat ng mga pindutan ng tool sa toolbar ay may parehong lapad at taas.

Para sa bawat button, maaari kang magtakda ng icon na nagpapakita ng pagkilos na ipinapatupad nito sa pamamagitan ng pagpili sa numero ng icon mula sa mga larawang nakaimbak sa bahagi ng ImageList. Maginhawa ito dahil madali mong mababago ang icon nang hindi naglo-load ng icon mula sa isang file sa bawat oras.

Alinsunod sa pamantayan ng Windows, lumikha ako ng mga pindutan sa panel na naaayon sa mga item sa menu na "Bago", "Buksan", "I-save", "I-print".

3) Mga Pindutan - sa tulong nila sinisimulan ng user ang pagpapatupad ng aksyon na itinalaga sa button na ito.

Karaniwan, ayon sa pamantayan ng interface ng Windows, ang mga pindutan ay halos hindi ginagamit upang hindi makalat ang window ng programa. Sa halip, ginagamit ang mga toolbar at menu.

Ngunit dahil ang aming programa ay hindi gumaganap ng napakalaking bilang ng mga aksyon, maaari rin kaming gumamit ng mga pindutan. Ito ay maginhawa dahil, hindi tulad ng mga menu, ang mga ito ay matatagpuan sa tabi ng elemento na may kaugnayan sa kung saan ang aksyon na tinatawag nila ay ginanap (halimbawa, ang mga pindutan para sa pagdaragdag at pagtanggal ng mga bagay ay matatagpuan sa tabi ng listahan ng mga bagay, at ang mga pindutan ng pag-zoom ay susunod. sa larawan ), na siyempre ay magiging maginhawa para sa gumagamit.

Bilang karagdagan, maaari kang maglagay ng mga lagda sa kanila na nagpapaliwanag ng kanilang layunin, na maginhawa rin.

Ang isang button ay nilikha sa pamamagitan ng paglalagay ng isang Button component sa isang form. Kapag bumubuo ng isang programa, ginagamit ang Caption property nito - ang inskripsyon sa button, at sa runtime, ang Enabled property ay ginagamit upang gawing hindi aktibo ang button o, sa kabaligtaran, upang i-activate ito. (Tingnan ang Appendix A, HideButtons() at ShowButtons()). Halimbawa, kapag binubuksan ang isang talahanayan, isinaaktibo namin ang mga pindutan para sa pagguhit ng isang plano, at kapag isinasara ito, ginagawa naming hindi aktibo ang mga ito.

4) Mga drop-down na listahan – ginagamit upang payagan ang user na pumili ng item mula sa isang listahan. Ito ay mas maginhawa kaysa sa pagpasok nito nang manu-mano.

Sa program na ito, ang isang combo box ay ginagamit upang magpasok ng isang uri ng bagay sa talahanayan (DBComboBox, tinalakay sa itaas), at upang alisin ang isang uri ng bagay mula sa talahanayan ng bagay (ComboBox).

Ang pagkakaiba sa pagitan ng DBComboBox at ComboBox ay ang una ay nauugnay sa isang field ng talahanayan, at ang pangalawa ay isang simpleng listahan. Ang paggamit ng isang simpleng listahan ng ComboBox ay nagbibigay-daan sa iyo upang malutas ang mga problema sa pakikipag-ugnayan sa talahanayan at DBComboBox na lumabas kapag nagtanggal ng isang bagay mula sa talahanayan.

5) Mga scroll bar - ipinatupad gamit ang bahagi ng ScrollBox, sa aming kaso, kailangan nilang mag-scroll sa larawan ng plano kapag pinalaki ito. Binabago ng programa ang Max parameter, na tumutukoy sa maximum na halaga ng pag-scroll, depende sa sukat.

6) Mga checkbox (mga switch) – tukuyin kung ang opsyon na kinakatawan ng mga ito ay pinagana o hindi pinagana.

Sa Builder ito ang bahagi ng CheckBox.

Sa programa, tinutukoy ng mga checkbox kung pinagana o hindi pinagana ang mga sumusunod na feature:

Pagguhit ng mga linya ng ruta;

Pagpapakita ng distansya sa plano;

Pagpapakita ng uri ng bagay sa plano;

Ipakita ang talahanayan ng distansya.

Karaniwang makikita ang mga checkbox sa menu ng mga setting. Ngunit dahil sa pagiging simple ng aming programa, ipinapakita ang mga ito sa panel sa tabi ng patlang ng pagguhit, na napaka-maginhawa para sa gumagamit.

7) Mga Tab - sa program na ito, ang pagguhit ng talahanayan at plano ay matatagpuan sa iba't ibang mga tab. Naniniwala ako na ito ay magiging mas maginhawa para sa gumagamit, dahil ang buong programa ay nakapaloob sa isang window, at sa parehong oras, ang parehong lugar ng talahanayan at ang lugar ng pagguhit ay hindi matatagpuan sa kapinsalaan ng bawat isa.

Mayroong dalawang uri ng mga tab sa Builder: TabControl at PageControl.

Gumagamit ang program ng PageControl, dahil, hindi katulad ng una, ang bahaging ito ay maaaring maglaman ng magkakaibang mga kontrol sa mga tab. Sa TabControl, ang lahat ng mga pahina ay pareho.

8) Ang mga dialog ay isang napaka-maginhawang tool na tumutulong na ipatupad ang mga naturang dialog sa user gaya ng pag-save, pagbubukas ng file, pag-print at pagpili ng kulay na ginamit sa program na ito.

Ang lahat ng kinakailangang dialog ay inilalagay sa form, ngunit mananatiling hindi nakikita ng user. Tinatawag sila ng programa at ipinatupad ang karaniwang interface ng Explorer.

Gamit ang mga dialog ng OpenDialog at SaveDialog, natatanggap ng program ang pangalan ng file at direktoryo na pipiliin ng user. Gamit ang PrintDialog, tinatawag ang mga setting ng pag-print. At tinutulungan ka ng ColorDialog na pumili ng isang kulay (ito ay ginagamit upang piliin ang kulay ng background ng larawan).

Ang layunin ng bawat bahagi ng interface na nakikita ng gumagamit ay inilarawan sa manwal ng gumagamit.

Ito ay nagkakahalaga ng noting na ang bawat interface object ay may isang ari-arian na tinatawag na Align. Binibigyang-daan ka nitong ihanay ang isang kontrol sa kanan, kaliwa, itaas, o ibaba ng isang form at panel, at mananatili ang kontrol doon kahit na binago ang laki ng form. Halimbawa, ang panel na may mga button na malapit sa larawan ay nakahanay sa kanan, ang talahanayan ng mga distansya ay nakahanay sa kaliwa, at ang field ng larawan ay nakahanay sa alClient, na kumukuha ng lahat ng libreng espasyo sa pagitan ng talahanayan at ng panel . Habang binabanat mo ang form, ang mga kontrol na ito ay maaabot din habang nananatili sa lugar.

Ang paggamit ng Align property ay maginhawa dahil sa yugto ng disenyo maaari mong ayusin ang mga bahagi kung kinakailangan, at pagkatapos ay hindi mo na kailangang manu-manong itakda ang kanilang mga laki sa tuwing nagbabago ang hugis.

5.5 Ang ilang mga tampok ng mga algorithm

Algoritmo ng pagguhit

Dahil inilarawan na ito sa ilang detalye, magdaragdag lamang ako ng isang tala tungkol sa pag-unlad nito: gumuhit ito ng mapa sa isang conformal projection. Ang mga iyon ay nagpapanatili ng pagkakapantay-pantay ng mga anggulo sa pagitan ng mga direksyon sa mapa at sa kalikasan. Kasabay nito, ang mga sukat ng mga teritoryo ay baluktot.

Ang ganitong uri ng projection ay pinili dahil ito ay pinakamadaling gumuhit ng isang coordinate grid para dito, dahil ito ay binubuo ng mga tuwid na linya. (Tingnan ang Appendix E para sa higit pang impormasyon sa mga projection ng mapa at grid coordinates.)

Ang mga distansya ay kinakalkula sa totoong sukat.

Algorithm para sa pagkalkula ng distansya.

Inilarawan din ito nang detalyado sa "Paglalarawan ng Algorithm". Ito ay bahagi ng algorithm ng pagguhit.

Ito ay hinango ng may-akda ng programa, dahil ang mga analogue nito ay hindi natagpuan kahit saan. Ang kakaiba nito ay kinakailangang isaalang-alang ang kurbada ng ibabaw ng lupa at kalkulahin ang haba ng arko. Ito ay lalong mahirap kung ang mga punto ay matatagpuan sa pantay na latitude at longitude.

Kinukuha ang isang sphere bilang hugis ng ibabaw ng mundo. Ito ay maaaring humantong sa mga pagkakamali, dahil ang hugis ng lupa ay talagang isang ellipsoid, ngunit lubos nitong pinapasimple ang mga kalkulasyon. Ang average na radius ng mundo ay kinuha na 6371 km. Nagbibigay ito ng error na halos 0.3%.

Dapat ding tandaan na upang makalkula ang distansya, lalo na sa pinaka kumplikadong kaso, maraming mga sunud-sunod na kalkulasyon ang ginagamit, bilang isang resulta kung saan ang error ay naipon. Ang magnitude ng error ay apektado din ng conversion ng sukat ng antas ng isang anggulo sa radians at vice versa. Ngunit sa modernong katumpakan ng mga kalkulasyon ng computer, ang error na ito ay magiging maliit, at bukod pa, ang gawain ay hindi nagpapahiwatig na ang pagtatantya ng ruta ay dapat na tumpak.

Paggawa ng table

Dito dapat sabihin na wala akong nakitang algorithm para sa paglikha ng isang talahanayan sa programmatically sa anumang libro na mayroon ako. Ang lahat ng literatura ay nag-uusap tungkol sa paglikha ng mga talahanayan sa DatabaseDesktop, na magiging abala para sa gumagamit na mag-install ng mas malaking programa para lamang malutas ang problema sa paglikha ng mga bagong talahanayan.

Ngunit gayon pa man, natagpuan ang algorithm na ito sa tulong ng Tagabuo, bagama't naglalaman ito ng mga error doon.

Ang programa ay nagpapakita rin ng isang gumaganang halimbawa nito (tingnan ang Appendix A, TBNewFileClick).

Bilang isang tampok ng algorithm na ito, dapat tandaan na bago tawagan ang pamamaraan ng paglikha ng talahanayan na CreateTable(), kailangan mong simulan ang lahat ng mga field, na nagpapahiwatig ng kanilang pangalan, uri, haba (kung kinakailangan), at ang kinakailangang halaga (kung ito ay kinakailangan o hindi) . Matapos simulan ang mga patlang, ipinapahayag namin ang isang pangunahing patlang, at pagkatapos ay tatawagan lamang ang pamamaraan ng paglikha ng talahanayan. Pagkatapos nito, kailangan mong itali ang bagong talahanayan sa bahagi ng Talahanayan upang magamit mo ito gamit ang grid at navigator. Ang pangalan ng file ng bagong talahanayan ay hinihiling gamit ang SaveDialog.

Problema sa laki ng graphics

Sa panahon ng pagbuo ng programa, isang medyo malubhang problema ang lumitaw sa pagguhit ng isang larawan - kapag binago ang laki ng form, ang laki ng larawan ay dapat na nagbago, ngunit hindi ito nangyari.

Ang dahilan ay ang laki ng bahagi ng Imahe ay nagbago pa rin, ngunit ang laki ng Larawan ay nanatiling pareho. Kaugnay nito, nilikha ang pamamaraan ng ResizeForm (tingnan ang Appendix A), na tumugon sa mga pagbabago sa laki ng form at binago ang laki ng imahe alinsunod sa binagong laki ng bahagi ng Imahe.

5.6 Pagsubok

Sa panahon ng buong disenyo ng programa, ito ay nasubok at na-debug. Ang partikular na atensyon ay binayaran sa dalawang puntos - ang kawastuhan ng pagtatrabaho sa mga talahanayan at ang kawastuhan ng pagguhit ng isang plano.

Kapag nagtatrabaho sa mga talahanayan, ang unang hakbang ay upang subaybayan ang anumang mga problema na nauugnay sa pagbubukas, paggawa ng mga talahanayan, at pagguhit. Halimbawa, kung hindi mo i-deactivate ang mga button sa pagguhit, ang pag-click sa mga ito habang hindi nakabukas ang talahanayan ay maaaring humantong sa isang error. Upang maalis ang error na ito, kung walang bukas na talahanayan, ang mga pindutan ay ginawang hindi aktibo.

Ang isa pang mahalagang bug na naayos ay ang isyu sa laki ng graphics (tingnan sa itaas).

Kinailangan ding tiyakin na kapag hindi pinapagana/pinagana ang mga checkbox at binabago ang laki ng form, hindi mabubunot ang isang larawan kung hindi pa nag-click ang user sa button na “draw”. Ang pagsubaybay na ito sa programa ay ginagawa ng draw flag, na nakatakda kapag nag-click ang user sa draw button at na-clear kapag na-click ang clear button. Sa panahon ng proseso ng pagsubok, ang lahat ng mga sitwasyon kung saan ang pagsuri sa flag na ito ay kinakailangan ay sinusubaybayan at na-debug.

Ang pinakamahalagang aspeto ng pagsubok ay ang pagsuri sa functionality ng program sa isang computer na walang naka-install na Builder. Nakatulong ito na matukoy ang mga sumusunod:

1) kapag nag-compile ng isang programa, dapat mong isama ang lahat ng mga aklatan na ginamit. Ito ay nakakamit sa pamamagitan ng hindi pagpapagana ng dalawang opsyon sa mga setting ng compiler. Kasabay nito, ang executable code ng program ay nagiging mas malaki, ngunit maaari rin itong gumana sa isang makina na walang Builder.

2) ang programa ay nangangailangan ng Borland Database Engine. Kung wala ito sa iyong computer, kailangan mong i-install ito.


6. PAGLALARAWAN NG PROGRAMA

Ang programa ay nilayon na magbigay ng suporta sa impormasyon para sa paglikha ng isang site plan. Pinapayagan ka nitong mag-imbak ng data tungkol sa mga punto ng plano sa isang talahanayan, ipakita ang mga ito nang grapiko, lumikha ng isang bagong talahanayan, magdagdag at magtanggal ng mga uri ng mga bagay, kalkulahin ang mga distansya at tantiyahin ang haba ng isang ruta, gumuhit ng ilang mga ruta, i-save ang mga resulta sa isang file o print.

Ang program ay nilikha para sa Windows operating system at may isang standardized at user-friendly na interface. Kasama nito ang isang halimbawa sa anyo ng isang talahanayan na may mga ruta ng tren.


7. MGA TAGUBILIN SA PAG-INSTALL

Upang i-install ang program, dapat matugunan ang mga sumusunod na kinakailangan: processor 233 MHz o mas mataas, RAM 16 MB, OS Windows98 o mas mataas.

Upang mai-install ang programa, dapat mong gawin ang mga sumusunod:

1) Lumikha ng bagong folder para sa programa.

2) Mula sa medium kung saan matatagpuan ang archive ng programa (floppy disk o disk), kopyahin ito sa folder na ito.

3) I-unpack ang archive sa folder na ito.

4) Siguraduhin na ang objects.db at rasst.db file ay nasa parehong folder ng program.

5) Tiyaking na-clear ang attribute na "Read Only" para sa mga file na ito. Kung hindi, alisin ito.

6) I-unpack ang archive na may mga library sa folder ng Windows.

7) Ngayon ay maaari mong ilunsad ang programa at gamitin ito.


8. MANWAL NG USER 8.1 Pangunahing menu na "File" na menu

Upang magsimulang magtrabaho sa programa, kailangan mong buksan ang isang file na may isang talahanayan o lumikha ng bago. Magagawa ito gamit ang File, Open at New menu item.

"Buksan" - buksan ang isang umiiral na talahanayan. Tumatawag ng dialog kung saan dapat pumili ang user ng file na may extension na .db.

"Bago" - paglikha ng bagong talahanayan. Tinatawag ang isang dialog kung saan tinukoy ng user ang pangalan ng bagong talahanayan.

"I-print" - depende sa bukas na tab, nagpi-print ng larawan o talahanayan. Kapag pinili mo ang item na ito, bubukas ang dialog box ng mga setting ng pag-print pagkatapos i-click ang pindutang "OK", ang trabaho ay ipinadala para sa pag-print.

Menu ng mesa

"Bumuo ng plano" - kung bukas ang talahanayan, i-activate ang tab na "Plano" at gumuhit ng plano.

"Magdagdag ng uri ng bagay" - tinatawag ang form para sa pagdaragdag ng uri ng bagay.

"Tanggalin ang uri ng bagay" - tumatawag sa form para sa pagtanggal ng uri ng bagay.

Menu ng tulong

"Tungkol sa programa" - ipinapakita ang pangalan ng programa at impormasyon tungkol sa may-akda.


8.2 Panel ng mabilis na button

Ang mga pagkilos ng mga button na ito ay katulad ng mga item na may parehong pangalan sa menu na "File".

- "Bago" - paglikha ng bagong talahanayan.

- "Buksan" - buksan ang isang umiiral na talahanayan.

- "I-print" - mag-print ng larawan o talahanayan.

8.3 Tab ng talahanayan

Table grid - ang talahanayan ay na-load dito. Gamit ang grid na ito, maaaring i-edit at tingnan ng user ang mga entry sa talahanayan.

Navigator – na matatagpuan sa ilalim ng grid, nagbibigay-daan sa iyong i-edit at tingnan ang talahanayan.

Mga pindutan ng Navigator

- "Unang tala" - lilipat sa unang tala sa talahanayan.

- "Nakaraang tala" - lumilipat sa nakaraang tala sa talahanayan.

- "Next record" - lilipat sa susunod na record sa table.

- "Huling tala" - lilipat sa huling tala sa talahanayan.

- "Magdagdag ng tala" - inilalagay ang talahanayan sa mode ng pag-edit, isang bagong walang laman na tala ang ipinasok bago ang aktibong talaan.

- "Tanggalin ang entry" - tinatanggal ang kasalukuyang entry, na dati nang humiling ng kumpirmasyon.

- "I-edit" - i-edit ang kasalukuyang entry.

- "Kanselahin ang mga pagbabago" - kinakansela ang mga pagbabago sa kasalukuyang tala, ibinabalik ang dating halaga nito.

- "I-update". Ina-update ang isang talahanayan sa isang grid.

Sa ibaba ng navigator mayroong isang Listahan ng mga bagay at mga pindutan para sa pagtanggal at pagdaragdag ng mga bagay.

Listahan ng mga bagay - naglalaman ng isang listahan ng mga uri ng bagay. Kapag pumili ka ng isang uri mula sa listahan, ito ay ipinasok sa kasalukuyang tala sa talahanayan.

Magdagdag ng uri ng bagay – tinatawag ang form ng add type. Kapag idinagdag mo ito, agad itong idinaragdag sa listahan.

Tanggalin ang uri ng bagay - tinatawag ang form para sa pagtanggal ng isang uri ng bagay.

Magdagdag ng form ng uri ng bagay

Naglalaman ng field sa pag-edit para sa paglalagay ng text kung saan ipinasok ang pangalan ng bagong uri.

"Magdagdag" - nagdaragdag ng uri ng bagay sa listahan at talahanayan nang hindi isinasara ang form.

"Ok" - kung ang bagay ay hindi naidagdag, ipasok ito sa listahan at talahanayan, at isara ang form.

"Kanselahin" - isinasara ang mga form nang hindi nagdaragdag.

Tanggalin ang form ng uri ng bagay

Listahan ng mga bagay - mula dito pipiliin ng user kung aling bagay ang kailangang tanggalin.

"Tanggalin" - tinatanggal ang napiling uri ng bagay mula sa talahanayan at listahan.

"Delete All" - ganap na nililimas ang object table at mga listahan.

"OK" - isinasara ang form.


8.4 tab na "Plano".

Ang patlang ng pagguhit ay ang lugar kung saan ipinapakita ang pagguhit ng plano.

Mga scroll bar – lalabas kapag pinalaki mo ang isang imahe sa pamamagitan ng pag-click sa pindutang “Palakihin”. Binibigyang-daan kang mag-scroll ng pinalaki na larawan.

Talahanayan ng distansya – ipinapakita para sa bawat ruta ang bilang nito at ang haba ng mga segment, sa kilometro. Ang talahanayan ay makikita kung ang checkbox na "Itago ang distansya ng talahanayan" ay na-clear.

"I-clear ang mapa" - nililimas ang field ng larawan.

"Gumuhit" - gumuhit ng isang plano.

"Kulay ng background" - nagbibigay-daan sa iyong piliin ang kulay ng background ng larawan. Kapag na-click mo ang button na ito, lalabas ang isang dialog box ng pagpili ng kulay.

"+ Palakihin" - pinalaki ang larawan sa plano.

"- Mag-zoom out" - binabawasan ang larawan sa plano. Nagiging aktibo ang button na ito kapag pinindot mo ang button na dagdagan.

"Default" - nagtatakda ng paunang laki ng larawan.

"Gumuhit ng mga linya ng ruta" - kung ito ay naka-check, ang mga ruta ay iguguhit sa plano kung hindi, mga puntos lamang ang ipapakita.

"Ipakita ang mga distansya sa mapa" - kung ang checkbox ay may check, sa tabi ng bawat punto ng ruta ang distansya ay ipinapakita sa anyo ng kabuuan ng mga haba ng mga segment bago ang puntong ito. Ang "0" ay inilalagay malapit sa unang punto ng ruta.

"Ipakita ang uri ng bagay sa mapa" - kung ang checkbox ay may check, ang uri ng bagay ay ipapakita sa tabi ng bawat punto.

"Itago ang talahanayan ng distansya" - kung ang checkbox ay may check, ang talahanayan ng distansya ay hindi nakikita. Kung na-clear, lilitaw ang talahanayan sa kanan ng field ng pagguhit.

Lahat ng mga checkbox ay naka-check bilang default.


9. KASO NG PAGSUBOK

Bilang isang halimbawa ng pagsubok, ilarawan namin ang mga ruta ng ilang mga tren ng Gorky Railway.

Sumakay tayo sa mga sumusunod na tren:

N 497G Gorky-Mosk - Adler

N 471G Gorky-Mosk - Novorossiysk

N 431G Gorky-Mosk - Adler

N 367G Gorky-Mosk - Samara

N 059A Gorky-Mosk - St. Petersburg-Glavn

N 039G Gorky-Mosk - Moscow Kursk

Ilagay natin sa talahanayan ang mga coordinate ng pinakamalalaking lugar na may populasyon bilang mga punto sa bawat ruta. Gagamitin natin ang mga pangalan ng lungsod bilang mga bagay.

kanin. 9.1. Pangkalahatang view ng programa sa tab na "Talahanayan", paglalagay ng pangalan ng isang bagay sa isang talaan gamit ang isang listahan.


Dati, idinagdag namin ang istasyon ng Red Knot sa object table, ngunit dahil hindi namin ito kailangan, tatanggalin namin ito.

kanin. 9.2. Tanggalin ang isang uri ng bagay.

Kapag nag-dial sa ruta ng tren 431, kailangan namin si Vladimir. Dahil wala ito sa listahan, kailangan mo itong idagdag.

kanin. 9.3. Pagdaragdag ng uri ng bagay.


Kaya, nakolekta namin ang lahat ng mga ruta na gusto namin. Bilang isang resulta, napunta kami sa isang talahanayan na tulad nito.

kanin. 9.4. mesa

Ngayon, gamit ang aming tablet, bubuo kami ng plano.

kanin. 9.5. Larawan ng plano kasama ang lahat ng mga inskripsiyon.


Bilang default, ipinapakita namin ang mga linya, distansya, at pangalan ng lungsod.

Tingnan natin kung ano ang magiging hitsura ng mga ruta nang walang mga lagda.

kanin. 9.6. Larawan ng plano nang walang lahat ng mga inskripsiyon.

Ngayon tingnan na lang natin ang mga distansya.

kanin. 9.7. Larawan ng plano na may mga distansya lamang.


Sa katunayan, hindi sila nakalkula nang tumpak, ngunit ito ay dahil hindi namin isinasaalang-alang ang lahat ng mga punto ng mga rutang ito, at ang mga coordinate na kinuha ay hindi ganap na tama - natukoy sila mula sa mapa "sa pamamagitan ng mata".

Ngayon tingnan natin ang aming plano na may mga pangalan lamang ng mga lungsod.

kanin. 9.8. Larawan ng plano na nagpapakita lamang ng mga uri ng mga bagay.

kanin. 9.9. Larawan ng plano sa anyo ng mga tuldok na may lahat ng lagda.


Makakakita ka rin ng talahanayan ng mga distansya.

kanin. 9.11. Pangkalahatang view ng programa sa tab na "Plano" na may nakikitang talahanayan ng mga distansya.


KONGKLUSYON

Matagumpay na natapos ang gawaing ibinigay sa pagtatalaga ng gawain ng bachelor. Ang binuo na programa ay ganap na natutugunan ang mga unang kundisyon na inilarawan sa pahayag ng problema. Sa partikular, ang programa na ipinatupad ng trabaho sa mga talahanayan, graphics at mga file.

Ang gawain ng user ng program ay isinasagawa gamit ang isang simpleng interface na ginawa ayon sa mga pamantayan ng interface ng Windows program.

Ang mga karagdagang pagpapahusay at pagpapalawak ng mga kakayahan ng proyektong ito ay kinabibilangan ng pagdaragdag ng pagkalkula ng pinakamaikling ruta, pagguhit ng mga icon ng mga bagay, mga larawan ng relief, at ang kakayahang mag-load ng isang imahe ng mapa bilang background.


BIBLIOGRAPIYA

1. P. Gustafson, M. Cashman, B. Swart, J. Holingworth. Borland C++ Builder 6. Gabay ng Developer. – Williams, 2004.

2. A. Arkhangelsky. Programming sa C++ Builder 6. – Binom, 2002.

3. T.A. Pavlovskaya. C/C++. Programming sa isang mataas na antas ng wika. - Peter, 2001.


APENDIKS APPENDIX E. Map Projection at Grid Maps

Imposibleng ibuka ang isang spherical na ibabaw sa isang eroplano nang walang mga break at folds, iyon ay, ang imahe ng plano nito sa isang eroplano ay hindi maaaring katawanin nang walang mga distortion, na may kumpletong geometric na pagkakapareho ng lahat ng mga balangkas nito. Ang kumpletong pagkakatulad ng mga balangkas ng mga isla, kontinente at iba't ibang bagay na naka-project sa isang patag na ibabaw ay maaari lamang makamit sa isang bola (globo). Ang imahe ng ibabaw ng Earth sa isang bola (globo) ay pantay sa sukat, pantay sa anggulo at pantay sa laki.

Imposibleng sabay-sabay at ganap na mapanatili ang mga geometric na katangian sa mapa. Ang isang geographic na grid na itinayo sa isang eroplano, na naglalarawan ng mga meridian at parallel, ay magkakaroon ng ilang partikular na pagbaluktot, kaya't ang mga larawan ng lahat ng mga bagay sa ibabaw ng mundo ay mababaluktot. Ang kalikasan at lawak ng mga pagbaluktot ay nakasalalay sa paraan ng pagbuo ng cartographic grid na batayan kung saan ang mapa ay pinagsama-sama.

Ang pagpapakita ng ibabaw ng isang ellipsoid o sphere sa isang eroplano ay tinatawag na projection ng mapa. Mayroong iba't ibang uri ng projection ng mapa. Ang bawat isa sa kanila ay tumutugma sa isang partikular na cartographic grid at ang mga likas na pagbaluktot nito. Sa isang uri ng projection, ang mga sukat ng mga lugar ay pangit, sa isa pa - anggulo, sa isang pangatlo - mga lugar at anggulo. Kasabay nito, sa lahat ng mga pagpapakita, nang walang pagbubukod, ang mga haba ng mga linya ay nasira.

Ang mga cartographic projection ay inuri ayon sa likas na katangian ng pagbaluktot, ang uri ng imahe ng mga meridian at parallel (geographic grid) at ilang iba pang mga katangian. Batay sa likas na katangian ng mga pagbaluktot, ang mga sumusunod na projection ng mapa ay nakikilala:

Equiangular, pinapanatili ang pagkakapantay-pantay ng mga anggulo sa pagitan ng mga direksyon sa mapa at sa kalikasan. Ang Figure E.1 ay nagpapakita ng isang mapa ng mundo kung saan ang cartographic grid ay nagpapanatili ng katangian ng equiangularity. Ang mapa ay nagpapanatili ng pagkakatulad ng mga sulok, ngunit ang mga sukat ng mga lugar ay baluktot. Halimbawa, ang mga lugar ng Greenland at Africa sa mapa ay halos pareho, ngunit sa katotohanan ang lugar ng Africa ay halos 15 beses ang lugar ng Greenland.

Fig.E.1 World map in conformal projection.

Pantay ang laki, pinapanatili ang proporsyonalidad ng mga lugar sa mapa sa mga kaukulang lugar sa ellipsoid ng mundo. Ipinapakita ng Figure E.2 ang isang mapa ng mundo na iginuhit sa isang projection na pantay-pantay. Pinapanatili nito ang proporsyonalidad ng lahat ng mga lugar, ngunit ang pagkakapareho ng mga numero ay baluktot, iyon ay, walang equiangularity. Ang mutual perpendicularity ng mga meridian at parallel sa naturang mapa ay pinapanatili lamang sa kahabaan ng gitnang meridian.

Equidistant, pinapanatili ang isang pare-parehong sukat sa anumang direksyon;

Arbitrary, hindi pinapanatili ang alinman sa pagkakapantay-pantay ng mga anggulo, proporsyonalidad ng mga lugar, o pare-pareho ng sukat. Ang punto ng paggamit ng mga di-makatwirang projection ay isang mas pare-parehong pamamahagi ng mga distortion sa mapa at ang kaginhawahan ng paglutas ng ilang praktikal na problema.


kanin. E. 2 Mapa ng mundo sa pantay na projection ng lugar.

Batay sa uri ng imahe, ang mga grid ng mga meridian at parallel ng isang projection ng mapa ay nahahati sa conical, cylindrical, azimuthal, atbp. Bukod dito, sa loob ng bawat isa sa mga pangkat na ito ay maaaring magkaroon ng mga projection ng iba't ibang uri ng distortion (conformal, equal-area). , atbp.). Ang geometric na kakanyahan ng conical at cylindrical na mga projection ay nakasalalay sa katotohanan na ang isang grid ng mga meridian at parallel ay inaasahang papunta sa lateral surface ng isang cone o cylinder na may kasunod na pag-deploy ng mga surface na ito sa isang eroplano. Ang geometric na kakanyahan ng azimuthal projection ay nakasalalay sa katotohanan na ang isang grid ng mga meridian at parallel ay naka-project sa isang plane tangent sa bola sa isa sa mga pole o secant kasama ang ilang parallel. Ang cartographic projection na pinaka-angkop sa mga tuntunin ng kalikasan, magnitude at distribusyon ng mga distortion para sa isang partikular na mapa ay pinili depende sa layunin, nilalaman ng mapa, pati na rin ang laki, configuration at heyograpikong lokasyon ng naka-map na teritoryo. Salamat sa cartographic grid, ang lahat ng mga pagbaluktot, gaano man ito kahusay, ay hindi nakakaapekto sa katumpakan ng pagtukoy sa heograpikal na posisyon (mga coordinate) ng mga bagay na inilalarawan sa mapa sa mapa. Kasabay nito, ang cartographic grid, bilang isang graphic na expression ng projection, ay nagbibigay-daan sa isa na isaalang-alang ang kalikasan, magnitude at pamamahagi ng mga distortion kapag gumagawa ng mga sukat sa mapa. Samakatuwid, ang anumang heograpikal na mapa ay isang mathematically tinutukoy na imahe ng ibabaw ng mundo.

Mga personal na subsidiary plot ng Aginsky Buryat Autonomous Okrug para sa 2005 - 2010," na inihanda sa isang draft na bersyon. 4. Ang mga pangunahing direksyon para sa pagpapabuti ng mga aktibidad ng mga katawan ng gobyerno sa pagsuporta sa mga personal na subsidiary plot ng rural na populasyon sa Aginsky Buryat Autonomous Okrug 4.1 Mga problema at priyoridad para sa pagbuo ng mga personal na subsidiary plot sa Aginsky...

Ang pag-aaral ng mga pamilya ay humantong sa pagbuo ng mga pamamaraang sikolohikal, pedagogical, at sosyolohikal na nagpapalalim at nagpapalawak ng mga ideya tungkol sa modernong pamilya. KABANATA 3. MGA SULIRANING PANLIPUNAN AT MGA PROSPEKTO PARA SA GAWAING PANLIPUNAN SA MGA KABATAAN NA PAMILYA SA NAYON NG VORONOVKA 3.1 Pangkalahatang katangian p. Voronovka, Shegarsky district, Tomsk region, Shegarsky district ay matatagpuan sa katimugang bahagi ng Tomsk...




Mga probisyon at suporta para sa mga bata; - kasalukuyang nasa Russia ang isang mekanismo para sa pagpopondo ng mga naka-target na programa upang suportahan ang pagiging ina at pagkabata ay binuo at ipinatupad. 2. Mekanismo sa pananalapi para sa pagpapatupad ng patakaran ng estado upang suportahan ang pagiging ina at pagkabata 2.1 Ang pamamaraan at mga kondisyon para sa pagbabayad ng mga benepisyong panlipunan Sa ngayon, ang Russia ay nakabuo ng isang medyo binuo na sistema ng mga benepisyo, ...

Structural tinatawag na diagram na sumasalamin tambalan At pakikipag-ugnayan sa pamamahala bahagi ng software na binuo.

Ang mga istrukturang diagram ng mga pakete ng software ay hindi nagbibigay-kaalaman, dahil ang organisasyon ng mga programa sa mga pakete ay hindi nagbibigay para sa paglipat ng kontrol sa pagitan nila. Samakatuwid, ang mga block diagram ay binuo para sa bawat programa sa pakete, at ang listahan ng mga programa sa pakete ay tinutukoy sa pamamagitan ng pagsusuri sa mga function na tinukoy sa mga teknikal na pagtutukoy.

Ang pinakasimpleng uri ng software ay isang program na maaari lamang magsama ng mga subroutine at resource library bilang mga istrukturang bahagi. Ang pagbuo ng isang block diagram ng programa ay karaniwang isinasagawa gamit ang isang hakbang-hakbang na paraan ng pagdedetalye Ang mga istrukturang bahagi ng isang software system o software complex ay maaaring mga program, subsystem, database, resource library, atbp. Ang block diagram ng isang software. package ay nagpapakita ng paglipat ng kontrol mula sa dispatcher program patungo sa kaukulang programa (Larawan 5.1).

kanin. 5.1. Halimbawa ng block diagram ng isang software package

Ang isang block diagram ng isang software system ay karaniwang nagpapakita ng pagkakaroon ng mga subsystem o iba pang istrukturang bahagi. Hindi tulad ng isang software complex, ang mga indibidwal na bahagi (subsystem) ng isang software system ay masinsinang nagpapalitan ng data sa isa't isa at, posibleng, sa pangunahing programa. Karaniwang hindi ito ipinapakita ng block diagram ng isang software system (Larawan 5.2).

kanin. 5.2. Halimbawa ng block diagram ng software system

Ang isang mas kumpletong larawan ng software na idinisenyo sa mga tuntunin ng pakikipag-ugnayan ng mga bahagi nito sa isa't isa at sa panlabas na kapaligiran ay ibinibigay ng isang functional diagram.

Functional na diagram. Functional diagram o data diagram (GOST 19.701-90) - isang diagram ng pakikipag-ugnayan ng mga bahagi ng software na may paglalarawan ng mga daloy ng impormasyon, ang komposisyon ng data sa mga daloy at isang indikasyon ng mga file at device na ginamit. Upang ilarawan ang mga functional na diagram, ginagamit ang mga espesyal na simbolo na itinatag ng pamantayan. Ang mga pangunahing pagtatalaga ng mga diagram ng data ayon sa GOST 19.701-90 ay ibinibigay sa talahanayan. 5.1.

Talahanayan 5.1

Block name Pagtatalaga Layunin ng bloke
Kabisadong data Upang ipahiwatig ang mga talahanayan at iba pang mga istruktura ng data na dapat na nakaimbak nang hindi tinukoy ang uri ng device
Random access memory Upang sumangguni sa mga talahanayan at iba pang istruktura ng data na nakaimbak sa RAM
Sequential Access Memory Upang sumangguni sa mga talahanayan at iba pang istruktura ng data na nakaimbak sa mga sequential na access device (magnetic tape, atbp.)
Direktang access na storage device Upang sumangguni sa mga talahanayan at iba pang istruktura ng data na nakaimbak sa mga direktang na-access na device (disks)
Dokumento Upang magtalaga ng mga talahanayan at iba pang mga istruktura ng data na output sa isang aparato sa pag-print
Manu-manong input Upang ipahiwatig ang manu-manong pagpasok ng data mula sa keyboard
Mapa Para sa pagmamarka ng data sa magnetic o punched card
Display Upang ipahiwatig ang data na ipinapakita sa isang computer display


Ang mga functional na diagram ay mas nagbibigay-kaalaman kaysa sa mga structural diagram. Sa Fig. Ang 5.3 ay nagpapakita ng mga functional na diagram ng mga software package at system para sa paghahambing.

Ang lahat ng mga bahagi ng istruktura at functional na mga diagram ay dapat ilarawan. Sa isang diskarte sa istruktura, lalo na kinakailangan upang maisagawa ang mga pagtutukoy ng mga interface ng interprogram, dahil ang bilang ng mga pinakamahal na error ay nakasalalay sa kalidad ng kanilang paglalarawan. Ang pinakamahal na mga error ay ang mga natuklasan sa panahon ng komprehensibong pagsubok, dahil ang pag-aalis ng mga ito ay maaaring mangailangan ng malalaking pagbabago sa na-debug na mga teksto.

kanin. 5.3. Mga halimbawa ng functional diagram: A- hanay ng mga programa; b - sistema ng software


Mga diagram ng algorithm

Structural at functional na mga diagram ng programa

Ang isang structural diagram ay isang hanay ng mga elementarya na link ng isang bagay at ang mga koneksyon sa pagitan ng mga ito, isa sa mga uri ng mga graphical na modelo. Ang elementary link ay nauunawaan bilang bahagi ng isang object, control system, atbp., na nagpapatupad ng elementary function. Sa Fig. Ipinapakita ng 2.1 ang block diagram ng binuong programa.

Figure 2.1 - Program block diagram

Ang functional diagram ay isang dokumento na nagpapaliwanag sa mga prosesong nagaganap sa mga indibidwal na functional circuit ng isang produkto (pag-install) o ang produkto sa kabuuan. Ang functional diagram ay isang pagpapaliwanag ng ilang uri ng mga prosesong nagaganap sa mga integral functional block at circuit ng isang device. Ipinapakita ng Figure 2.2 ang functional diagram ng binuong programa.

Figure 2.2 - Functional na diagram ng programa

Paglalarawan ng mga pamamaraan, function at module

Deklarasyon ng module:

Ang bawat source file ay dapat maglaman ng deklarasyon ng module. Ang salitang yunit ay isang keyword, kaya dapat itong nakasulat sa maliit na titik. Ang pangalan ng module ay maaaring maglaman ng parehong upper at lower case na mga character at dapat ay pareho sa pangalan na ginamit ng operating system para sa file na ito.

Mga karaniwang module ng wikang Delphi. Ang kapaligiran ng Delphi ay nagsasama ng isang mahusay na hanay ng mga module, ang mga kakayahan na kung saan ay masisiyahan kahit na ang pinaka-mabilis na programmer. Ang lahat ng mga module ay maaaring nahahati sa dalawang grupo: system modules at visual component modules.

Kasama sa mga module ng system ang System, SysUtils, ShareMem, Math. Naglalaman ang mga ito ng pinakakaraniwang ginagamit na mga uri ng data sa mga program, constants, variable, procedure at function. Ang System module ay ang puso ng kapaligiran ng Delphi; tinitiyak ng mga subroutine na nakapaloob dito ang pagpapatakbo ng lahat ng iba pang mga module ng system. Ang System module ay awtomatikong nakakabit sa bawat programa at hindi kailangang tukuyin sa mga gamit na pahayag.

Ang mga visual component modules (VCL - Visual Component Library) ay ginagamit para sa visual na pagbuo ng mga full-feature na GUI application - mga application na may graphical na user interface (Graphical User Interface). Ang mga module na ito ay magkakasamang kumakatawan sa isang mataas na antas na object-oriented na library na may lahat ng uri ng mga elemento ng user interface: mga button, label, menu, panel, atbp. Bilang karagdagan, ang mga module ng library na ito ay naglalaman ng simple at mahusay na paraan ng pag-access ng mga database. Ang mga module na ito ay awtomatikong konektado kapag ang mga bahagi ay inilagay sa form.

Paglalarawan ng mga pamamaraan:

Isinasara ng pamamaraang ito ang pahina ng pamagat at pahina at lalabas sa programa.

pamamaraan TForml.Button2Click(Sender: TObject);

Binubuksan ng pamamaraang ito ang pangunahing menu ng programa at inaalis ang pahina ng pamagat mula sa screen.

pamamaraan TForm2.Button1Click(Sender: TObject);

Ang pamamaraang ito ay nagbubukas ng isang window na may pagpipilian ng paraan para sa paglutas ng problema sa transportasyon at inaalis ang window ng menu mula sa screen.

Ang pamamaraang ito ay nagbubukas ng isang window na naglalaman ng impormasyon tungkol sa binuo na programa at nag-aalis ng menu window mula sa screen.

Ang pamamaraang ito ay nagbubukas ng isang window na may impormasyon ng tulong para sa programa, na ginagawang mas madali ang trabaho ng user at inaalis ang window ng menu.

Ang pamamaraang ito ay nagbubukas ng isang window tungkol sa developer, at inaalis ang menu window.

pamamaraan TForm2.Button5Click(Sender: TObject);

Isinasara ng pamamaraang ito ang window ng menu at lumabas sa programa.

pamamaraan TForm3.Button1Click(Sender: TObject);

Ang pamamaraang ito ay lumabas sa pangunahing menu at isinasara ang window na may pagpili ng paraan para sa paglutas ng problema sa transportasyon:

pamamaraan TForm3.Button3Click(Sender: TObject);

Isinasara ng pamamaraang ito ang window na may mga solusyon sa problema sa transportasyon gamit ang tatlong pamamaraan at nagpapakita ng isang form na may solusyon ng problema gamit ang pinakamababang paraan ng gastos:

Isinasara ng pamamaraang ito ang window na may mga solusyon sa problema sa transportasyon gamit ang tatlong pamamaraan at nagpapakita ng isang form na may solusyon sa problema gamit ang double preference na paraan:

pamamaraan TForm2.Button2Click(Sender: TObject);

pamamaraan TForm2.Button3Click(Sender: TObject);

pamamaraan TForm2.Button4Click(Sender: TObject);

Ang mga pamamaraang ito ay nagpapahintulot sa gumagamit na pumunta mula sa pangunahing menu sa anumang item sa programa: "Form ng Solusyon", "Gabay sa Gumagamit", "Impormasyon ng Developer", "Lumabas".

pamamaraan HAKBANG-HAKBANG;

Ito ay isang pamamaraan para sa pagsasagawa ng sunud-sunod na mga kalkulasyon sa programa, maaari mong subaybayan ang bawat yugto ng pagpuno ng talahanayan. Pagkatapos magsagawa ng isang pagkalkula, ang pamamaraan ay nakakaabala sa pagkalkula at naghihintay ng mga utos mula sa gumagamit.

pamamaraan TForm4.Label2Click(Sender: TObject);

pamamaraan TForm4.Label3Click(Sender: TObject);

pamamaraan TForm4.Label4Click(Sender: TObject);

pamamaraan TForm4.Label5Click(Sender: TObject);

Ang mga pamamaraang ito ay naglo-load sa patlang ng teksto ng Memo ng mga nilalaman ng isang dokumento ng teksto, depende sa napiling item sa menu. Ang mga tekstong dokumento ay naglalaman ng impormasyon tungkol sa paggamit ng application.

pamamaraan TForm1.Button8Click(Sender: TObject);

Ang pamamaraang ito ay nagsasagawa ng mga kalkulasyon gamit ang mga formula, pinapalitan ang mga inilagay na halaga, at sa wakas ay isinusulat ang resulta sa isang variable.

pamamaraan TForm1.Button9Click(Sender: TObject);

Ipinapakita ng pamamaraang ito ang sagot sa isang field ng teksto.

pamamaraan TForm1.Button2Click(Sender: TObject);

Pinupuno ng pamamaraang ito ang mga input field ng paunang data alinsunod sa takdang-aralin para sa proyekto ng kurso.

pamamaraan TForm3.Button4Click(Sender: TObject);

pamamaraan TForm4.Button1Click(Sender: TObject);

Isinasara ng mga pamamaraang ito ang window at nagpapakita ng isang form na may pagpili ng item sa menu.

pamamaraan ng paglilinis;

Nililinis ng pamamaraang ito ang mga patlang ng input at output at pinapalaya ang mga variable mula sa halagang hawak nila.

PROYEKTO NG KURSO

sa disiplina na "Pagprograma sa isang mataas na antas ng wika"

Pag-unlad ng isang software tool para sa pangmatagalang imbakan at pagproseso ng impormasyon gamit ang halimbawa ng larong "Mga Kabayo"

Paliwanag na tala

OSU 27.03.03.0316.000PZ

Superbisor

guro

V. V. Chekrygina “___”_____ 2016

Mag-aaral ng pangkat 14SAU(ba)SAUIT _______ _________I.O. Apelyido

"___" ____________ 2016

Orenburg 2016


anotasyon

Ang gawaing kurso ay naglalaman ng 18 mga pahina, kabilang ang 4 na mga numero, 5 mga mapagkukunan at isang listahan ng programa.

Ang gawaing kursong ito ay sinusuri nang detalyado ang teknolohiya para sa paglikha ng isang software na produkto gamit ang Delphi object-oriented programming system. Ang mga umiiral nang object-oriented na programming language ay maikling sinusuri. Isang paglalarawan ng mga teknikal na pagtutukoy at ang algorithm program mismo ay ginawa. Sa pagtatapos ng trabaho, ang pagsubok ng produkto ng software at ang listahan nito ay ipinakita.


Panimula. 5

1 Mga teknikal na pagtutukoy. 6

2 Paglalarawan ng programa.. 7

3 Gabay sa Gumagamit... 9

4 Pagsubok sa programa.. 10

Konklusyon. labing-isa

Listahan ng mga mapagkukunang ginamit. 12

Apendiks A... 13


Panimula

Sa kasalukuyan, ang object-oriented programming system na Delphi ay sikat sa isang malawak na hanay ng mga gumagamit, ang batayan nito ay ang Object Pascal na wika, na orihinal na binuo ni N. Wirth noong unang bahagi ng 60s ng huling siglo partikular bilang isang wika para sa pagtuturo. programming. Binibigyang-daan ka ng Delphi na mabilis na lumikha ng mga application na may iba't ibang antas ng pagiging kumplikado batay sa teknolohiya ng visual programming.



Ang sistema ng Delphi ay naglalaman ng pinakamahusay na mga nagawa ng modernong teorya ng programming. Pinagsasama ng pinagsama-samang kapaligiran na ito ang maraming kapaki-pakinabang na tool at mga handa na bahagi kung saan ang mga programa ng gumagamit - mga proyekto - ay binuo. Ang Delphi ay isang visual software development environment. Nangangahulugan ito na ang hitsura ng bawat programa (interface) ay nilikha sa pamamagitan lamang ng paglipat ng mga bahagi sa paligid.

Ang pangunahing wika ng programming ay Object Pascal - object-oriented Pascal. Ang pangunahing pagkakaiba sa pagitan ng Delphi at Turbo Pascal programming system (Turbo ay isang trademark ng developer ng system na Borland International, Inc. (USA)) ay ang paggamit ng screen mode ng monitor: Ang Turbo Pascal ay nakatuon sa text mode ng DOS system, at Delphi, tulad ng Windows, ay nakatuon sa graphic. Samakatuwid, ang isa sa mga pinakabagong bersyon ng Delphi 7 ay maaari nang lumikha ng mga aplikasyon para sa pinakabagong .NET na kapaligiran. Bukod dito, pinapayagan ng mga pinakabagong bersyon ang programming para sa operating system ng Linux.

Ang sistema ng Delphi ay nagpapatupad ng teknolohiyang object-oriented virtual programming (OOP). Ito ay nakikilala sa lahat ng iba pang mga programming language sa pamamagitan ng higpit nito sa pagtukoy sa lahat ng mga variable at constants, modular programming, sapat na mga pagkakataon upang lumikha ng iyong sariling mga istruktura ng data, ang paggamit ng object-oriented programming, at ang kawalan ng machine-oriented na mga konstruksyon. Ang Borland Corporation, na siyang nagtatag ng Delphi, sa simula pa lang ay umasa sa visual object-oriented programming na may kakayahang magtrabaho sa anumang database. Sa kasalukuyan, ang Delphi programming system ay hindi mas mababa sa mga kakayahan nito sa mga programming language tulad ng C++, C#, Visual C++, C–Builder, Visual Basic, atbp.


1 Mga tuntunin ng sanggunian

Ang gawain ay itinakda: upang bumuo ng isang laro sa tema ng karera ng kabayo sa isang hippodrome sa kapaligiran ng Delphi na may organisadong sistema ng pagtaya.

Sa proseso ng paglutas ng problemang ito natanggap namin ang sumusunod na aplikasyon:

Mayroong 5 mga kabayo na dapat tumakbo sa isang tuwid na linya, na may isang organisadong animation ng paggalaw na binubuo ng 2 mga larawan, at dapat ding mayroong isang betting machine. Ang mga kabayo ay dapat manalo sa iba't ibang mga order.

Ang gawain ng manlalaro ay manalo ng mas maraming "pera" hangga't maaari sa mesa ng pagtaya.

Mga minimum na kinakailangan para magamit ang program: IBM-compatible 486dx o mas mataas, 5 MB. libreng espasyo sa hard disk, OS Win9x/Me, Win2000/XP/Vista/Seven.

Ang programa ay nagbibigay ng:

Posibilidad na may zero na balanse, maaari kang kumuha ng utang;

Ang mga kabayo ay gumagalaw sa iba't ibang bilis at imposibleng malaman ang nagwagi nang maaga.


2 Paglalarawan ng programa

Block diagram ng programa

Ipinapakita ng Figure 1 ang lokasyon ng mga pangunahing elemento ng programa, ito ang hitsura ng pangunahing window ng produkto ng software.

Figure 1 – Pangunahing window ng programa

Sa pamamaraang ito, ang paghahati ng isang kumplikadong sistema sa ilang mga subsystem ay tinatawag na " hatiin at tuntunin"(divide et impera), hierarchical o functional decomposition, atbp. Ang mga pangunahing prinsipyo ay:

a) "hatiin at lupigin";

b) Top-down na disenyo - mula sa pangkalahatang pahayag ng problema hanggang sa mga indibidwal na subtask, atbp.;

c) ang prinsipyo ng hierarchical ordering, na kinabibilangan ng pagsasama-sama ng mga bahagi ng system sa hierarchical tree structures na may pagdaragdag ng mga bagong detalye sa bawat antas.

Ang proseso ng pagdidisenyo ng kumplikadong software ay nagsisimula sa paglilinaw ng istraktura nito, ibig sabihin, pagtukoy sa mga bahagi ng istruktura at ang mga koneksyon sa pagitan ng mga ito. Ang resulta ng paglilinaw ng istraktura ay maaaring iharap sa anyo ng mga istruktura at/o functional na mga diagram at mga paglalarawan (mga detalye) ng mga bahagi.

Block diagram ng software na binuo

Structural tinatawag na diagram na sumasalamin sa komposisyon at pakikipag-ugnayan sa pamamahala ng mga bahagi ng software na binuo. Karaniwan, ang mga naturang scheme ay binuo para sa bawat programa ng isang malaking pakete, at ang listahan ng mga programa ay tinutukoy sa pamamagitan ng pagsusuri sa mga function na tinukoy sa mga teknikal na pagtutukoy.

Ang pinakasimpleng uri ng software ay isang program na maaari lamang magsama ng mga subroutine at resource library bilang mga istrukturang bahagi. Ang pagbuo ng isang block diagram ng programa ay karaniwang isinasagawa gamit ang isang hakbang-hakbang na paraan ng pagdedetalye.

Ang mga istrukturang bahagi ng isang software system o complex ay maaaring mga program, subsystem, database, resource library, atbp.

Kaya, ang diagram ng software complex ay nagpapakita ng paglipat ng kontrol mula sa dispatcher program patungo sa kaukulang programa, tulad ng ipinapakita sa Fig. 4.1. Ang mga programa ng complex ay, bilang panuntunan, maluwag na pinagsama. Samakatuwid, ang isang dispatcher ay ginagamit upang ayusin ang kanilang magkasanib na gawain.

kanin. 4.1. Isang halimbawa ng block diagram ng isang software package.

Iskema ng istruktura sistema ng software, bilang panuntunan, ay nagpapahiwatig ng pagkakaroon ng mga subsystem o iba pang mga bahagi ng istruktura. Hindi tulad ng isang kumplikado, ang mga indibidwal na bahagi (subsystem) ng isang software system ay masinsinang nagpapalitan ng data sa isa't isa at, marahil, sa pangunahing programa. Ang block diagram ng isang software system, bilang panuntunan, ay hindi nagpapakita nito, tulad ng makikita mula sa Fig. 4.2.


Kadalasan ito ay kumakatawan sa isang multi-level hierarchical scheme ng pakikipag-ugnayan sa pagitan ng mga control subroutine. Sa paunang yugto, ang diagram ay nagpapakita ng dalawang antas ng hierarchy, iyon ay, ipinapakita nito ang pangkalahatang istraktura ng programa. Gayunpaman, ginagawang posible ng parehong paraan na makakuha ng mga structural diagram na may malaking bilang ng mga antas.


Hakbang-hakbang na pamamaraan nagpapatupad ng top-down na diskarte at nakabatay sa mga pangunahing konstruksyon ng structured programming. Kabilang dito ang pagbuo ng isang algorithm na hakbang-hakbang, tulad ng ipinapakita sa Figure 4.3. Ang bawat hakbang ay nagsasangkot ng pag-decompose ng isang function sa mga subfunction. Kaya, sa unang yugto, inilalarawan nila ang solusyon sa problema, na itinatampok ang mga pangkalahatang subtask. Sa susunod, ang mga subtask ay inilalarawan sa katulad na paraan, habang binabalangkas ang mga elemento ng susunod na antas. Kaya, sa bawat hakbang ang mga pag-andar ng dinisenyo na software ay nilinaw. Nagpapatuloy ang proseso hanggang sa maabot nila ang mga subtask, mga algorithm na ang mga solusyon ay halata.

Sa kasong ito, kinakailangan, una sa lahat, upang i-detalye ang mga proseso ng kontrol, na iniiwan ang paglilinaw ng mga operasyon ng data para sa huli. Ito ay dahil sa ang katunayan na ang priyoridad na pagdedetalye ng mga proseso ng kontrol ay makabuluhang pinapasimple ang istraktura ng mga bahagi sa lahat ng antas ng hierarchy at ginagawang posible na hindi paghiwalayin ang proseso ng paggawa ng desisyon mula sa pagpapatupad nito. Matapos matukoy ang kundisyon para sa pagpili ng alternatibo, ang module na nagpapatupad nito ay agad na tinatawag.

Functional na diagram o data diagram (GOST 19.701-90) - isang diagram ng pakikipag-ugnayan ng mga bahagi ng software na may paglalarawan ng mga daloy ng impormasyon, ang komposisyon ng data sa mga daloy at isang indikasyon ng mga file at device na ginamit. Upang ilarawan ang mga diagram na ito, ginagamit ang mga espesyal na simbolo na itinatag ng pamantayan.

Ang mga functional na diagram ay mas nagbibigay-kaalaman kaysa sa mga structural diagram. Sa Fig. Para sa paghahambing, ang Fig. 4.4 ay nagpapakita ng mga functional diagram ng mga software complex at system.



b)

kanin. 4.4. Mga halimbawa ng mga functional diagram: a - isang set ng mga program, b - isang software system.

Ang lahat ng mga bahagi ng istruktura at functional na mga diagram ay dapat ilarawan. Sa isang diskarte sa istruktura, lalo na kinakailangan upang maisagawa ang mga pagtutukoy ng mga interface ng interprogram, dahil ang mga pinakamahal na error ay nakasalalay sa kanila.

Gumagamit ang disenyo ng istruktura ng tatlong pangunahing uri ng mga modelo (mga diagram):

1) SADT (Structured Analysis and Design Technique - paraan ng structural analysis at disenyo) - mga modelo at kaukulang functional diagram;

2) DFD (Data Flow Diagram) - mga diagram ng daloy ng data;

3) ERD (Entity-Relationship Diagrams) - mga entity-relationship diagram.

SADT Functional Model ipinapakita ang functional na istraktura ng bagay, i.e. ang mga aksyon na ginagawa nito at ang mga koneksyon sa pagitan ng mga pagkilos na ito.

Ang pangunahing bahagi ng modelo ay dayagram . Dito, ang lahat ng mga function at interface ay ipinakita sa anyo ng mga bloke at arko, ayon sa pagkakabanggit. Ang lokasyon kung saan kumokonekta ang arko sa block ay tumutukoy sa uri ng interface. Kontrolin ang impormasyon kasama sa block sa itaas. Pagpasok ang impormasyong pinoproseso ay ipinapakita kasama ng umalis gilid ng bloke, at resulta(lumabas) - kasama tama. Mekanismo(tao o automated system) na nagsasagawa ng operasyon ay kinakatawan ng isang arko na kasama sa block galing sa ibaba(Larawan 4.5).

Ang pagtatayo ng isang modelo ng SADT ay nagsisimula sa representasyon ng buong sistema sa anyo ng isang simpleng bahagi - isang bloke at mga arko na naglalarawan ng interface na may mga function sa labas ng system. Ang bloke na ito ay pagkatapos ay detalyado sa isa pang diagram gamit ang ilang mga bloke na konektado sa pamamagitan ng mga arko ng interface. Tinutukoy ng mga bagong bloke ang pangunahing mga subfunction ng orihinal na function, na, sa turn, ay maaaring detalyado, atbp. (tingnan ang Fig. 4.6).


kanin. 4.6

Mga Diagram ng Daloy ng Data(DFD) ay ang pangunahing paraan ng pagmomodelo ng mga kinakailangan sa pagganap para sa dinisenyong sistema. Sa kanilang tulong, ang mga kinakailangang ito ay ipinakita sa anyo ng mga hierarchy ng mga functional na bahagi (proseso) na konektado ng mga daloy ng data. Ang pangunahing layunin ng naturang representasyon ay upang ipakita kung paano binabago ng bawat proseso ang mga input nito sa mga output, pati na rin upang ipakita ang mga relasyon sa pagitan ng mga prosesong ito.

Ang mga pangunahing bahagi ng mga diagram ng daloy ng data ay:

a) mga panlabas na entidad;

b) mga sistema at subsystem;

c) mga proseso;

d) mga kagamitan sa pag-iimbak ng data;

e) daloy ng data.

Panlabas na Entidad kumakatawan sa isang materyal na bagay o indibidwal na pinagmumulan o tumatanggap ng impormasyon. Ito ay inilalarawan bilang isang three-dimensional na parihaba na may inskripsiyon, tulad ng ipinapakita sa Figure 4.7.

Subsystem(tingnan ang Fig. 4.8) o proseso(Larawan 4.9) ay kinakatawan ng isang parihaba na may bilugan na mga gilid. Naglalaman ito ng tatlong patlang:

a) Mga Numero;

c) Pisikal na pagpapatupad.

Ang subsystem at ang proseso ay nakikilala sa pamamagitan ng pangalan. Ang una ay naglalaman ng pangalan ng subsystem, at ang pangalawa ay naglalaman ng isang pandiwa na tumutukoy kung ano ang ginagawa ng proseso.

kanin. 4.8. GNI – Inspektorate ng Buwis ng Estado

Imbakan ng data ay isang abstract na aparato para sa pag-iimbak ng impormasyon. Ito ay inilalarawan tulad ng ipinapakita sa Fig. 4.10. Ang pagtatalaga nito ay nagsisimula sa letrang D.

Stream ng data sa diagram ito ay kinakatawan ng isang linya na nagtatapos sa isang arrow na nagpapakita ng direksyon ng daloy. Ang bawat stream ng data ay may pangalan na nagpapakita ng nilalaman nito.

Ang isang halimbawa ng diagram ng daloy ng data ay ipinapakita sa Fig. 4.11.

Ang isang mas kumplikadong diagram ng daloy ng data ay ipinapakita sa Fig. 4.12.

Ang mga diagram ng ER ay tatalakayin sa ibang pagkakataon.

Sa proyekto ng kurso, bilang karagdagan sa functional diagram, kinakailangan upang ipakita ang mga diagram ng mga algorithm para sa pinaka kumplikadong mga function (halimbawa, pag-uuri at paghahanap).