Sunteți pe pagina 1din 19

1

Proiect pentru examenul de atestare a


competenelor profesionale de informatic

Din A n B
Elev: Iordache tefan
Clasa a XII-a D
Colegiul Naional Vasile Alecsandri, Galai
Prof. coordonator: Cobzaru Luminia Mihaela

Mai 2016

Cuprins
1. Descrierea temei
ei.................pag.3

motivaia

alegerii

2.
Cerine
sistem..................................................pag.4

de

3.
Limbajul
C#...........................................................pag.5
4.
Programe
utilizate.................................................pag.6
5.
Prezentarea
n
ansamblu
aplicaiei......................pag.7-13

6.
Prezentarea
n
detaliu
aplicaiei........................pag.14-17

7.
Bibliografie........................................................pa
g.18

1.
1. Descrierea temei i motivaia
alegerii ei
Proiectul Din A n B este o aplicaie cu un scop practic
n lumea contemporan. Ea poate ajuta orice persoan
interesat s ajung dintr-un loc n altul cu un simplu click.
Aglomeraia urban i lipsa unor repere precise n cadrul
transportului n comun poate deveni un factor crucial pentru
gradul de satisfacere social a populaiei.
Aplicaia se adreseaz tuturor utiizatorilor ce doresc s
cltoreasc ntre diverse puncte din Galai cu ajutorul
transportului n comun. Cltorului i sunt oferite cele mai
eficiente trasee din punct de vedere al costului de cltorie i al
disponibilitii autovehiculelor i tramvaielor.
Am ales aceast tem din dorina de a schimba ceva n
oraul natal i de a oferi o soluie autohton transportului n
comun. Am considerat c un bun nceput ar fi o schimbare n
transportul n comun, el fiind utilizat de aproape toi locuitorii
oraului. n acelai timp, proiectul a fost propulsat de pasiunea
pentru reelele de transport i de logistica din spatele acestora.

2. Cerine de sistem
a.Cerine hardware
Aplicaia prezentat poate fi utilizat pe majoritatea
sistemelor de calcul, cerinele hardware fiind foarte
reduse. Pentru o detaliere a acestora se recomand un
sistem cu specificaii minime:
-Viteza minim a procesorului de 1,3 Ghz/nucleu
-Cel puin 512 MB memorie RAM (se recomand 1 GB)
-30 MB spaiu disponibil pe unitatea de stocare (HDD, SSHD,
SSD, etc.)
-Rezoluie minim a monitorului de 1024 x 768 pixeli
-Conexiune stabil la internet de minim 5 Mbps.

b.Cerine sotware

Pentru minima funcionare a aplicaiei sunt


necesare urmtoarele programe preinstalate:
-Microsoft .NET Framework 4.5
-Microsoft Office Excel 2007
-Microsoft Windows 2007 sau Vista
Pentru posibilitatea de a modifica codul surs
este necesar platforma Microsoft Visual Studio
2013.

3. Limbajul C#

Alegerea limbajului de programare C# este datorat


suportului oferit de compania Microsoft prin integrarea
acestuia n mediul Visual Studio. Limbajul este unul
compatibil n mod complet cu sistemul de operare
Windows, fapt ce faciliteaz dezvoltarea de soluii prin
intermediul C#.
Puterea i flexibilitatea l transform ntr-un limbaj de
programare ce este limitat doar de imaginaia
dezvoltatorului. Cu ajutorul C# pot fi implementate soluii
grafice, diverse jocuri, tabele, browsere web sau chiar i
compilatoare. C# este un limbaj modular, orientat pe
obiect ce permite mprirea etapelor de dezvoltare n
clase i metode.
n acelai timp, C# reprezint o evoluie de succes a
dou dintre cele mai populare limbaje de programare: C i
C++. Acesta poate mbina secvene din cadrul altor medii
i limbaje de programare, precum Java i Python.
Un alt avantaj l reprezint relaie dintre C# i
arhitectura .NET. Prin intermediul acestei relaii,
majoritatea aplicaiilor dezvoltate n Microsoft Visual
Studio pot fi portate pe alte platforme i utilizate de ctre
acestea.
Nu n ultimul rnd, simplitatea acestuia i
modalitile vaste de utilizare ale limbajului C# l

propulseaz spre topul celor mai populare limbaje de


programare.

4. Programe utilizate

Aplicaia a fost dezvoltat prin intermediul platformei


Microsoft Visual Studio 2013. Un adaos l reprezint
extragerea informaiilor necesare (coordonate geografice)
cu ajutorul motorului Google Maps.
Programul solicit prezena unui pachet Microsoft
Office, minimul necesar fiind Microsoft Office Excel 2007.
Pentru funcionarea proiectului sunt necesare
modulele
GMap.NET.Core.dll
i
Gmap.NET.WindowsForms.dll.

5. Prezentarea n ansamblu a
aplicaiei
Utilizatorului i este oferit o interfa grafic simpl
ce conine un meniu pentru selecia celor dou staii ntre
care se dorete efectuarea clatoriei, o hart centrat
deasupra oraului Galai i un buton ce trebuie apsat
dupa ce s-a fcut selectarea staiilor.

Pentru a ncepe cutarea drumului dorit,


utilizatorul va alege staia de plecare i staia de
sosire din meniurile de tip combo box.

n cazul n care nu sunt respectate regulile de


selecie, butonul Afla drumul nu poate fi apsat i este
furnizat un mesaj de eroare.

Atunci cnd staiile sunt validate i utilizatorul apas


pe buton, sunt generate cele mai bune 3 trasee disponibile
ntre staia de plecare i staia de sosire.

Exist cazuri exceptate n care nu exist dect una


sau doua soluii, afiarea acestora fiind redus la una sau

10

dou casete de text, respectiv la unul sau dou butoane


radio.

Afiarea se face pe vertical, n casete de text,


blocate prin setarea Read Only. Sunt afiate staiile de
plecare, staiile intermediare, traseele necesare pentru a
ajunge ntre 2 staii i, excepional, distana dintre 2 staii
foarte apropiate, pentru care nu este necesar deplasarea
folosind un mijloc de transport n comun.
Traseele alese sunt calculate n funcie de frecvena
de circulaie a autobuzelor, tramvaielor i troleibulezor, dar
i n funcie de numrul de staii parcurse, preul ntregii
cltorii i timpul de schimbare dintre staii.
Este necesar eficientizarea timpului de cltorie,
distanei parcurse i costului.

11

Butoanele radio asigur interaciunea dintre utilizator


i hart, acestea fcnd posibil afiarea soluiilor oferite.

n urma selectrii unui buton radio, este afiat traseul


ales, punctele reprezentnd staiile parcurse.
n funcie de numrul de mijloace de transport
schimbate, traseele sunt codificate cu ajutorul culorilor.
Culoarea roie este destinat staiilor de plecare sau
de sosire, culorile verde, albastru i galben fiind rezervate
traseelor necesare.
n imaginea anterioar se observ staia de sosire
marcat cu rou, iar cea de pornire cu verde. Acest lucru
marcheaz necesitatea de a merge pe jos ntre staiile
intermediare.

12

Spre exemplu, sunt alese ca staie de pornire locaia


Trecere Bac, iar ca staie de sosire Cimitirul Israelit.
Sunt furnizate 3 soluii, dintre care selectm spre
vizualizare soluia cu numrul 1.

Sunt necesare 3 trasee diferite: 16, 11 i 39. Pe hart


se pot observa cele 2 schimbri necesare dintre Piaa
iglina 1 i iglina 2, respectiv schimbarea din 11 n 39 n
staia de la Liceul Nr. 3.
Traseul numrul 16 este codificat prin intermediul
culorii verzi, autobuzul numrul 11 prin intermediul culorii
albastre, iar tramvaiul 39 este afiat cu ajutorul culorii
galbene.
Este de remarcat faptul c se dorete schimbarea ct
mai repede posibil ntre 16 i 11, dar ct mai trziu ntre
11 i 39.

13

Selectarea unui nou buton radio duce la tergerea


datelor actuale de pe hart i ncrcarea de noi rute.

14

Programul are o interfa simpl i este destinat


maselor. n acelai timp, acesta profit de conexiunea la
reea i salveaz harta prin intermediul memoriei cache,
fiind posibil utilizarea acesteia fr a dispune de o
conexiune de internet.
n urma unor analize amnunite, s-a constatat faptul
c ntre oricare 2 locaii distincte din Galai, se poate
ajunge cu ajutorul a maxim 3 mijloace de transport
diferite. Aceast observaie faciliteaz implementarea i
nelegerea ulterioar a programului.
Datorit posibilitilor de portare din arhitectura .NET,
este posibil folosirea aplicaiei de ctre un server i
distribuia rezultatelor ctre o interfa mobil sau ctre o
pagin web.

15

6. Prezentarea n detaliu a aplicaiei


Implementarea programului a avut nevoie de o
analiz n detaliu a sistemului de transport disponibil.
Datele sunt stocate n fiiere de tip text i de tip
tabel (Excel). Pentru o mai bun nelegere se va preciza
structura datelor.
Primul pas l reprezint stocarea tuturor staiilor sub
forma de tabel:

Coloanele reprezint numrul staiei, numele


acesteia i coordonatele n langitudine i longitudine ale
acestora. Apoi, au fost stocate traseele sub forma a dou
linii (tur i retur):
numar_traseu staie_1
staie_2 ....................... staie_n

16

n plus, pentru determinarea schimbrilor dintre staii


a fost necesar asocierea unora dintre staii. (ex.:
Universitate-Teatrul Dramatic)
Pentru generarea soluiilor se folosesc 2 matrici: una
pentru staia de plecare (A) i alta pentru staia de sosire
(B).
Se construiesc dinamic dup o regul de umplere. Se
consider toate traseele ce pornesc din A i se marcheaz
la fiecare staie X, numrul traseului si din ce staie s-a
ajuns n X.
Pentru matricea asociat locaiei B, se consider
toate traseele ce ajung n B i se marcheaz invers staiile
Y din care se poate ajunge n B.

Poate fi observat faptul c staiile de plecare sunt o


mulime format din staiile cu acelai nume ca A i cu
vecinii acestora.
Cutarea soluiilor se realizeaz pe baza celor 3 cazuri
anunate:
1) A ( -> A1 ) -> tr1 -> (B1 -> ) B
2) A ( -> A1 ) -> tr1 -> X ( -> X1 ) -> tr2 -> (B1
-> ) B
3) A (->A1 ) -> tr1 -> X (->X1 ) -> tr2 -> Y (>Y1 ) -> tr3 -> (B1 -> ) B
Parantezele reprezint opionalitatea de a
parcurge un drum fr un mijloc de transport ntre
dou staii.
Soluiile sunt generate prin reuniunea celor
dou matrici i determinarea punctelor comune, iar

17

algoritmul folosit are o complexitate de aproximativ


Nk * M, acolo unde N reprezint numrul de staii, M
numrul de trasee, iar K reprezint cazul n care ne
aflm. n practic, soluiile se obin mult mai rapid
dect prin intermediul algoritmului Dijkstra.

Dup aflarea tuturor soluiilor posibile,


acestea sunt filtrate i se aleg cele mai bune 3
rezultate.

Rezultatele sunt afiate pe parcurs n casetele de text


i sunt oferite utilizatorului.
Pentru a implementa harta a fost folosit o bibliotec
open source, aceasta fiind implementat n platforma .NET.

18

Iniializarea se face uor prin specificarea unor


parametri precum furnizorul de date, modul de operare
(Internet Only sau Cache Memory), nivelul de zoom sau
poziia de start.

Metoda de afiare a punctelor pe hart se gsete sub


denumirea de Markers.

Sunt precizate prin intermediul unor funcii specifice


poziia marcatorului n latitudine i longitudine, dar i tipul
marcatorului, n exemplu culoarea acestuia fiind verde.
Un ultim aspect interesant l reprezint determinarea
distanei dintre 2 puncte situate pe hart, pentru aceasta
fiind folosit Formula Haversine.
a = sin(/2) + cos 1 cos 2 sin(/2)
c = 2 atan2( a, (1a) )
d=Rc
este latitudinea, este longitudinea, R este raza
planetei ( 6,371km)
unghiurile sunt n radiani!

19

7. Bibliografie
http://www.movabletype.co.uk/scripts/latlong.html
https://greatmaps.codeplex.com/