Disertatie Doroftei V. Mircea Ciprian [609880]
1
Cuprins
INTRODUCERE 3
CAPITOLUL I. STUDIUL ȘI ANALIZA SISTEMULU I EXISTENT 4
1.1 PREZENTAREA SOCIETĂȚI I 4
1.1.1 OBIECTUL DE ACTIVITAT E AL SOCIETĂȚII 4
1.1.2 LOCUL ÎN SFERA ECONOM ICĂ 4
1.1.3 INDICATORI ECONOMICI 5
1.2 STRUCTURA ORGANIZATOR ICĂ A SOCIETĂȚII 6
1.2.1 ORGANIGRAMĂ 6
1.2.2 STUDIUL SISTEMULUI DE CONDUCERE 7
1.2.3 STUDIUL SISTEMULUI CO NDUS 8
CAPITOLUL II. PREZEN TAREA TEHNOLOGIILOR INFORMATICE PENTRU R EALIZAREA APLICAȚIEI 9
2.1 PREZENTARE APPLE INC. 9
2.1.1 IPAD 9
2.1.2 IPOD 10
2.1.3 REZULTATE VÂNZĂRI 11
2.2 PREZENTARE I PHONE 12
2.3 PREZENTARE I OS 12
2.4 IOS SDK 13
2.5 XCODE 14
2.5.1 INTERFACE BUILDER 14
2.5.2 IOS SIMULATOR 15
2.6 OBJECTIVE – C 15
2.6.1 DIFERENȚE ÎNTRE OBJECTIVE – C ȘI C++ 16
2.7 COCOA TOUCH 16
2.8 APP STORE 18
2.9 SQL 20
2.10 XML 21
CAPITOLUL III. PROIE CTAREA BAZEI DE DATE 22
3.1 MYSQL 22
3.1.1 PHPMYADMIN 22
3.2 BAZA DE DATE 23
2
3.2.1 CREAREA BAZEI DE DATE 23
3.2.2 CREAREA UTILIZATORILO R 23
3.2.3 CREAREA TABELELOR 24
3.2.4 POPULAREA TABELELOR C U DATE 27
3.3 STRUCTURA RELAȚIONALĂ DINTRE TABELE 29
3.4 INTEROGAREA BAZEI DE DATE 29
CAPITOLUL IV. PREZEN TAREA APLICAȚIEI 32
4.1 APLICAȚIA I PHONE 32
4.2 STUD ENTAPP 32
4.2.1 MODULUL DATE DE IDENTIFICARE 32
4.2.2 MODULUL MESAJE 33
4.2.3 MODULUL ORAR 34
4.2.4 MODULUL EXAMENE 35
4.2.5 MODULUL NOTE 35
4.3 PROFESOR APP 37
4.3.1 MODULUL REZULTATE EXAMEN 37
4.3.2 MODULUL ADĂUGARE DATE EXAMEN 38
4.3.3 MODULUL COMUNICARE CU STUDENȚII 38
4.3.4 MODULUL ADĂUGARE NOTĂ STUDENT 39
4.4 ADMINISTRARE PE INTER NET 40
4.4.1 PAGINA DE LOGIN 41
4.4.2 INTEROGAREA BAZEI DE DATE 41
4.4.3 IMPORTAREA ÎN BAZA DE DATE 42
4.4.4 PAGINA DE INSERĂRI ÎN BAZA DE DATE 42
4.4.5 ÎNREGISTRARE UTILIZAT OR NOU 43
CAPITOLUL V. CONCLUZ II 44
BIBLIOGRAFIE 46
ANEXE 48
3
Introducere
Studiul universitar nu mai este de mult doar o opțiune după terminarea liceului, ci a devenit o condiție
esențială și obligatorie a succesului pe plan profesional și chiar pers onal. Odată cu trecere la sistem ul
Bologna pentru învățământ superior, timp ul de studiu a ajuns la cel putin 5 ani, incluzând studiile de
master at.
Astfel, fiecare universitate trebuie să prezinte o ofertă cât mai bună pentru a atrage viitorii studenți. Din
această ofertă, pe lângă partea educa țională, trebuie să se pună acc ent pe atmosfera creată și pe modul de
comunicare între Universitate – Profesor – Student.
Modul clasic de informare este bun și atât. Aici mă refer la mersul la avizier în speranța că a apărut ceva
nou sau căutarea profesorului la decanat sau secre tariat, dar nu este destul. Lipsa unei modalități de
comunicare dinamică și rapidă, poate fi frustrantă în unele situații. Spre exemplu, schimbarea sălii de
desfășurare a unui curs, ar crea o stare de disconfort pentru studenții care nu au fost informați d in timp de
această modificare. Suntem în secolul XXI, secolul vitezei și timpul fiecăruia este prețios și mai ales limitat.
De aici și necesitate a unei soluții moderne, complementare modului clasic de informare și comunicare .
Soluția propusă reprezi ntă realizarea unui sistem informatic care să îmbunătățească modul de comunicare
pe canalul Universitate – Profesor – Student.
Obiectivele ce trebuie atinse pentru a realiza cu succes soluția sunt:
– Crearea unei baze de date, pe internet care să stocheze t oate datele legate de activitatea studenților ;
– Proiectarea și realizarea unei aplicații, ce poate fi rulată de pe un terminal mobil pentru a accesa
datele din baza de date ;
– Proiectarea si realizarea unui website, de unde utilizatorii înregistrați au posibilitatea de a ac cesa
baza de date și de a o ține la curent ;
4
Capitolul I. Studiul și analiza sistemului existent
1.1 Prezentarea societății
Viziune Grafică este o societate cu răspundere limitată (abreviată curent ca S.R.L. ori SRL). Este o
formă legală de companie , o anumită formă de persoană juridică , care are o răspundere limitată în fa ța legii și
față de proprietarii acesteia.1
Sediul social al societății este situat în Suceava, Str.Mără șești, Nr.52A, județ ul Suceava. Nr. de
înmatriculare la Oficiul Registrului Comerțului: J xx/xx/20 08. Capitalul social subscris și vărsat este de 200
lei.
1.1.1 Obiectul de activitate al societăți i
S.C. Viziune Grafic ă SRL2 a luat fiin ță în anul 2011. Este specializată în activită ți de servicii informatice,
reprezentat cu numărul 63 in codul CAEN. Obiectul principal de activitate al societății clasificat conform
Clasificării Activit ăților din Economia Națională (CAEN) este: – Cod CAEN 6311 – Prelucrarea datelor,
administrarea paginilor web și activit ăți conexe .
Principalele activități și servicii realizate de societate sunt:
– Programare Ph P
– Web Design
– SEO
– Suport tehnic
– Realizare soft la comandă
1.1.2 Locul în sfera economică
S.C. Viziune Grafică SRL își desfășoară activitatea în mediul virtual – ramura informa țiilor și
telecomunica țiilor.
Obiectivele societății sunt:
– Cucerirea unor segmente de piață cât mai largi la nivel național ;
1 Societate cu răspundere limitată
2 Viziune Grafică
5
– Mărirea numărului de clien ți;
– Îmbunătățirea principalilor indicatori, având în vedere evoluția economiei naționale și urmărind în
primul rând scăderea costurilor totale ale firmei ;
– Extinderea activității de publicitate și promovare ;
Pentru realizarea acestor obiective, compania are la îndemână o serie de pârghii de acțiune și reglare:
– Politica financiară și de marketing adaptată noilor cerințe ale societății informaționale
– Stabilirea unor relații de colaborare cu firme importante din domeniul informatic pentru promovarea
produselor proprii
– Elaborarea unei politici de funcționare și dezvoltare a activității în fu ncție de cerințele economice de
piață
Politica firmei este influ iențată, în reali zarea obiectivelor sale, în desfășurarea propriei activități, de o
serie de factori de context determinant, cum sunt:
– Situația financiară a firmei
– Cererea de piață
– Legislația generală, legile normative existente în domeniu
– Segmentul de piață ocupat în cadrul ramurei
1.1.3 Indicatori economici
Analizând datele din tabelul nr.1 și graficul nr.1 se observă tendința constant cresc ătoare a cifrei de
afaceri (C.A.), a veniturilor, dar și a cheltuielilor. În 200 8 compania a î nregistrat un profit mic, acest lucru
datorându -se timpului scurt de activitate avut, 2 luni . Însă, anul 200 9 prezintă o creștere a companiei, cu un
profit de 4 ori mai mare fa ță de anul precedent . Profitul și-a păstrat trendul crescător și în anul 2010, acest
lucru datorându -se în special men ținerii nivelului de cheltuieli, acestea având aproape aceea și valoare ca în
anul precedent. Pentru anul 20 11 compania se a șteaptă ca cifra de afaceri s ă crească din nou, împreună cu
veniturile, ceea ce ar determina un profit în creștere față d e anul precedent.
În anul 20 12, S.C. Viziune Grafică inteționează să mențină ritmul crescător din anii precedenți, dar în
același timp dorește să extindă serviciile oferite .
6
Indicatori
economici
2008(2 luni) Ani de studiu
2009
2010
Cifra afaceri ( lei ) 2.500 31.000 53.000
Profit Brut 1.100 4.940 20.880
Cheltuieli Totale 1.400 25.060 32.120
Venituri Totale 2.500 31.000 53.000
Tabel nr.1 Indicatori economici
Grafic nr.1 Indicatori economici
1.2 Structura organizatorică a societății
1.2.1 Organigramă
Numărul total de salariați la data de 01.05.2010 este de 2 persoane, acestea fiind și asocia ții fondatori ai
companiei, din care:
– Administrator: 1
– Programatori: 1
C.A.Profit BrutCheltuieli TotaleVenituri Totale
0100002000030000400005000060000
2008
2009
2010C.A.
Profit Brut
Cheltuieli Totale
Venituri Totale
7
1.2.2 Studiul sistemului de conducere
Societatea este condusă de către un administrator. Asocia ții stabilesc obligațiile, răspunderile, durata
mandatului, precum și remunerația administratorului.
Fișa postului Administrator , cod COR 241939, conține printre altele:
Cerințe minime:
– Studii : învățământ superior, studii perfecționare
– Vechime: conform Legii 30/1990,
– Cunoștințe:
o management general
o să posede cuno ștințe temeinice în ceea ce prive ște sistemul organizatoric și economic
– Aptitudini:
o capacitate de analiză și sinteză
o capacitate de interpretare și valorificare a informațiilor
o capacitate de coordonare, organizare și control
o calități de bun conduc ător – cunoașterea oamenilor
o receptivitate la nou, față de tendințele ce se manifestă în domeniul industri ei informatice
– Relații ierarhice:
o este subordonat președintelui Consiliului de Administrație
– Limite de competență: Conform hotărârilor CA
Atribuții și Responsabilități:
o organizează și conduce prin factori de decizie, toate activitățile tehnice, economice, sociale și
de altă natură ale soc ietății comerciale, permi țându -i acesteia un grad mare de flexibilitate,
adaptare și reorganizare
o încheie acte juridice în numele societății comerciale
o asigură toate condițiile tehnice, materiale și organizatorice pentru desfășurarea activității
societății
o concepe și aplică strategii și politici de dezvoltare a societății
o identifică necesarul de resurse umane, materiale și financiare pentru implementarea și
menținerea sistemului calității
o asigură cadrul organizatoric necesar pentru ca procesele de execuție să se desfășoare în
condiții controlate
8
o face toate operațiile cerute pentru ducerea la îndeplinire a obiectivului de activitate a societății
o ia parte la toate adunările societății, la consiliile de administrație și la organele de conducere
similare acestora
o aprobă deciziile și fișele posturilor pentru tot personalul din conducerea societății, documente
care includ și responsabilități referitoare la sistemul calității
– Alte prerogative încredințate de CA
1.2.3 Studiul sistemului condus
Personalul condus este angajat în cadrul S.C. Viziune Grafică S.R.L. de către Administrator.
Fișa postului Programator , cod COR 213102, conține printre altele:
– Studii: învățământ superior ( profil Automatică, Cibernetică, Informatică), studii perfecționa re
– Vechime: minim un an pe un post asemănător
– Cunoștințe:
o experien ța profesional ă PHP & MySql, HTML, JavaScript, CSS
o cuno ștințe generale SQL, baze de date rela ționale
o cunoștințe de limba englez ă cel pu țin medii (scris / vorbit)
– Aptitudini:
o experienta dezvoltare si intretinere aplicatii WEB
o capacitate de interpretare și valorificare a informațiilor
o capacitate de coordonare, organizare și control
o receptivitate la nou, față de tendințele ce se manifestă în domeniul industrii informatice
– Relații ierarhice:
o este subordonat Administratorului
– Atribuții și Responsabilități:
o Asigura dezvoltarea si intretinerea aplicatiilor WEB folosite la proiect
o Documentarea codului sursa
o Intretinerea documentatiei aplicatiei
– Etică profesională
o Nu divulgă ter ților informa țiile clasificate drept confidentiale
9
Capitolul II. Prezentarea tehnologiilor informatice pentru realizarea aplicației
2.1 Prezentare Apple Inc.
Apple Inc.3 este o companie din Silicon Valley, cu sediul în Cupertino ,
California , cu scop principal de activitate în tehnologia computerelor . Cunoscută
mai ales pentru computerele Macintosh , Apple are o reputație de inovație în
industria de înaltă tehnologie .
Compania a fost fondată la 1 Aprilie 1976. Membri fondatori sunt Steve Jobs4,
Steve Wozniak5 și Ronald Wayne6, care a renunțat la partea sa din companie.
Dintre produsele companiei putem enumera: Mac, iPod, iPhone, iPad, Apple TV,
Mac OS X, iLife, iWork și iOS. Iar serviciile pe care le oferă sunt: Apple Store, App Store, iTunes Store,
iBooks și MobileMe. În anul 2010 numărul de angajați depășea 49.0007. În anul 2010, veniturile totale au
depășit 65 miliarde dolari7, iar profitul realizat a fost puțin peste 14 miliarde dolari7.
Apple dezvoltă propriul sistem de operare pentru a rula pe Mac-uri, Mac OS X, versiunea cea mai recentă
fiind Mac OS X v10.6 Snow Leopard . De asemenea, dezvoltă independent titluri de programe de calculator
pentru sistemul său de operare . Marea parte a software -ului dezvoltat de Apple este inclus în computerele
sale. Un exemplu în acest sens este pachetul software iLife ce include iDVD , iMovie , iPhoto , iTunes ,
GarageBand , și iWeb . Pentru prezentări , aspectul paginii și procesare de text , este disponibil iWork , care
include Keynote , Pagini și Numbers . iTunes , media playerul QuickTime , web browser -ul Safari și Software
Update sunt disponibile ca download gratuit , atât pentru Mac OS X cât și pentru Windows .
2.1.1 iPad
La data de 27 ianuarie 2010 , Apple a introdus mult-anticipate tablete grafice , iPad. Acestea rulează o
versiune modificată a iOS. Dispozitivul oferă interacțiune a multi -touch cu formate multimedia , inclusiv
ziare , reviste, ebooks , manuale , fotografi i, filme, emisiuni TV , videoclipuri , muzică , documente procesare
3 Apple Inc.
4 Steve Jobs
5 Steve Wozniak
6 Ronald Wayne
7 2010 Apple Form 10 -K
Figura nr.1 Logo Apple
10
text, foi de calcul , jocuri video și majoritatea aplica țiilor existente pentru iPhone . De asemenea, include o
versiune mobilă Safari , pentru navigarea pe internet , precum și accesul la App Store , iTunes Library , iBooks
Store , contacte și notepad . Conținutul este descărcat prin intermediul Wi-Fi și un serviciu optional 3G sau
sincronizar e prin intermediul computerului utilizatorului .
La data de 02 martie 2011 , Apple a introdus un model iPad actualizat , care are un procesor mai rapid și
două camere foto, față și respectiv spate .
2.1.2 iPod
La data de 23 octombrie 2001 , Apple a introdus player -ul de muzică digitală iPod. În timp acesta a
evoluat pentru a include diferite cerin țe ale utilizatorilor . iPod-ul este lider de vânzări pe piața de playere
muzicale portabile cu o marjă semnificativă , având mai mult de 220 de milioane de unități livrate până în
septembrie 2009. Apple a încheiat un parteneriat cu Nike pentru a oferi Nike + iPod Sports Kit. Acesta
permite atleților să-și sincronizeze și monitorizeze alergările prin intermediul iTunes și Nike + site-ul web . În
prezent Apple comercializează patru variante de iPod:
– iPod Classic (denumit iPod în perioada 2001 -2007 ), este un media player portabil introdus pentru
prima dată în anul 2001
– iPod Nano , este un media player portabil introdus pentru prima dată în anul 2005 . Cea mai nou ă
genera ție are radio FM, un pedometru , și o nouă interfață multi -touch, care a înlocuit tradiționala
roată click iPod.
– iPod Shuffle , este un player audio digital introdus în 2005 .
– iPod Touch , este un media player portabil care ruleaz ă iOS, introdus în Septembrie 2007 după ce
iPhone a fost pus în vânzare . Cea mai recentă generație dispune de procesor Apple A4, un Display
Retina , și camere foto pe față și pe spate . Camera din spate permite înregistrare video HD la 720p .
Figura nr.2 Familia iPod, iPod Shuffle , iPod Nano ,
iPod Classic , and iPod Touch
11
2.1.3 Rezultate vânzări
Pe data de 18 Ianuarie 2011, Apple Inc. a anu nțat rezultatele financiar e pentru trimestrul încheiat în
Decembrie 2010. Compania a înregistrat venituri record de 26.74 miliarde dolari și un profit net trimestrial
de 6 miliarde dolari , sau 6.43 dolari per acțiune . Aceste rezultate pot fi comparate cu veniturile de 15.68
miliarde dolari și un profit net trimestrial de 3.38 miliarde dolari , sau 3.67 dolari per acțiune , în anului 2009 .
Marja brută a fost 38,5 la sută compar ativ cu 40.9 la sută în anului 2009 . Vânzările pe piața internațională au
reprezentat 62 la sută din veniturile trimestru .
Apple a vândut 4.13 milioane Mac-uri în timpul trimestrului , o creștere de 23 la sută față de aceea și
perioad ă în anul 2009 . Compania a vândut 16.24 milioane iPhone -uri în primul trimestru, reprezentând o
creștere de 86 la sută față de cea a anului precedent . Vânzările iPod au fost de 19450000 , reprezentând o
scădere de șapte la sută față de aceea și perioad ă a anului 2009 . De asemenea, vânzările iPads s -au ridicat la
7330000 unită ți.8
Grafic nr.2 Indicatori economici Apple 2009 – 2010
8 Rezultate vanzari
20092010
051015202530
Venituri
Profit net2009
2010
12
2.2 Prezentare iPhone
iPhone este un smartphone multimedia cu
capabilități de conectare la internet, care este
proiectat, dezvoltat și comercializat de Apple Inc.
Telefonul poate funcționa ca o cameră video, aparat
foto, media player portabil, client Internet cu mail,
navigare online și conectivitate Wi -Fi și 3G.
Interfața cu utilizatorul este contruită în jurul
ecranului multi -touch, folosind o tastatură virtuală
în locul uneia convenționale.
Peste 350.0007 de aplicații sunt disponibile
pentru telefon. Acestea pot fi descărcate de la Apps
Store. Aceste aplicații au funcționalități diverse , inclusiv jocuri , de referință , de navigație GPS, social
networking , de securitate și publicitatea pentru emisiuni de televiziune , filme , și celebrități .9
iPhone rulează un sistem de operare cunoscut sub numele de iOS. Este o variantă a sistemul de operare de
bază folosit pe Mac OS X. Este capabil să ruleze aplicațiile existente și cele viitoare de la Apple, dar și de la
dezvoltatori privați. Aplicații le software nu pot fi copiate direct din OS X, ci trebuie să fie scrise și compilate
în iOS.
2.3 Prezentare iOS
iOS10 (cunoscut cu numele de iPhone OS înainte de iunie 2010) este sistemul de operare mobil de la
Apple. Inițial dezvoltat pentru iPhone , acesta a fost extins pentru a sprijini alte dispozitive , cum ar fi Apple
iPod touch , iPad și Apple TV. Cele peste 350.00 de aplicații disponibile pentru iOS au fost descărcate de
peste 10 miliarde de ori. În ultimul trimestru al anului 2010 , a avut o cot ă de 16% din piața sistemelor de
operare smartphone în termeni de unități vândute , al treilea după Google Android și Symbian .11
Interfa ța cu utilizatorul al iOS este bazată pe conceptul de manipulare directă, folosind gesturi multi –
touch. Elementele d e control ale interfe ței constau în slidere, switches și butoane. Timpul de răspuns este
9 iPhone
10 iOS Apple
11 Worldwide smartphone market
Figura nr.3 iPhone 4 Alb
13
foarte redus și oferă o flu iență interfe ței. Interac țiunea cu sistemul de operare include gesturi, cum ar fi
swipe , tap, pinch , și reverse pinch , toate au defini ții specifice în contextul sistemului de operare iOS și
interfa ța sa multi -touch. Unele aplica ții folosesc accelerometrul intern pentru a răspunde la scuturarea
dispozitivului (un rezultat comun este comanda Undo) sau rotirea în trei dimensiuni (un rezultat comun este
trecerea de la modul portret la cel landscape).
Sistemul de operare iOS este derivat din sistemul de operare Mac OS X, cu care împarte funda ția Dar win,
prin urmare este un tip de sistem de operare Unix.
iOS are patru nivele de ab stractizare: nivelul sistemului de operare de bază, nivelul serviciilor de bază,
nivelul media și nivelul Cocoa Touch.
2.4 iOS SDK
iOS SDK (cunoscut înainte ca iPhone SDK) este un kit de dezvoltare
software, dezvoltat de Apple Inc. și a fost lansat în Februarie 2008 pentru
a dezvolta aplica ții native iOS.
Kitul de dezvoltare software permite dezvoltatorilor să realizeze
aplica ții pentr u iPhone și iPod touch, precum și testarea lor într -un simulator iPhone. Totu și, încărcarea unei
aplica ții pe dispozitiv este posibilă doar după plata unei taxe. Xcode este mediul de dezvoltare pentru iOS
SDK. Aplica țiile iPhone, cum ar fi iOS și Mac OS X, sunt scrise în limbajul de programare Objective -C.
Dezvoltatorii au posibilitatea să seteze orice pre ț peste un minim obligatoriu pentru aplica ția creată.
Aceasta va fi distribuită prin App Store, revenindu -le 70% din veniturile generate din comerci alizarea
aplica ției. Alternativ, exită posibilitatea lansării aplica ției gratis și nu trebuie să plătească nimic pentru
distribu ția ei, în afară de taxa de membru.12
12 iOS SDK
Figura nr.4 Logo iOS SDK
14
2.5 X code
XCode13 reprezintă o suită de instrumente, dezvoltate de Apple, pentru
dezvoltare software pentru Mac OS X și iOS. XCode 4 este cea mai recentă
versiune majoră lansată. XCode IDE în țelege fiecare detaliu al proiectului,
identifică gre șelile de sintaxă și de logic ă și chiar va repara codul. Xcode este
gândit pentru a ajuta programatorul să scrie un cod mai bun.
XCode 4 are o interfa ță noua, construită utilizând tehnologii pe care Apple le
folose ște pentru a crea Mac OS X și iOS și care au produs peste un sfert de
million de aplica ții Mac OS X și iOS.
2.5.1 Interface Builder
Interface Builder14 este o aplica ție de dezvoltare software ce face parte
din XCode. Interface Builder permite dezvoltatorilor sa creeze interfa ța
pentru aplica ții folosind o interfa ță grafică.
Interface Builder oferă colec ții de obiecte de interfa ță cu utilizatorul ,
pentru programator ul Objective -C. Aceste obiecte de interfa ță cu
utilizatorul con țin obiecte , cum ar fi câmpuri text, tabele, slider e și meniuri pop -up. Colec țiile de obiecte din
Interface Builder sunt complet extensibile, ceea ce înseamnă că orice dezvoltator poate realiza obiecte noi.
Pentru a crea o interfa ță, un dezvoltator pur și simplu trage obiecte din colec ția de obiecte pe o fereastră
sau meniu. Ac țiunile (mesajele) care pot fi emise de obiecte sunt conectate cu țintele prin codul aplica ției și
outlets (pointere) declarate în codul aplica ției sunt conectate la obiecte specifice. În acest fel, toată
inițializarea e ste realizată înainte de rulare, îmbunătă țind performan țele aplica ției și eficientizând procesul de
dezvoltare.
13 XCode
14 XCode Interface Builder
Figura nr.5 Logo XCode
Figura nr.6 Logo Interface Builder
15
2.5.2 iOS Simulator
Mediu iOS simulation15 permite construirea și rularea aplica țiilor iPhone și iPad
pe computer. Mediul de simulare este folosit pentru :
– Găsirea și rezolvarea problemelor majore din aplica ție în timpul des ignului
și testării ini țiale
– Aflarea mai multor detalii despre experien ța de dezvoltare Xcode și mediul
de dezvoltare iOS înainte de a deveni un membru al Programului de Dezvoltare iOS
– Testarea interfe ței de utilizator a aplica ției
– Măsurarea nivelul de utilizare a memoriei înainte de a efectua analiza detaliată de performan ță pe
dispozitive iOS
O parte majoră a mediul ui de simulare iOS este aplica ția iOS Simulator. Această aplica ție prezintă
interfa ța iPhone sau iPad într -o fereastră pe calculator. Aplica ția oferă mai multe modalită ți de a interac ționa
cu ea folosind tas tatura și mousul pentru a simula apăsări și rota ția dispoz itivului, printre alte gesturi.
2.6 Objective – C
Objective -C16 este un limbaj reflexiv, orientat obiect de programare care adaugă stilul mesajelor
Smalltalk pentru limbajul de programare C.
În prezent , este utilizat în principal pe Mac OS X și iOS. Două medii bazate pe standardul OpenStep, de și
nu sunt în conformitate cu acesta.
În anul 2006 la Worldwide Developers Conference , Apple a anunțat viitoarea lansarea a Obiectiv -C 2.0,
o revizuire a limbajului Objective -C, ce v a include metoda modernă de colectare a gunoiului , modificări de
sintaxă , îmbunătățiri de performanță și sprijin pentru sisteme pe 64 de bi ți.
Momentan nu este cunoscut momentul în care această schimbare de limbaj va fi disponibilă în runtime
GNU sau dacă toate acestea vor fi puse în aplicare într-un nou standard Objective -C 2.0.
15 iOS Simulator
16 Object ive-C
Figura nr.7 Logo iOS
Simulator
16
2.6.1 Diferen țe între Objective – C și C++
Proiectarea și implementarea a C++ și Obiectiv -C reprezintă abordări diferite pentru extinderea C.
Față de stilul limbajului C de programare procedurale , C++ sprijină direct anumite forme de programare
orientate -obiect , programare generică și metaprogramming . De asemenea, C++ vine cu o mare bibliotec ă
standard , care include mai multe clase container . În mod similar , Objective -C conține în plus fa ță de limbajul
C programarea orientată obiect , tastarea dinamică și reflecția. Obiectiv -C nu oferă o bibliotecă standard , dar
în locurile în care acesta este folosit , este utilizat cu o bibliotecă OpenStep , cum ar fi OPENSTEP , Cocoa ,
sau GNUstep , care oferă funcționalitate similară cu biblioteca standard C++ .
O diferență notabilă este că Objective -C oferă suport runtime caracteristic reflective , în timp ce C++
adaugă doar o can titate mică de sprijin runtime la C. În Obiectiv -C, un obiect poate fi interogat cu privire la
proprietățile sale proprii , de exemplu, dacă va răspunde la un anumit mesaj . În C++ acest lucru nu este
posibil, fără utilizarea de biblioteci externe .
Utilizarea reflection face distincția între dinamic (run-time) și caracteristicile statice (compilare -timp) ale
unui limbaj . Deși Objective -C și C++ folosesc un amestec funcții , Objective -C este orientat spre deciziile
run-time în timp ce C++ este orientat spre decizii de compilare -timp. Tensiunea dintre program area dinamică
și cea static ă implică multe dintre clasic ele compromisurile din programare : caracteristicile dinamice adaugă
flexibilitate , caracteristicile statice adăuga viteză .
Progra marea generică și metaprogram area sunt implementat e și sprijinit e în mod diferit de fiecare limbaj.
În Objective -C este manipulat prin tastarea dinamic ă și de reflec tion, în timp ce C++ tratează prin șabloane .
Primele versiuni ale Objective -C nu aveau suport de colectare a gunoiului . Astfel, dezvoltatorul trebuie să
aibă în permanen ță grijă de obiectele create și de momentul în care acestea vor fi eliberate pentru a nu
consuma inutil memorie și pentru a optimiza viteza de rulare a aplica ției.
2.7 Cocoa Touch
Cocoa Touch17 este o interfa ță de programare a aplica țiilor pentru dezvoltarea programelor ce rulează pe
iPhone, iPod touch și iPad de la Apple. Acesta include multe dintre modelele utilizate pentru Mac, dar au fost
17 cocoa -touch
17
create special pentru interfa ța tactila și optimizare. Acesta permite utilizarea de hardware și caracteristici care
nu sunt găsite în computerele Mac OS X și prin urmare, sunt unice pentru gama de dispozitive IOS.
Unele dintre principalele caracteristici și tehnologii de cocoa Touch sunt:
– Core Animation
– Multitasking
– Identificatori de gesturi
Cocoa Touch oferă cadrele cheie pentru dezvoltarea de aplicații care rulează pe dispozitive IOS. Unele
dintre aceste cadre cheie sunt:
– Fundația Kit
– UIKit (pe baza Application Kit)
– Kit Joc
– iAd
– Kit Harta
UIKit oferă instrumentele de bază necesare pentru a implementa aplicații grafice , determinate de un
eveniment în iOS . UIKit se bazează pe aceeași infrastructură cadru găsită pe Mac OS X, inclusiv manipulare
dosar , crearea de rețele, construirea de stringuri , și mai mult .
Interfață unică a iOS înseamnă că Cocoa Touch are un design unic. Folosind UIKit accesăm controale
speciale GUI, butoane , și vederea full-screen. De asemenea, putem controla accelerometrul și gesturile multi –
touch.
O mare parte din Cocoa Touch este implementată în Obiectiv -C, un limbaj orientat pe obiecte, care este
compilat pentru a rula la viteză mare. Deoarece Objective -C este un superset al C, este ușor de combinat
limbajele C și C + + în aplicațiile realizate. În timpul rulării aplica ției, Objective -C inițiază obiecte le pe baza
executării logice – nu doar în modurile definite în timpul compilării .
În plus față de UIKit , Cocoa Touch include tot ce este necesar pentru a crea aplicații de clasă mondială ,
de la grafica 3D , la audio profesional , la rețea , și chiar API-uri speciale de acces la dispozitivul de control al
camerei sau returnarea locației utilizând hardwarul GPS .
18
2.8 App Store
App Store este o platformă de distribuție digitală pentru iOS, dezvoltată și întreținută de către Apple.
Acest serviciu permite utilizatorilor să caute și să descarce aplicații, care au fost dezvoltate cu iOS SDK
sau Mac SDK și publicate prin intermediul Apple. În funcție de aplicație, ele sunt disponibile fie gratuit sau
contra cost. Aplicațiile pot fi descărcate direct pe dispozitiv sau pe un PC sau Mac prin iTunes. 30% din
veniturile de la magazin merg la Apple și restul de 70% din venituri la producătorul de app.
App Store poate fi accesibil de pe iPhone , iPod Touch și iPad utilizând aplicația App Store . De
asemenea, aceast a este și singura modalitate de a descărca aplicații native iOS direct pe dispozitiv fără ca
dispozitivul să fie deblocat . Aplicțiile web pot fi instalate pe dispozitivele deblocate , ocolind App Store în
întregime , dar acestea tind să fie mai puțin funcționale .
În februarie 2011, Apple a anunțat noul serviciu pe baz ă de abonament că va permite dezvolta torilor
setarea perioadei și prețul abonamentului . Mai interesant este faptul că Apple va permite acestora
distribui rea abonamentelor direct de pe site-urile lor, caz în care veniturile nu vor fi împărțite cu Apple .
Din graficul nr.3 putem vedea mod ul de creștere exponențial al aplicațiilor disponibile. Numărul total de
aplicații curent disponibile pentru descărcare este de 371.185, iar numărul aplicațiilor inactive este de 91.031.
Astfel, putem afla că numărul total de aplicații urcate în App Store este de 462.216, iar numărul de
dezvoltatori înregistrați se ridică la 79.790.18
Graficul nr.4 prezintă distribuția aplicațiilor pe categorii. Astfel, din 371.185 aplicații, 59.915 dintre
acestea sunt jocuri, urmate la mică distanță de cărțile digitale cu un număr de 53.529 aplicații. Aplicațiile de
divertisment se claseză pe locul al treilea cu 40.476 aplicații. Cele mai puțin dezvoltate aplicații sunt cele de
simulare, strategie și instrumentele pentru dezvoltatori, aceste fiind re prezentate d e doar o singură aplicație
pentru fiecare.19
18 Date Aplicatii din App Store
19 Distributia aplicatiilor
19
Grafic nr.3 Evoluția în tim p al aplicațiilor din App Store
Grafic nr.4 Distribuția pe categorii a aplicațiilor
Nr. Apps0100000200000300000400000
2008-05
2008-07
2008-09
2008-11
2009-01
2009-03
2009-05
2009-07
2009-09
2009-11
2010-01
2010-03
2010-05
2010-07
2010-09
2010-11
2011-01
2011-03Nr. Apps
Nr. Jocuri
Nr. Total
Jocuri
14%
Cărți
13%
Divertisment
10%
Educatie
8% Stil de viață
7% Utilități
6% Călătorii
5%
Musică
4% Referece
3% Afaceri
3% Sport
3% Știri
3% Productivitate
2% Sănătate
2% Navigare
2% Forografie
2% Finanțe
2% Networking Social
2% Medical
2% Vremea
0%
Diverse
5% Carte
3% Instrumente pentru
dezvoltatori
0% Strategie
0% Simulare
0%
20
Graficul nr.5 prezintă numărul de aplicații trimise către Apple pentru a fi aprobate și adăugate în App
Store. Numărul de aplicații este într -o continuă creștere, cu perioade peste medie înregistrate de sărbători.20
Toate aplicațiile trebuie să se conformeze unui set de reguli pentru a fi acceptate. Timpul de verificare,
variază de la aplicație la aplicație, media în ultimele luni variind între 4 și 7 zile, față de 15 zile în 2010.
Grafic nr.5 Numărul de urcă ri de aplicații pe lună
2.9 SQL
Limbajul SQL21 (Structured Query Language) este limbajul utilizat de majoritatea sistemelor de baze de
date rela ționale (SGBDR) pentru definirea și manipularea datelor.
Limbajul SQL a fost dezvoltat inițial de către IBM în anul 1970 ca un sistem de gestiune a bazelor de
date relaționale . În anul 1979 Oracle a introdus prima variantă comercială a limbajului SQL. În 1987
Institutul National de Standarde (ANSI) a elaborat standardul limbajului SQL. Ulterio r au avut loc mai mult e
revizii ale acestui standard.
20 Urcarea de aplicatii in Apps Store
21 SQL 0500010000150002000025000
Nr. Apps
Nr. Jocuri
21
Limbajul SQL este sub-divizat în mai multe elemente de limbaj , incluzând :
– Clauze , care sunt componente ale declarații lor și interogări lor. (În unele cazuri , acestea sunt
opționale )
– Expresii , care pot produce fie valori scalare sau tabele constând din coloane și rânduri de date
– Predicate , care precizează condițiile de evalua re, care pot fi de tip SQL 3VL sau Boolean (adevărat /
fals) și care sunt utilizate pentru a limita efectele declarațiilor și ale interogări lor, sau pentru a
schimba fluxul unui program
– Interogări , care prelu crează datele pe baza unor criterii specifice . Acesta este cel mai important
element al unui SQL
– Declarații ce pot controla tranzacții le, fluxul unui program , conexiuni le, sesiuni le sau diagnosticare a
2.10 XML
Extensible Markup Language22 (XML) este un set de reguli pentru documentele de codare în formă
recunoscută de mașină. Aceasta este definită în specificația XML 1.0, produsă de W3C și a mai multor alte
specificații , toate standardele fiind open -source .
Multe interfețe de programare a aplicațiilor (API-uri) au fost dezvoltate pentru a prelucra datele XML
pentru că sunt folosite extensiv de către dezvoltatori și există mai multe sisteme schema ce ajută în defi nirea
standardului XML .
Detectarea unui fișier XML se poate face direct din header, unde sunt declare ? unele informații despre
document.
<?xml version="1.0" encoding="UTF -8" ?>
Corpul fișierului este format din diferit e tag-uri definite de utilizator atunci când cre ează fișierul.
<items source = "http://www.graphicvision.ro/cipri" count = " 2" ><examen_item nr =
"1" grupa = "501" sala = "523" data = "02 -06-2011" ora = "12:00:00" materia = "Baze de
date II" />< examen_item nr = "2" grupa = "501" sala = "523" data = "03 -06-2011" ora =
"10:00:00" materia = "Ingineria programarii" /> </items>
22 XML
22
Capitolul III. Proiectarea bazei de date
3.1 MySQL
MySQL este un sistem de gestiune a bazelor de date relațional , produs de compania suedeza MySQL AB
și distribuit sub Licența Publică Generală GNU . Este cel mai popular SGBD open -source la ora actuală .
Deși este folosit foarte de s împreună cu limbajul de programare PHP, cu MySQL se pot construi aplicații
în orice limbaj major. Există multe scheme API disponibile pentru MySQL ce permit scrierea aplicațiilor în
numeroase limbaje de programare pentru accesarea bazelor de date MySQL, cum are fi: C, C++, C#, Java,
Perl, PHP, Python, FreeBasic, etc., fiecare dintre acestea folosind un tip s pefic API.
Pentru a administra bazele de date MySQL se poate folosi modul linie de comandă sau, prin descărcare
de pe internet, o interfață grafică: MySQL Administrator și MySQL Query Browser . Un alt instrument de
management al acestor baze de date este aplicația gratuită, scrisă în PHP, phpMyAdmin .
MySQL poate fi rulat pe multe dintr e platformele software existente: AIX, FreeBSD, GNU/Linux, Mac
OS X, NetBSD, Solaris, SunOS, Windows 9x/NT/2000/XP/Vista.23
3.1.1 phpMyAdmin
phpMyAdmin este un instrument open source scris în PHP creat pentru administrarea bazelor de date
MySQL . Se pot efectua diferite sarcini , cum ar fi crearea, modificarea sau ștergerea bazelor de date , tabele ,
câmpuri sau rânduri , executarea declarațiilor SQL sau gestionarea utilizatorilor și permisiunilor . Utilizarea se
face din browserul web.24
23 MySQL
24 PhpMyAdmin
23
3.2 Baza de date
3.2.1 Crearea bazei de date
Baza de date este hostat ă de un server la adresa www.graphicvision.ro . După autentificare la adresa
www.graphicvision.ro/cpanel avem acces la toate optiunile serverului. Crearea bazei de date se realiz eaza
usor cu ajutorul unei optiuni, oferita de server.
Figura nr.8 Crearea unei baze de date noi utilizând MySQL Databases Wizard
3.2.2 Crearea utilizatorilor
In continuare, se crează un utilizator și este adăugat la baza de date. Odată creată, baza de date poate fi
accesată utilizând phpMyAdmin.
Figura nr.9 Crearea utilizatorului ș i adăugarea lui la baza de dat e
24
3.2.3 Crearea tabelelor
În continuare vom crea tabelele ce vor face parte din baza de date. Pentru realizarea scopului acestei
aplica ții, vor fi create 8 tabele, 7 dintre ele vor conține toate informațiile, iar tabela Members va fi utilizată
pentru a restricționa accesul la pagina d e internet care poate modifica conținutul bazei de date.
Figura nr.10 Baza de date și tabelele conținute
Crearea de tabele se poate face în dou ă moduri. Putem utiliza opțiunile furnitate de interfața
phpMyAdmin sau rulând linii de cod SQL. Pentru crearea tabelei BDStu denti codul SQL este urm ătorul:
CREATE TABLE `rgra0683_disertatie`.`BDStudenti`
(
`nrmatricol` INT( 5 ) NOT NULL AUTO_INCREMENT PRI MARY KEY ,
`nume` VARCHAR( 20 ) NOT NULL ,
`cnp` BIGINT( 20 ) NOT NULL ,
`grupa` INT ( 5 ) NOT NULL ,
)
Tabela BDStudenti conține următoarele câmpuri :
– nrmatricol, tip int, auto incrementată și cheia primară a tabelei
– nume, tip varchar (text) –înregistr eză numele si prenumele studentilor
25
– cnp, tip bigint – înregistrează codul numeric personal al studentului
– grupa, tip int – înregistrează numărul grupei în care este repartizat studentul, cheie externă
Figura nr.11 Structura tabelei BDStudenti
Tabela Grupe are următoare structură :
– idg, tip int, auto incrementată și cheia primară a tabelei
– facultatea, tip varchar (text) – înregistrează denumirea facultății
– anul, tip int – înregistrează anul de studiu în care se află studentul
– seria, tip int – înregistrează numărul seriei în care se află studentul
– grupa, tip int – înregistrează numărul grupei în care este repartizat studentul
Tabela Mesaje va înregistra toate mesajele trimise de profesori sau secretariat. Structura ei este
următoarea :
– idm, tip int, auto incrementată și cheia primară a tabelei
– titlul, tip varchar (text) – reprezintă o descrier scurtă a conținutului mesajului
– continut, tip varchar (text) – înregistrează conținutul mesajului
– grupa, tip int, înregistrează numărul grupei în care este repartizat studentul, cheie externă
Tabela Discipline conține denumirile cursurilor și profesorii ce le vor susține . Structura ei este
următoarea:
– idc, tip int, auto incrementată și cheia primară a tabelei
– denumire, tip varchar (text)
– profesor, tip varchar (text)
26
Tabela Examene este creată pentru a înregistra toate detaliile legate de susținerea unui examen :
– ide, tip int, auto incrementată și cheia primară a tabelei
– grupa , tip int – înregistrează numărul grupei în care este repar tizat studentul, cheie externă
– sala, tip int – reprezintă numărul sălii în care se va susține examenul
– data, tip varchar(text)
– ora, tip time
– idc, tip int, cheie externă pentru tabela Cursuri – face legătura cu denumirea disciplinei examinat ă
Tabela Note înregistrează rezultatele obținute de studenți la evaluare, iar structura ei este următoarea :
– idn, tip int, auto incrementată și cheia primară a tabelei
– nrmatricol, tip int, cheie externă pentru tabela BDStudenti – face legătura cu numele studentului
– ide, tip int, cheie externă pentru tabela Examene – face legătura cu disciplina examinată
– nota, tip int – înregistrează nota obtinută la examenul susținut
Tabela Orare conține orarul grupelor de student:
– ido, tip int, auto incrementată și cheia prima ră a tabelei
– grupa, tip int – cheie externă pentru tabela Grupe – reprezintă grupa al cărui orar este înregistrat
– ziua, tip varchar(text) – înregistrează ziua pentru care este orarul
– ora, tip time
– sala, tip int – reprezintă numărul sălii în care se va susț ine disciplina
– idc, tip int, cheie externă pentru tabela Cursuri – face legătura cu denumirea disciplinei
– tip, tip varchar – înregistrează tipul disciplinei (curs sau seminar)
Tabela Members conține utilizatori ce au acces la pagina web de administrare a baze de date :
– id, tip int, auto incrementată și cheia primară a tabelei
– username, tip varchar(text) – reprezintă numele folosit la logare
– password, tip varchar(text) – reprezintă parola folos ită la logare
– nume, tip varchar(text) – conține numele de familie al utilizatorului
– prenume, tip varchar(text) – conține prenumele utilizatorului
27
3.2.4 Popularea tabelelor cu date
Adăugarea de date se poate face în cel puțin 3 feluri. Prima variantă este utilizarea tab -ului Insert din
tabela în care vrem să să introducem datele. Acestă metodă este bună dacă nu avem de adăugat multe
înregistrări, deoarece la un volum de muncă mare, utlizarea acestei metode poate deveni foarte consumatoare
de timp și s e poate greși foarte ușor.
Figura nr.1 2 Introducerea în registrărilor prin metoda Insert
A doua metodă este utilizarea codului SQL. Această metodă este asemănătoare cu metoda prezentată
anterior. Pentru un număr mic de înregistrări metoda este foarte eficientă, dar dacă volumul de muncă este
mare atunci pot apărea greșil i și o singură vi rgulă uitată sau pusă greșit strică toată inserarea. Codul SQL
pentru inserare a valorilor în tabelă este următorul:
INSERT INTO `rgra0683_disertatie`.`test` (`nrmatricol` ,`cnp` ,`nume` ,`grupa` )
VALUES (NULL , '1870101330101', 'Doroftei Ciprian', '501' ) ,
(NULL , '1870202330202', 'Pepelea Razvan', '501' );
(NULL,’1870303330303’,’Buliga Bogdan’,’501’) ;
28
Metoda cea mai eficientă este importarea unui fișier ce conține toate înregistrările tabelei respective. Cea
mai utilizată metodă este importarea unui CSV.
Fișierul cu valori separate prin virgulă (CSV25) este un set de formate de fișiere utilizate pentru stocarea
datelor de tabel, în care numerele și textul sunt stocate în formă textuală ce poate fi citit într-un editor de text.
Liniile în fișierul text reprezintă rânduri ale unui tabel , iar virgulile dintr -o linie separă elementele . De obicei
prim a linie conține numele câmpurilor tabelei, dar acest lucru nu este obligatoriu. Pentru tabela BDStudenti
un fișier CSV arată astfel:
Nrmatricol,cnp,nume,grupa
,1870101330101,Doroftei Ciprian,501
,1870202330202, Pepelea Razvan,501
Această metodă este cea mai simplă și nu lasă loc de greșeli de inserare. În funcție de opțiunile
disponibile, se pot urca și alte tipuri de fișiere, cum ar fi SQL, XML, XLS sau XLSX.
Figura nr.1 3 Importare de fișier în baza de date
25 Fisier CSV
29
3.3 Structura relațională dintre tabele
În figura nr.13 se pot vedea relațiile existente între tabele. Tabela Members nu este legată de nici o tabelă
deoarece scopul ei este altul. În ea se stochează informațiile de acces ale utilizatorilor, numele utilizatorulu i,
respectiv parola de acces.
Figura nr.1 4 Relațiile existente între tabele
3.4 Interogarea bazei de date
Interogarea bazei de date se realizează utilizând diverse scripturi. Acestea conțin cod PHP, HTML, SQL
și alt limbaj dacă este necesar. Primul lucru și cel mai important este conectarea la baza de date în momentul
rulării scriptului. Fără conectare, rularea interogării se face in zadar, acesta neavând ce returna.
De obicei se cre ează un script al cărui scop este de a realiza conectarea la server. Scriptul folosit în
această aplicație este Config.php și conține următoarele:
30
<?php
define('DB _HOST', 'localhost');
define('DB_USER', ' user);
define('DB_PASSWORD', 'pass');
define('DB_DATABASE', 'rgra0683_disertatie');
?>
Config.php este apelat de celelalte scripturi, astfel nu mai este necesar includerea acestor linii de cod în
fiecare script creat. Pentru atingerea scopului aplicației au fost create 2 tipuri de scripturi. Cele ce sunt
utilizate de cătr e aplicația i Phone și scriptul paginii de internet.
Scripturile pentru iPhone sunt create să primească diferite variabile prin metoda POST, variabile ce sunt
trimise din interfața terminalului iPhone. Cu aceste variabile, se realizează interogarea bazei de date, iar
răspunsul primit în urma interogării este modificat în funcție de necesitate. Majoritatea scripturilor vor
returna un răspuns de tip XML ce va fi citit de aplicația de pe terminal, modificat și într -un final afișat
rezultatul pe ecran.
POST26 este una dintre multele metode de cereri suportate de protocolul HTTP. Metoda de cerere POST
este utilizată atunci când clientul trebuie să trimită date la server , ca parte a unei cereri , asemănător cu
urcarea unui fișier sau trimiterea unui form ular completa t.
În contrast cu metoda GET, cerere în care numai o adresă URL și anteturile sunt trimise la server ,
solicitările de tip POST includ , de asemenea, un corp al mesajului . Acest lucru permite o lungime de date
arbitrare de orice tip ce pot fi trimise la server .
Codul utilizat pentru a crea răspunsul la interogare este de genul:
// XML to return.
$xml = '';
// Counter for number of mountains returned.
$item_count = 0;
// Each element contains data for one item.
$items = array();
26 POST(HTTP)
31
// Each line read .
foreach($c as $line)
{
// Strip newline at end of line and break line by comma delimiter and
// append to $items.
$items[] = explode( ',', rtrim($line));
}
// Each item.
for($x = 0 ; $x < mysql_num_rows($resultID) ; $x++)
{
$row = mysql_fetch_a ssoc($resultID);
$item_count++;
// Create the item_item node.
$xml .= '<item_item ';
$xml .= 'nr = "' . $item_count . '" ';
$xml .= 'grupa = "' . $row['grupa'] . '" ';
$xml .= 'materia = "' . $row['denumire'] . '" ';
$xml .= 'nume = "' . $row['nume'] . '" ';
$xml .= 'nota = "' . $row['nota'] . '" ';
$xml .= '/>';
}
// Add items close node.
$xml .= '</items>';
// Create mountains open node.
$xml_items = '<items ';
$xml_items .= 'source = "http://www.graphicvision.ro/cipri" ';
$xml_items .= 'count = "' . $item_count . '" ';
$xml_items .= '>';
// Add mountains open node.
$xml = $xml_items . $xml;
echo $xml; // Return xml
32
Capitolul IV. Pre zentarea Aplicației
4.1 Aplicația iPhone
Aplicația iPhone realizată este formată din 2 părți : StudentApp, respectiv ProfesorApp. Scopul acestei
aplicații este de a îmbunatăț i relația Universitate – Profesor – Student. Acest lucru este posibil dacă s tudentul
are la îndemână o modalitate de a fi în orice moment informat în privința orarului și modificăril or ce pot
apărea, data, ora, sala examenelor sale și cel mai important , notele obținute pentru fiecare disciplină.
4.2 StudentApp
StudentApp a fost realizat din punct ul de vedere al studentului și a cerințelor sale. Aplicația iPhone
conține 5 tab -uri fiecare cu un anumit scop:
– Aflarea Numărului Matricol personal și a grupei din care face parte utilizatorul
– Vizualizarea ultimelo r noutăți, sub form ă de mesaje
– Aflarea orarului aferent unei anumite zile din săptamână
– Aflarea examenelor și datel or legate de acestea
– Aflarea notelor
4.2.1 Modulul Date de identificare
Acest modul returnează informațiile de identificare pentru student. Utilizatorul introduce Codul Numeric
Personal (CNP) și va primi ca răspuns Numărul Matricol și Grupa din care face parte. Numărul matricol și în
special numărul grupei vor fi folosite în celelalte module.
În figura nr.14 este prezentat , în trei pași modul de utilizare. Imaginea din stânga prezintă modul la prima
încărcare. Sunt vizibile câmpul ce specifică ce este necesar de introdus și un buton. Imaginea din mijloc
prezintă ecranul terminalului în momentul introducerii cnp -ului. Când am intr odus tot numărul, ap ăsăm
butonul, iar imaginea din drepta prezi ntă rezultatul. Tastatura dispare, iar pe ultimul rând devin vizibile
33
informațiile legate de numărul matricol și numărul grupei. Dacă cnp -ul introdus nu este corect, un mesaj va
explica acest l ucru, solicitând utilizatorul ui să reintroducă un cnp valid.
Figura nr.1 5 Modulul de Identifi care și cum funcționează acesta
4.2.2 Modulul Mesaje
În acest modul, utilizatorul poate afla ultimele noutăți. Acestea sunt de forma unor mesaje, cu titlu și
conținut și fiecare are ca destinație o anumită grupă. Modul de funcționare este asemănător cu cel prezentat la
modulul anterior, doar că în loc de cnp vom introduce numărul grupei aflat anterior.
Figura numărul 15 prezintă modul de utilizare. Imaginea din stânga prezintă modulul în momentul
inițializării. Din nou avem un câmp, ce solicită introducerea numărului grupei, un buton pentru iniți alizare și
un tabel gol. . Imaginea din mijloc prezintă rezultatul. Tabelul este populat, iar tastatura a dispărut.
Înregistrările din tabel sunt în ordine descresc ătoare a introducerii lor in baza de date. Liniile din tabel conțin
titlul mesajului, iar în urma apăsării unei linii, apare un pop -up ce conține și conținutul mesajului. Pentru a
reveni, se apasă pe butonul Close. Pentru a vizualiza alt mesaj, procedăm la fel ca până acum. Selectăm
celula cu mesajul dor it și pop -ul va apărea imediat.
34
Figura nr.1 6 Modulul Mesaje și cum funcționează acesta
4.2.3 Modulul Orar
Utilizând acest modul, studentul poate afla orarul grupei sale într -o anumită zi. De ace astă dată este
necesar de introdus date în dou ă câmpuri, numărul grupei, respectiv ziua săptămânii pentru care se dorește
aflarea orarului.
Rezultatul este prezentat într -un tabel cu denumirea disciplinei pe fiecare linie. Modul de func ționare este
identic cu cel al modulului anterior. Se lectând o celulă, un pop -up devine vizibil cu informațiile l egate de
disciplina respectivă, ora și sala de desfășurare.
35
Figura nr.1 7 Modulul Orar și cum funcționează acesta
4.2.4 Modulul Examene
În acest modul utlizatorul poate afla toate informațiile legate de examenele care trebuie să le susțină. Modul de
funcționare este același ca și până acum. După ce este introdus numărul grupei, tabelul este populat , iar în urma
selectării unei celu le, detaliile examenului devin vizibile.
4.2.5 Modulul Note
Acest modul prezintă notele studentului al cărui număr matricol a fost introdus. Pentru a afla nota
obținută la o disciplină trebuie să selectăm o celulă, rezultatul fiind vizibil în pop -up.
36
Figura nr.18 Modulul Examene și cum funcționează acesta
Figura nr.1 9 Modulul Note și cum funcționeză acesta
37
4.3 ProfesorApp
ProfesorApp a fost dezvoltat pentru a fi ut ilizat de către profesori pentru a ține legătura ușor cu studenții.
Aplicația are 4 module:
– Aflarea notelor unei grupe la o anumită disciplină
– Adăugarea în baza de date a informațiilor legate de un examen
– Adăugarea în baza de date a unui mesaj
– Adăugarea notei obținute la un examen a unui student
4.3.1 Modulul Rezultate Exa men
Acest modul are scopul de a prezenta utilizatorului, rezultatele obținute la o disciplină de către studenții
unei grupe, în funcție de o anumită notă. Rezultatul prezentat sub formă de celule în tabel, reprezintă
studenții care au obșinut o notă mai mare decât cea introdusă în formular. Modul de ut ilizare este identic cu
cel al aplicației StudentApp. Se introduce numărul grupei, disciplina și nota.
Figura nr.20 Modulul Rezultate Examen și cum funcționează
38
4.3.2 Modulul Adăugare Date Examen
Acest modul este dezvoltat pentru a facilita introducerea detaliilor legate de un examen în baza de date.
Pentru o înregistrare reușită, este necesar ă introducerea corectă a datelor în fiecare dintre cele 5 câmpuri.
Data trebuie s ă fie în format zi ua-luna-an, altfel înregistrarea examenului este oprită. Dacă toate datele
introduse sunt corecte, atunci un mesaj va confirma înregistrarea în baza de d ate, altfel mesajul va îndruma
utilizatorul spre a rezolva problema.
Figura nr. 21 Modulul Adăugare Date Examen și cum funcționează
4.3.3 Modulul Comunicare cu Studen ții
Utilizând acest modul, profesorul poate anunța studenții unei grupe despre modificări, afișare de examene
sau postarea notelor obținute la o anumită disciplină. După ce sunt introduse toate informațiile în câmpurile
corespunzatoare, se apasă butonul și un mesaj va informa utilizatorul despre reușita postării mesajului.
39
Figura nr. 22 Modulul Comunicare cu Studenții și cum funcționează
4.3.4 Modulul Adăugare Notă Student
Acest modul poate fi folosit pentru a adăuga nota obtinută de un student la o anumită disciplină. Pentru ca
introducerea datelor să fie validată, trebuie completate toate câmpurile c orect, iar eventualele greșeli vor fi
atenționate cu un mesaj pe ecranul terminalului.
Pentru introducerea unei grupe întregi de studenți, este recomandat să se utilizeze pagina de administrare
a bazei de date, de unde se poate face import a unui fi șier CSV direct în tabela dorită.
40
Figura nr. 23 Modulul Adăugare N ota Student și cum funcționează
4.4 A dministrare pe internet
Acest site a fost creat ca o alternativă la aplicația ProfesorApp. Funcționa lităățile oferite sunt similare cu
aplicația iPhone, dar fiind un site, acesta este destinat tuturor utilizatorilor înregistrați și nu este limitat de
marca terminalului, cum este cazul aplicațiilor prezentate anterior.
Site-ul este format din 3 pagini principale:
– Interogarea bazei de date și afișarea rezultatului
– Importarea unui fișier CSV direct în tabela dorită din baza de date
– Introducerea înregistrărilor pe rând
Pentru a accesa pagina de administrare, navigăm la http://www.graphicvision.ro/cipri/admin.php , sau pe
oricare dintre celelalte 2 pagini Import.php, respectiv Inser ări.php.
Din motive de securitate, toate paginile sunt private, accesul fiind posibil doar în urma unei autentificări.
41
4.4.1 Pagina de l ogin
Dacă este prima oară când este accesată pagina, am apăsat butonul de Logout înainte de a naviga spre alt
site sau a expirat sesiunea, atunci utilizatorul va fi redirecționat automat spre pagina de Login. Aici singuru l
lucru vizibil pe ecran sunt 2 câmpuri de autentificare username, respective password. După ce introducem
datele necesare, apăs ăm butonul. În acest moment este creată o sesiune de lucru ce ne va permite navigarea
între toate paginile website -ului.
Figura nr.2 4 Pagina de Login
4.4.2 Interogarea bazei de date
După autentificare, utilizatorul este redirec ționat automat către aceasta pagina. Aici are posibilitatea
interogării bazei de date după anumite criterii, iar rezultatul este afișat pe ecra n.
Figura nr. 2 5 Pagina de Interogări
42
4.4.3 Importarea în baza de date
Pagina este creată cu un singur scop, pentru a
actualiza baza de date cu un număr nelimitat de
înregistrări odată. Acest lucru este ușor de realizat.
Utilizatorul selectează tabela care va fi actualizată și
fișierul de format CSV.
Actualizarea funcționează doar cu fișiere de tip
CSV. Programul este setat să înceapă actualizarea
începând cu al doilea rând din fișier. Pe primul se
consideră a fi numele câmpuril or din tabelă, dar se poate lăsa gol, acest lucru neafectând rulare a programului.
Fișierul CSV se poate crea în editor de text sau salva direct din programul tabelar folosit. Fiecare linie
reprezintă un rând de înregistrări, iar fiecare element este despărțit de o virgulă. Este important ca ordinea
tipurilor de elemen te din fiecare rând să coincidă cu ordinea de inserare a elementelor în baza de date.
4.4.4 Pagina de inserări în baza de date
Această pagina ofer ă posibilitatea inserării în baza de date unei înregistrări. Funcționalitatea este
asemănatoare cu c ea prezentată în aplicația iPhone, ProfesorApp.
Figura nr.2 7 Pagina de Inserări în baza de date
Figura nr.26 Pagina de Importare
43
4.4.5 Înregistrare ut ilizator nou
Există posibilitatea înregistrării unui utilizator nou. Apăsând butonul Register, browserul este
redirecționat către noua pagin ă. Aici se completează câmpurile nume, prenume, username și password.
Programul verifică unicitatea username -ului introdus și ca parolele inserate să fie identice . Dacă totul este în
regulă, atunci datele noului utilizator sunt introduse în tabela Members din baza de date și urm ătorul pas este
autentificarea.
Figura nr.2 8 Câmpurile de înregistrare
44
Capitolul V. Concluzii
Scopul lucr ării de di zertație a fost de a demonstra îmbunătăți rea modul ui de comunicare dintre
Universitate – Profesor – Student. La momentul de față, pentru informare un student trebuie să verifice în
permanență avizierul, să meargă la se cretariat pentru informații sau să -l caute pe profesor.
Soluția propusă este una de noutate și relativ ușor de utilizat. Aceasta dorește să profite de tehnologia
existentă și de notorietatea terminalului iPhone pentru a oferi posibilitatea comunicării aproape în timp real
cu profesorul sau secretariatul facultății.
În primul capitol am prezentat compania care oferă această soluție. Deși este relativ nouă pe piață, nu are
mai mult de 3 ani existență, acest lucru nu este un impediment. P rincipalul atu sunt angajații, un grup de
persoane tinere, care nu au pierdut legătura cu cerințele urmării cursurilor unei universități. Exact acest lucru,
se va reflecta în aplicația creată.
În cadrul capitolului doi au fost prezentate tehnologiile ce fac din soluția oferită una de noutate.
Compania Apple este unul dintre cei mai importanți jucători pe piața de telefoane mobile inteligente, iar
Apple Store, magazinul virtual de aplicații este cel mai mare de acest gen. Astfel, alegerea acestui termi nal
pentru realizarea aplicației este logic.
Capitolul trei prezintă baz a de date care reprezintă modulul de bază al acestei aplicații. Fără ea, toate
funcționalitățile oferite de aplicați a iPhone sau website -ul de administrare sunt nule. Menținerea bazei de date
în stare bună de funcționare și cu actualizările la zi este foarte important. Baza de date folosită, conține 8
tabele : BDStudenti, Grupe, Orare, Cursuri, Examene, Note, Mesaje și Members. Fiecare tabelă are un scop
exact, dar la nivel macro b aza de date nu va funcționa corect fără una dintre ele.
Capitolul patru conține soluția informatică dezvoltată. Aceasta este împărțită în două. Prima parte este
reprezentată de aplicația iPhone. Cealalt ă parte este pagina web de administrare. Cele d ouă părți nu sunt
interdependente, dar fiecare depinde de posibilitatea conectării la baza de date. Astfel, o conexiune bună la
internet este obligatorie.
Aplicația iPhone este alcătuită din două subaplicații fiecare cu scop și tip diferit de proiectare.
StudentApp este dezvoltată din perspectiva studentului și ale necesităților sale. Aceasta are în componență 5
module, fiecare specializat în prezentar e unui tip de informație. ProfesorApp conține 4 module și a fost
45
dezvoltată pentru a ușura munca profesorului, acesta putând anunța studenții despre diverse modificări de
program, date de examinare sau notele obținute la diverse discipline direct de pe ter minalul mobil.
Pagina web de administrare reprezintă o modalitate diferită de conectare la baza de date, dar
funcționalitățile sunt asemănătoare cu cele ale aplicației iPhone. Totuși, aceasta nu mai este limi tată de marca
telefonului mobil propriu. În plus, din pagina web există posibilitatea introducerii notelor, orarul sau alte date
pentru o întreagă grupă de studenți odată sau chiar pentru toată universitatea.
În funcție de modul de primire a soluției în rândul studenților dar și al profesor ilor, aplicația poate fi
extinsă sau modificată , adăugîndu -se module noi , modificarea celor existente sau renunțarea la modulele
nefolosite. Acest lucru este ușor de realizat, aplicația fiind realizată din start pe module, iar modificarea sau
adăugarea unu ia este posibil fără complicații.
O altă modificare posibil de realizat este extinderea genurilor de terminale ce pot rula aplicația.
Telefoanele cu sistem de operare Android nu mai sunt de mult o noutate, iar Android Market, echivalentul
Apple Store , nu este cu mult mai prejos decât rivalul Apple, previziunile pentru viitor fiind o schimbare de
lider pe piața aplicațiilor pentru terminale mobile. Un alt sistem de operare este WindowsPhone, care deși
este la început de drum, poate deveni un competitor important odată cu încorporarea acestuia în terminalele
Nokia.
46
Bibliografie
1. Proiectarea sistemelor informatice : Metode sistemice, București Pro Universitaria , 2006 – C.
Botezatu
2. Proiectarea sistemelor informatice : Studii de caz, București Univers Juridic , 2005 – C. Botezatu, I .
Iacob
3. Bazele informaticii : Aplica ții în domeniul economic, București Pro Universitaria , 2006 – C.
Botezatu, C . Botezatu
4. Baze de date : Sistemul Access, București Pro Universitaria , 2006 – V. Chichernea
5. Sisteme informatice cu baze de date, București Pro Universitaria , 2006 – M. Moise
6. S.G.B.D. Oracle – Ghid aplicativ pentru proiectarea și realizarea soluțiilor informatice, 2007, pag. 11
– 195 București Pro Universitaria – I. Iacob
7. Proiectarea sistemelor informatice. Metode de realizare, București Sylvi , 2001 – V. Chichernea, C.
Botezatu, I. Iacob, C. Fabian, R. Mihalcea, S. Goron
8. Proiectarea sistemelor informatice orientată pe obiecte, București Pro Universitaria , 2007 –
V.Chichernea
9. Limbajul C / C++. Programare orientata obiect, Vol.2 , Editura UNIVERSITARA, 2006 – Daniela
Crisan
10. Structuri și obiecte în C/C++, Ed. CISON, București, 2000 – I. Smeureanu, I. Ivan, M. Dârdală
11. Aplicații software în business, Editura Universitară, București, 2007 – George Că ruțașu
12. "Programarea aplicațiilor WEB. Limbajul HTML. Elemente de Programare Javascript", Ed. Pro
Universitaria, București, 2006 – Crișan D.A., Tăbușcă A .
13. The iPhone Developer’s Cookbook: Building Applications with the iPhone SDK , Developer’s
Library, 2008 – Erica Sadun
14. The iPhone Developer’s Cookbook: Building Applications with the iPhone SDK 3.0 Second Edition,
Developer’s Library, 2009 – Erica Sadun
15. Beginning iPhone Development: Exploring the iPhone SDK, Apress, 2009 – Dave Mark, Jeff
LeMarche
16. Learn Objec tive-C on the Mac (Learn Series), Apressm 2009 – Mark Dalrymple, Scott Knaster
17. Documenta ția Apple
18. http://www.lynda.com/iPhone -3-tutorials/iphone -sdk-essential -training/48369 -2.html – iPhone SDK
Essential Training – Lynda.com
19. http://www.w3schools.com/html/default.asp
20. http://www.w3schools.com/css/default.asp
47
21. http://www.w3schools.com/sql/default.as p
22. http://www.w3schools.com/php/default.asp
23. www.wikipedia.org
24. www.apple.com
25. http://www.theappcodeblog.com/?p=493
26. http://www.conceitedcode.com/2010/06/using -nsurlconnection/
27. http://adeem.me/blog/category/iphone/tutorial -iphone/
28. http://www.edumobile.org/iphone/category/iphone -programming -tutorials/
29. http://www.raywenderlich.com/tutorials
48
Anexe
– Codul sursă getID.php
<?php
$dbhost = 'localhost';
$dbuser = ' user';
$dbpass = ' password';
$con = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mys ql');
$dbname = 'rgra0683_disertatie';
mysql_select_db($dbname, $con);
$cnp = $_POST['cnp'];
if($cnp==NULL ) die('Nu ai introdus CNP -ul');
if(mysql_num_rows(mysql_query("SELECT nrmatricol FROM `BDStudenti` where `cnp`='$cnp'")) < 1)
die("CN P-ul introdus nu este corect");
$id = mysql_fetch_array(mysql_query("SELECT nrmatricol, grupa, nume FROM `BDStudenti` where
`cnp`='$cn p'"));
$idn = $id['nume'];
$idnr = $id['nrmatricol'];
$idgr = $id['grupa'];
echo " $idn ai numarul matricol $idnr si esti in grupa $idgr";
mysql_close($con);
?>
49
– Codul sursă getMesaj.php
<?php
header("Content -type: text/xml");
$dbhost = 'localhost';
$dbuser = ' user;
$dbpass = ' pass';
$conn = mysql_connect($db host, $dbuser, $dbpass) or die ('Error connecting to mysql');
$dbname = 'rgra0683_disertatie';
mysql_select_db($dbname);
?>
<?
header("Pragma: no -cache" );
header("Content -Type: text/xml; charset=utf -8");
$grupa=$_POST['grupa'];
if($grupa==NULL) die('am murit');
$c=mysql_num_rows("Select * from M esaje where `grupa`='$grupa'");
$resultID=mysql_query("SELECT * FROM Mesaje WHERE `grupa`='$grupa' ORDER BY `Mesaje`.`idm`
DESC") or die('Error nu e in baza de date');
// XML to return.
$xml = '';
// Counter for number of mesaje returned.
$item_count = 0;
// Each element contains data for one mesaj .
$items = array();
// Each line read .
50
foreach($c as $line)
{
// Strip newline at end of line an d break line by comma delimiter and
// append to $ items .
$items[] = explode( ',', rtrim($line));
}
// Each item.
for($x = 0 ; $x < mysql_num_rows($resultID) ; $x++)
{
$row = mysql_fetch_assoc($resultID);
$item_count++;
// Create the student_item node.
$xml .= '<mesaj_item ';
$xml .= 'nr = "' . $item_count . '" ';
$xml .= 'grupa = "' . $row['grupa'] . '" ';
$xml .= 'titlu = "' . $row['titlu'] . '" ';
$xml .= 'continut = "' . $row['continut'] . '" ';
$xml .= '/>';
}
// Add items close node.
$xml .= '</items>';
// Create mesaje open node.
$xml_items = '<items ';
$xml_items .= 'source = "http://www.graphicvision.ro/cipri" ';
$xml_ite ms .= 'count = "' . $item_count . '" ';
51
$xml_items .= '>';
// Add mesaje open node.
$xml = $xml_items . $xml;
// Return xml
echo $xml;
mysql_close($conn);
?>
– Codul sursă pentru insertExamen.php
<?php
$dbhost = 'localhost';
$dbuser = 'user ';
$dbpass = 'password';
$con = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
$dbname = 'rgra0683_disertatie';
mysql_select_db($dbname, $con);
$grupa = $_POST['grupa'];
if($grupa==NULL) die('Nu ai introdus Grupa');
$sala = $_POST['sala'];
if($sala==NULL) die('Nu ai introdus Sala');
$data = $_POST['data'];
if($data==NULL) die('Nu ai introdus Data');
$ora = $_POST['ora'];
52
if($ora==NULL) die('Nu ai introdus Ora');
$m = $_POST['materia'];
if($m==NULL) die('Nu ai introdus Materia');
$arr=split(" -",$data); // splitting the array
$dd=$arr[0]; // first element of the array is month
$mm=$arr[1]; // second element is date
$yy=$arr[2]; // third element is year
If(!checkdate($mm,$dd,$yy)) {echo "Data introdusa nu este corecta, in troduceti in format zi -luna-an";}
Else {
if(mysql_num_rows(mysql_query("SELECT Cursuri.denumire from Cursuri where Cursuri.denumire LIKE
'%$m%'")) > 1)
die("Au fost gasite mai multe mat erii, fi mai precis.");
$m1 = mysql_fetch_array(mysql_query("SELECT Cu rsuri.idc from Cursuri
where Cursuri.denumire LIKE '%$m%'")) or die("Materia nu a fost gasita");
$idc = $m1['idc'];
mysql_query("INSERT INTO `Examene` VALUES (NULL,'$grupa','$sala','$data','$ora','$idc')",$con ) or die
('Error la inserare');
echo "Examenu l a fost adaugat";
}
mysql_close($con);
?>
53
– Extract din codul sursă pentru admin.php
<?php
require_once('auth.php');
?>
<!DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1 -transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http -equiv="Content -Type" content="text/html; charset=iso -8859 -1" />
<title>Admin Page</title>
<link href="loginmodule.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="10" border="0" a lign="left" cellpadding="2" cellspacing="0">
<tr><td><form action="Import.php" method="post">
<input type="submit" name="button1" id="button1" value="Import" />
</form></td>
<td><form action="Inserari.php" method="post">
<input type="submit" name="button2" id="button2" value="Inserari" />
</form></td>
<td><form action="register -form.php" method="post">
<input type="submit" name="button2" id="button2" value="Register" />
</form></td>
<td><form action="logout.php" method="post">
<input type="submit" name="button2" id="button2" value="Logout" />
</form></td></tr></table><p>
54
<?php
$dbhost = 'localhost';
$dbuser = 'user ';
$dbpass = ' password ';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql');
$dbname = 'rgra0683_disertatie';
mysql_select_db($dbname);
?>
<?
if(!isset($_POST['button1']))
{
?>
</p>
<p> </p>
<form action="" method="post">
<table width="300" border="0" align="center" cellpadding="2" cellspacing="0">
<tr><th><h1><strong>Interoga rea b azei de date</strong></h1></th> </tr>
<tr><th><strong>Studen tii dintr -o grupa</strong></th> </tr>
<tr><td>Grupa : <input type="text" name="grupa" id="grupa" />
<input type="submit" name="button1" id="button1 " value="Submit" /></td></tr></table> </form>
<? }
else {
$gr = $_POST['grupa'];
?> <p> </p>
55
<table width="300" border="1" align="center">
<th><?echo "Grupa:" .$gr;?></th></table>
<table width=" 300" border="1" align="center">
<tr><th>Nr matricol</th><th>Nume</th> </tr>
<?
$my = mysql_query("SELECT * from `BDStudenti` where `grupa`='$gr'");
while($d = mysql_fetch_array($my))
{
$nrm = $d['nrmatricol'];
$my2 = $d['nume'];
?>
<tr><td><? echo $nrm;?></td><td><? echo $my2;?></td> </tr>
<? } echo "</table>"
} ?>
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Disertatie Doroftei V. Mircea Ciprian [609880] (ID: 609880)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
