Tema Modelarea structurii unei unități școlare a fost aleasă din dorința [614818]
INTRODUCERE
Tema „Modelarea structurii unei unități școlare” a fost aleasă din dorința
de a facilita oricărei persoane interesate accesul la structura unei unități școlare
într-un mod interactiv astfel încât printr -un simplu „click” , pornind de la
Organigramă, să poată fi vizualizate toate compartime ntele organizatorice din
școală.
Aplicația permite utilizatorilor accesul rapid la o serie de informații cum
sunt: numele și numărul membrilor diferitelor compartimente sau atribuțiile
specif ice fiecărui responsabil sau membru al unui anumit compartiment,
comisie, etc..
Aplicația permite deasemeni actualizarea informațiilor de câte ori este
necesar atât asupra atribuțiunilor ce derivă din normativele și legislația în
vigoare cât și sub aspectul numărului sau numelor persoanelor dintr -un anumit
compartiment.
La realizarea modelării am utilizat „Baze de date Access” pentru
construirea structurii iar pentru interfața cu utilizatorul „Limbajul C#”.
Ca structură, lucrarea de față cuprinde o prezentare generală a „Bazelor de
date Access 2007” și a limbajului de programare „C#”, prezentarea aplicației,
concluzii, precum și bibliografia.
Considerăm ideea realizării unei astfel de ap licații binevenită deoarece:
– ușurează și modernizează activitatea compartimentului secretariat din
orice școală în ținerea evidenței persoanelor din structura organizatorică;
– facilitează accesul rapid a oricărei persoane interesate la numărul, numele
și calitatea fiecărei persoane dintr -un anumit compartiment din
organigramă;
– permite vizualizarea rapidă a relațiilor între diferite compartimente din
structură(de subordonare, colaborare etc.);
– permite vizualizarea rapidă a atribuțiilor fiecărui compartiment conform
legislației în vigoare precum și a regulamentului de ordine interioară;
– permite actualizarea tuturor datelor în fiecare an școlar sau de căte ori se
impune atât din punct de vedere legislativ cât și sub aspectul componenței
și a membrilor din fieca re structură.
Cap. 1 Baze de date Access 2007 – Prezentare generală și aplicație
pentru o agenție de turism.
1.1. Generalități
Microsoft Access 2007 este aplicația de management al bazelor de date
pusă la dispoziție de suita Microsoft Office. Spre deosebire de Excel, Access va
permite să stocăm și să administrăm volume mari de date, organizate în unități
numite înregistrări. O bază de date Access constă din următoarele obiecte:
Tabele – conțin toate înregistrările
Interogări – localizează înregistrări specifice
Formulare – afișează înregistrările din tabele, una cîte una
Rapoarte – tipăresc loturi de înregistrări
Pagini de acces la date – pun la dispoziție date prin intermediul paginilor
Web
Macrocomenzi – acțiuni automate uzuale
Module – stochează declarații si proceduri Visual Basic, care ne permit să
scriem programe pentru bazele de date, astfel încât acestea să poată
interacționa cu alt software.
Utilitarele de asistență din aplicația Access asigură un proces si mplu, pas cu
pas, de configurare a tabelelor, formularelor, paginilor de acces la date,
rapoartelor și interogărilor.
Lansarea sistemului MS Access 2007
SGBD MS Access funcționează numai în mediul Windows. Există mai
multe modalități de lansar e a sistemului Access, una din ele fiind executarea
consecutivă a acțiunilor Start/All Programs(sau Programs)/Microsoft
Office/Microsoft Office Access 2007.
Ca rezultat, obținem o fereastră, asemănătoare cu cea din figura 1 .
Figura 1. Lansarea sistemului Access
Crearea / accesarea unei baze de date
După cum am mai menționat, elementele principale ale unei baze de date sunt
tabelele. Dar o bază de date poate conține și alte elemente care se creează pe
baza tabelelor (interogări, formulare, rapoarte etc. ). Aceste elemente, împreună
cu tabelele, formează așa -numitele clase de obiecte ale bazei de date.
Pentru a crea o bază de date nouă, în zona Open a ferestrei reprezentate în
figura 1 alegem opțiunea Create , iar în caseta urmatoare Table Design –
opțiunea Blank Database(există și opțiunea de a utiliza Template -uri, adică
baze de date prerealizate). Putem, de asemenea, utiliza comenzile de
creare/accesare a bazelor de date din meniul File (figura 2) .
Figura 2
1.2. Obiectele bazelor de date relaționale
O baza de date conține trei categorii de obiecte:
– de memorare a informa_iei (tabele);
– de consultare, actualizare, vizualizare, introducere, listare a informației din
tabele (interogare, raport, formular);
– de acțiune ce au ca scop obținerea de baze de date dedicate (comanda macro,
modulul).
Din punct de vedere al utilizatorului un obiect se poate găsi în una din
două stări:
– închis în care utilizatorul nu are acces la structura obiectului sau informația
conținuta de acesta;
– deschis î n care utilizatorul are acces la structura sau informația obiectului.
Un obiect poate fi deschis într -unul din două moduri:
– modul structura în care utilizatorul poate crea sau modifica structura
obiectului;
– modul conținut în care utilizatorul poate introduce, actualize sau vizualiza
informația conținuta de obiect.
1.3. Interfața utilizator -aplicație (IUA – fig 3)
Principalele elemente ale IUA pentru sistemul de gestiune al bazelor de date
relaționale Office Access 2007 sunt:
1. Butonul Office: acces la func_ii de salvare, deschidere,creare baza de
date, tiparire obiecte baza de date, setare mediu lucru;
2. Meniul principal: conține opțiuni ce au atasate grupuri de funcții înrudite
în zona cu instrumente, funcții re feritoare la operații specifice ce se execută în
zonele de gestiune
sau de lucru;
3. Zona instrumentelor: conține instrumentele (funcțiile) atasate opțiunii
active din meniul principal;
4. Zona de gestiune a obiectelor: zona ce conține obiectel e bazei de date;
5. Zona de lucru: zona în care obiectele bazei de date se deschid în mod
conținut sau mod structură.
Figura 3.
1 2 3
4
5
2.Tabele Access.
2.1. Crearea unui tabel
Tabelul este elementul (obiectul) bazei de date în care sunt stocate datele,
fiind format din coloane denumite câmpuri si linii denumite înregistrari. Capatul
de tabel formează structura tabelului sau în sens larg structura bazei de date
(fig.4).
Figura 4. Modul de definire a structurii unui tabel utilizând cda. „ Design View”.
Dacă selectăm opțiunea Design View, obținem o fereastră (fig.5) în care definim
cîmpurile tabelului și caracteristicile lor.
Figura 5.Definirea câmpurilor tabelului .
2.2. Tipuri date(figura 6 – 1)
Structura unui tabel este constituita din câmpuri identificate în mod unic
printr -un nume, fiecare camp indicând un anumit tip de date de o dimensiune
bine stabilita, putând avea atasata o descriere.
Tipurile de date ce pot fi stocate în tabele sunt:
– text (Text): reprezinta un sir de caractere cu dimensiunea cuprinsa între 1 si
255 de caractere;
– memo (Memo): reprezinta un sir de caractere de dimensiune maxima 64KO
(64*1024 caractere) adica aproximativ 16 pagini de text scris;
– numar (Number): reprezinta numere întregi pozitive si/sau negative de diferite
dimensiuni (ex.: byte – numere întregi pozitive cu valori 0 ÷ 255, integer –
numere întregi pozitive si neg ative cu valori -32768 ÷ 32767, long – numere
pozitive si negative cu valori cuprinse între -/+ 2 miliarde) si numere zecimale
pozitive si negative (ex.: single – precizie de reprezentare pe 7 cifre, double –
precizie de reprezentare pe 14 cifre);
– data/t imp (Date/Time): reprezinta un sir de caractere având semnificația datei
calendaristice si/sau orei (ex.: 01.01.2013 12:00);
– moneda (Currency): accepta valori pâna la 15 cifre si valori zecimale ale
acesteia pe patru cifre semnificative. Moneda este cea a _arii pentru care s -a
setat op_iunea specifica a elementelor regionale ale sistemului;
– numar cu incrementare automată (Autonumber): este un număr întreg pozitiv
reprezentat intern pe 4 bytes. Caracteristica principala a sa este ca se modifică cu
o unit ate la fiecare adaugare de înregistrare;
– logic (Yes/No): poate avea doua valori adevarat (1) sau fals (0);
– obiect OLE (OLE Object): este destinat păstrarii datelor provenite de la alte
aplicații ce sunt considerate servere OLE în Windows (imagini, sune te, video
clipuri etc.);
– legătura (Hiperlink): realizeaza legatura catre pagini web;
– atașament (Attachement): include un fisier ce conține un tip de informație
(documente, registre de calcul, imagini etc.);
– căutare date (Lookup Wizard): nu este un al t tip de câmp, el reprezintă o
metodă prin care tipurilor anterioare li se poate atașa o lista de valori introduse
de utilizator sau selectate dintr -un câmp al unui alt tabel sau interogare.
Figura 6.
1 2
2.3. Atribute câmpuri(figura 6 – 2)
Câmpurile unui tabel sunt entitați de sine stătătoare caracterizate, în funcție de
natura lor, de unul sau mai multe atribute (proprietați). Cele mai importante
proprietăți sunt următoarele:
– dimensiune (Size): depinde de tipul câmpului asa cum s -a precizat la descrierea
tipurilor de date;
– format (Format): în funcție de acest atribut este influențat modul de afisare a l
datelor;
– masca de intrare (Input Mask): controlează modul de introducere al datelor în
înregistrarile aferente câmpurilor respective;
– titlu (Caption): un text ce este utilizat ca eticheta de identificare a câmpului în
cadrul tabelului deschis în modu l conținut;
– valoare prestabilita (Default Value): reprezinta o valoare ințială ce este
atribuită câmpului în momentul crearii unei înregistrari noi;
– regula de validare (Validation Rule): reprezinta condiția de validare la
introducerea unei înregistrări noi;
– text de validare (Validation Text): reprezinta textul ce se afișează la
nerespectarea condiției de validare;
– necesitate (Required): indică faptul că la introducerea unei noi înregistrări
câmpul respectiv nu poate rămâne necompletat;
– index (Inde xed): asigură mecanismul de ordonare al valorilor înregistrărilor în
vederea realizării unei regăsiri rapide a datelor. Indexul poate fi cheie primară
dacă valorile pentru câmpul sau combinația de câmpuri asociate nu se repetă (nu
au duplicat, sunt unice);
– plasare virgula zecimala (Decimal Place): stabileste numarul de zecimale
vizibile pentru numerele fracționale;
– căutare (Lookup): permite stabilirea valorilor și a proprietăților pentru
câmpurile de tipul căutare date.
2.4. Exemple sintaxa reguli validare
1. Pentru câmpuri de tip numeric:
1.a. câmp mai mare sau egal cu 1000: >= 1000
1.b. câmp mai mare sau egal cu 100 si mai mic sau egal cu 3000: >=100 and
<=3000
1.c. câmp mai mare sau egal cu 2010 si mai mic sau egal decât anul curent:
>=2010 and < = Year(Date())
2. Pentru câmpuri de tip data calendaristică:
2.a. câmp mai mare sau egal cu data 01.01.2013: >= #01.01.2013#
2.b. câmp mai mare sau egal cu data 01.01.2013 si mai mic sau egal decât data
curenta:>= #01.01.2013# and <= Date()
2.5. Operații a supra tabelelor
Crearea structurii unui tabel (fig5,6)se realizeaza cu funcția Create -Tables –
Table Design .
Vizualizarea si/sau modificarea structurii unui tabel presupune selectarea lui
din zona de gestiune si utilizarea funcției din meniul contextual atasat mouse –
ului Right Click -Design View(fig. 7).
Figura 7 – Deschiderea unui tabel în mod conținut.
Deschiderea unui tabel în mod conținut(fig .7) presupune selectarea din zona de
gestiune si apelarea uneia din funcțiile Double Click sau Right Click -Open.
La deschidere, zona de lucru va avea organizarea unui tabel, permițând
adăugarea, modificarea sau stergerea de înregistră ri.
Utilizatorul este asistat în permanență indicându -i-se nr. înregistrarii curente,
nr. total de înregistrari, înregistrarea care se editeaza, instrumente de navigare
între înregistrari etc .
Pentru aplicația noastră dorim să ceăm o aplicație care să ofere solutia
informatizată a procesului de rezervare a pachetelor turistice precum și evidența
clienți lor agentie i. Ca urmare avem nevoie de 3 tabele: Clienti, Pachete si
Rezervări(Fig.8 -1,2,3) .
Tabelele create sunt de forma urmă toare :
Figura 8 -1
Figura 8 -2
Figura 8 – 3
2.6. Stabilirea cheilor primare
Dacă valorile unui cîmp sunt unice (nu se repetă), putem semnala acest lucru,
pentru a evita introducerea accidentală a două valori identice. Această procedură
poartă denumirea de stabilire a cheii primare.
– In cazul tabelului CLIENTI , cheia primară poate fi stabilită pe cîmpul
Cod_client , pentru a exclude eventualitatea repetării identificatorului
cărții (în baza de date nu pot exista doi clienti cu acelasi cod).
– Pentru tabelul PACHETE , cheia primara poate fi stabilita pe camplul
Cod_pachet.
– Pentru tabelul REZERVARI cheia primara poate fi stabilita pe cam pul
Cod_rezervare .
Pentru a stabili cheia primară, selectăm cîmpul respectiv, apoi executăm un
clic pe butonul din bara cu instrumente. Ca rezultat, în partea din
stînga a cîmpului respectiv apare semnul cheii .
După încheierea procedurii de descriere a cîmpurilor și de stabilire a cheii
primare, salvăm tabelul (descrierea lui), indicînd numele tabelului. Dacă nu
am stabilit o cheie primară (acest lucru nu este obligatoriu), sistemul ne va
avertiza, sugerîndu -ne stabilirea cheii pe un cîmp de tip AutoNumber. Pentru
a confirma, acționăm butonul Yes. În acest caz sistemul stabilește automat
cheia primară pe un cîmp AutoNumber (dacă el există) sau creează
suplimentar un asemenea cîmp (dacă el nu există), stabilind pe el cheia
primară. Pentru a renunța la stabilirea cheii primare, acționăm butonul No.
2.7 Introducerea datelor în tabel
După ce am efectuat procedurile de descriere a tabelului , putem introduce
date în cîmpurile lui. . Ca rezultat, se afișează cîmpurile tabelului respectiv fig.9
Inițial tabelul conține doar un rînd liber de forma urmatoare :
Figura 9 .
Dupa adaugarea datelor, tabe lele noastre arata in felul urmă tor :
Tabelul Clienti :
Tabelul Pachete :
Tabelul Rezervari :
2.8. Relații dintre tabele(fig. 10). Integritatea datelor
Relațiile dintre două tabele se stabilesc, de regulă, prin intermediul unor
cîmpuri identice (cu aceeași denumire, de aceeași lungime, cu aceleași
proprietăți) prezente în ambele tabele.
În cazul relației de tipul unu la mulți în tabelul primar (din partea căruia se
realizează relația "unu") trebuie să existe un cîmp, numit cheie primară, în care
nu se admit valori care se repetă, iar în tabelul secundar (din partea căruia se
realizează relația "mulți") trebuie să existe un cîmp analogic cu cel din tabelul
primar, numit cheie străină , care poate admite valori care se repetă.
Relația mulți la mulți poate fi transformată în două relații de tipul unu la
mulți prin definirea unui tabel intermediar, în care se introduc, în calitate de
chei străine, cheile primare ale primelor douг tabele. Astfel, pentru a evita
relația mulți la mulți dintre tabelele CLIENTI și PACHETE, a fost definit
tabelul REZERVARI în care au fost incluse cîmpurile Cod_rezervare și
Cod_pachet din tabelele respective.
Putem stabili relații între tabelele bazei de date și în mod explicit, utilizînd
comanda Relationships din meniul Database Tools. În acest caz apare
Fig.10 Relațiile dintre tabelele bazei de date.
3. Interogări Access
3.1 Ce sunt interogările
Performanțele unui SGBD depind în mare măsură de capacitatea
extragerii rapide a diferitor informații în forma dorită. În multe cazuri este necesar
de a selecta date din mai multe tabele simultan.
Prin consultarea unei baze de date se în_elege a ccesul selectiv la datele
conținute de aceasta.
Instrumentul pus la dispoziție de Access 2007 pentru consultarea bazelor de
date este interogarea.
Interogarea este o construcție prin care utilizatorul acceseaza datele din
anumite câmpuri ale unor tabele, după anumite criterii de selecție, datele putând
fi ordonate sau nu.
Crearea unei interogari se poate realiza cu funcția Create -Other -Query
Design(fig.11) .
Figura 11
3.2. Tipuri de interogări
În funcție de modul de definire și rezultatele acțiunii, interogările pot fi clasificate
astfel:
a) interogări de selecție (folosind condiții logice);
b) interogări de sortare (indicînd cîmpul/cîmpurile și ordinea sortării);
c) interogări de excludere a unor înregistrări din BD (de exemplu,
excluderea tuturor cititorilor care nu au împrumutat cărți în
ultimii 2 ani);
d) interogări de modificare a unor înregistrări din BD (de exemplu,
majorarea prețurilor tuturor cărților cu 20%);
e) interogări de obținerea a unor informații rezultante (în cîmpuri noi)
în baza informației existente (de exemplu, obținerea vîrstei cititorului prin
scăderea anului de naștere din anul curent);
f) interogări de obținere a unor totaluri, medii etc.;
g) interogări încrucișate.
În toate cazurile, cu excepția ultimelor două, rezultatul interogării este un nou
set de date, numit set dinamic (engl: Dynaset). Setul dinamic (rezultalul
interogării ) conține doar cîmpurile specificate ale înregistrărilor din tabelele
specificate care satisfac condițiilor specificate. Denumirea '"Set dinamic" este
legată de faptul că orice modificări ale datelor din tabelele specificate în
interogare implică modificări respective ale rezultatului interogării (la o nouă
executare a ei). Și invers, orice modificări în setul dinamic implică modificări în
tabelele respective (cu condiția respectării integrității datelor). Seturile dinamice
nu se memorizează; ele se formează din nou de fiecare dată cînd executăm o
interogare. Dac în tabelele BD intervin modificări, rezultatele executării a două
interogări identice pot fi diferite, în cele ce urmează vom descrie modalitățile
de defin ire și executare a interogărilor nominalizate.
Exemplu:1
Pentru a defini o interogare de selecție (de exemplu, afisarea clientilor ce locuiesc
in Bucuresti ), acționăm Create -Other -Query Design .
În continuare indicăm unul din cele 5 moduri de creare a interogărilor (în cazul
nostru Design View )
Din caseta care apare (fig. 11) selectăm consecutiv (în orice ordine) tabelele
necesare (în cazul nostru Clienti, Pachete si Rezervari) și pentru fiecare
acționăm butonul Add (figura 12) .
Figura.12 Selectarea tabelelor pentru definirea interogării.
După selectarea tabelelor acționăm butonul Close.
În continuare indicăm, în partea de jos a ferestrei, cîmpurile din fiecare tabel
(în ordinea dorită) care urmează a fi afișate sau pentru care se vor specifica
condiții de selecție și/sau de sortare. (fig. 13).
Figura13.Specificarea condițiilor de selecție.
În rîndul Criteria din partea de jos a ferestrei specificăm condiția selecției
Like “buc*” pentru cîmpul Localitate_client al tabelului Clienti.
Interogarea astfel definită poate fi executată imediat în scopul obținerii
rezultatului (fig. 14), sau salvată pentru a fi executată ulterior. În primul caz
acționăm butonul (Datasheet View) din bara cu instrumente în aldoile caz
executăm comanda S ave din meniul File. La salvarea interogării indicăm
numele ei, care nu trebuie să coincidă cu numele unor tabele sau ale unor
interogări definite anterior.
In cazul nostru, la deschiderea interogarii denumite “Clienti din Bucuresti”
obtinem un ta ble care cuprinde totalitatea clientilor ce au localitatea in
Bucuresti.
Figura.14 Rezultatele interogării.
Exemplu 2 . Lista rezervarilor facute in data 07.02.2017
Pentru afi șarea rezervarilor efectuate in data 07.02.2017 acționăm fila Create –
Other -Query Design.
Din caseta care apare (fig.15) selectăm și cu butonul Add marcăm tabelul
„Rezervări”.
Figura15.
După selectarea tabelului acționăm butonul Close. Apoi executăm dublu clic
pe denumirile câmpurilor și vor trece în rîndul Field din caseta de jos (Fig.16).
Figura 16.
După aceasta specificăm condițiile selecției. În rîndul Criteria scriem condiția
#07.02.2017# pentru câmpul Data_rezervare al tabelului Rezervari și ne va afișa
lista rezervarilor effectuate facute in data de 07.02.2017după apăsarea
butonului„Run”din secțiunea„Rezults”(Fig 17).
Figura 17. Rezultatul interogării.
Exempul 3 : Cautare nume client
Pentru cautarea clientilor dupa nume a ctionam Create -Other -Query
Design -selectare „Clienți” -Add-Close( fig 15 ).
Apoi executăm dublu clic pe denumirile câmpurilor și vor trece în rîndul
Field din caseta de jos (fig.18).
Figura18.
După aceasta specificăm condițiile selecției. În rîndul Criteria scrim condiția
“[Cautare Nume Client]” pentru câmpul Nume_client al tabelului Clienti și ne
va afișa urmatoarea fereastra :
Figura 19. Introducerea parametrilor.
După introducerea parametrilor cautati, programul va afisa rezultatele sub
forma :
Exemplul 4 : Calcularea pretului complet al pachetelor turistice .
Pentru calcularea pretului complet al pachetelor turistice actionam fila
Create -Other -Query Design -selectare „Pachete” -Add-Close( fig 15 )
Apoi executăm dublu clic pe denumirile câmpurilor și vor trece în rîndul Field
din casuța de jos.
In tabelul „Pachete” adaugam un camp nou numit “Pre ț_pachet” c ăruia îi
adaugam sintagma “ : [Numar_nopti_cazare]*[Pret_noapte] “ , astfel campul
“Pret_pachet” va afi șa valorile rezultate din înmultirea c âmpurilor
“Num ăr_noapte_cazare” si “Pre ț_noapte”.
Apăsăm „Run”.
Tabelul afisat va fi de forma urm ătoare :
Exemplul 5: Lista pachetelor turistice cu pretu l pana in 15 00 lei
Pentru aceasta executăm următorii pași:
Definim o interogare în care includem interogarea “Pret pachet complet” din
care selectam toate campurile necesare (fig.20)
Figura 20
După aceasta specificăm criteriul de selecție în rîndul Criteria pentru
câmpul Pret_pachet din interogarea “Pret pachet complet” și ne va afișa lista
pachetelor cu pretul pana in 1500lei .
Obținem după apăsarea butonului „Run” :
Figura 21
3.3 Interogări de sortare a înregistrărilor
După ce am definit condițiile de selecție, putem stabili condiții de sortare pentru
unul sau mai multe câmpuri.
Exemplu 1: Ordonarea ascendentă a numelor Clientilor
Pentru afișarea numelor clientilor în ordine alfabetică executăm un clic în rîndul
Sort al casetei (fig.22) în dreptul câmpului Nume și din lista derulantă alegem
opțiunea Ascending.
Figura 22
Pentru a afișa rezultatul interogării (fig.23), acționăm butonul „Run” din bara
cu instrumente.
Figura 23
Sortarea datelor poate fi făcută și fără a specifica condiții de selecție. În
acest caz se vor afișa toate înregistrările, dar ordinea lor va corespunde
condițiilor stabilite în rîndul Sort pentru câmpurile respective.
4. Rapoarte
Raportul este un instrument folosit pentru extragerea datelor dintr -un tabel
sau interogare, aranjarea acestora într -un format predefinit sau standard si
vizualizarea lor pe display sau listarea la imprimanta.
Exista un utilitar de creare automata a rapoartelor (Create -Reports -Report
Wizard) ce printr -o suita de ecrane succesive stabileste principalele caracteristici
ale raportului: sursa de date, câmp urile ce apar în raport, modalitațile de grupare
si de sortare a informației, structura, forma si numele raportului(Fig. 24).
Figura 24
După introducerea datelor cerute obținem ( fig. 25) :
Figura 25.
5.Formulare
Formularul este un instrument complex ce permite extragerea si/sau
introducerea datelor din/în baza de date, si realizarea interfeței aplicației ce
gestioneaza baza de date.
Exista un utilitar de creare automata a formularelor (Create -Forms -Form
Wizard) ce printr -o suita de ecran e succesive stabileste principalele caracteristici
ale raportului: sursa de date, câmpurile ce apar în formular, structura, forma si
numele formularului ( figura 26) .
Figura 26.
Exemplu : Crearea unui Formular Clienti ( figura 26) .
Pentru efectuarea acestei operatiuni, urmam pasi i de mai sus si alegem
campurile ce dorim sa fie afisate din tabelul Clienti.
Figura 26.
Adaugam butoane folosing functia „Button” din meniul „Controls”.
In cazul nostru am introdus butoane pentru functiile „Add Record”, „Delete
record”, „Save record”, „Previous Record” si „Next Record”.
Astfel pot fi vizualizate înregistrările despre „Clienți” și deasemeni pot fi
introduși clienți noi.
Capitolul 2 : Limbajul de programare C#.
Scurt istoric
Lansat publicului in iunie 2000 si oficial in primavara anului 2002, C# este
un limbaj de programare care combina facilitati testate de -a lungul timpului cu
inovatii de ultim moment. Creatorii acestui limbaj au fost o echipa de la f irma
Microsoft condusa de Anders Hejlsberg. Desi limbajul este creat de Microsoft,
acesta nu este destinat doar platformelor Microsoft. Compilatoare C# exista si
pentru alte sisteme precum Linux sau Macintosh. Creat ca instrument de
dezvoltare pentru arhit ectura .NET, limbajul ofera o modalitate facila si eficienta
de a scrie programe pentru sistemul Windows, internet, componente software
etc.
C# deriva din doua dintre cele mai de succes limbaje de programare: C si
C++. De asemenea, limbajul este o “ruda” apropiata a limbajului Java. Pentru o
mai buna intelegere a limbajului C# este interesant de remarcat care este natura
relatiilor acestuia cu celelalte trei limbaje mentionate mai sus. Pentru aceasta,
vom plasa mai intai limbajul C# in contextul i storic determinat de cele trei
limbaje.
Limbajul C. Programarea structurata
Limbajul C a fost inventat de catre Dennis Ritchie in anii „70 pe un
calculator pe care rula sistemul de operare UNIX. Limbajul C s -a dezvoltat in
urma revolutiei programarii structurate din anii ‟60. Inainte de programarea
structurata, programele erau greu de scris si de inteles din cauza logicii. O masa
incalcita de salturi, apelui si reveniri, greu de urmarit era cunoscuta sub numele
de cod spaghetti. Datorita si ntaxei sale concise si usor de utilizat, in anii „80,
limbajul C a devenit cel mai raspandit limbaj structurat.
Limbajul C are insa limitele sale. Una dintre acestea o reprezinta
incapacitatea de a lucra cu programe mari. Limbajul C ridica o bariera atunci
cand programul atinge o anumita dimensiune. Acest prag depinde de program,
instrumentele folosite, programator, dar este posibil sa se situeze in jurul a 5000
de linii de cod
Limbajul C++. Programarea orientata obiect
La sfarsitul anilor ‟70 dimensiunile multor programe erau aproape de
limitele impuse de limbajul C. Pentru a rezolva problema a aparut o modalitate
noua de programare si anume programarea orientata obiect (POO). Limbajul C
nu permitea programarea orientata obiect. Fiind cel mai raspandit limbaj, s -a
dorit extinderea sa in vederea implementarii noii modalitati de programare:
programarea POO .
Limbajul C++ a fost creat de catre Bjarne Stroustrup incepand din 1979, la
laboratoarele Bell din Murray Hill, New Jersey. Limbajul a fost denumit initial
C cu clase, iar in 1983 numele acestuia a fost modificat in C++. In esenta, C++
reprezinta v ersiunea orientata obiect a limbajului C. In anii ‟80, limbajul C++ a
suferit dezvoltarii si perfectionari masive, astfel ca in anii ‟90 a devenit cel mai
raspandit limbaj de programare.
Limbajul Java. Problema portabilitatii
Lucrul la aces t limbaj a fost demarat in 1991 la firma Sun Microsystems.
Java este un limbaj structurat si orientat pe obiecte, cu o sintaxa si filozofie
derivate din C++. Aspectele novatoare se refera mai mult la modificarile
mediului de programare. Aspectul esential i n Java este posibilitatea de a crea
cod portabil pe platforme diferite. Inainte de explozia Internetului, majoritatea
programelor erau compilate si destinate utilizarii pe un anumit procesor si sub
un anumit sistem de operare. Programele scrise in C si C++ se compilau
intodeauna pana la cod masina executabil. Codul masina este legat de un anumit
procesor si de un anumit sistem de operare. Dupa aparitia Internetului insa, la
care sunt conectate sisteme cu procesoare si sisteme de operare diferite,
problema p ortabilitatii a devenit foarte importanta.
Java a realizat portabilitatea prin transformarea codului sursa al programului
intr-un cod intermediar numit bytecode. Acest format intermediar este executat
apoi de asa numita Masina Virtuala Java (MVJ). Asadar, programele Java pot
rula in orice mediu in care este disponibila o MVJ. Deoarece MVJ este usor de
implementat, aceasta a fost imediat disponibila pentru un numar mare de medii.
Limbajul C#
Desi Java a rezolvat cu succes problema portabilitatii, exista unele aspecte
care ii lipsesc. Una dintre acestea este interoperabilitatea limbajelor diferite , sau
programarea in limbaj mixt (posibilitatea codului scris intr -un limbaj de a lucra
in mod natural cu codul scris in alt limbaj). Interoperabilitatea l imbajelor diferite
este esentiala la realizarea sistemelor software de dimensiuni mari.
Ca parte a ansamblului strategiei .NET, dezvoltata de Microsoft, la finele
anilor ‟90 a fost creat limbajul C#. C# este direct inrudit cu C, C++ si Java.
“Bunic ul” limbajului C# este C -ul. De la C, C# mosteneste sintaxa, multe din
cuvintele cheie si operatorii. De asemenea, C# construieste peste modelul de
obiecte definit in in C++. Relatia dintre C# si Java este mai complicata. Java
deriva la randul sau din C si C++. Ca si Java, C# a fost proiectat pentru a
produce cod portabil. Limbajul C# nu deriva din Java. Intre C# si Java exista o
relatie similara celei dintre “veri”, ele deriva din acelasi stramos, dar
deosebindu -se prin multe caracteristici importante.
Limbajul C# contine mai multe facilitati novatoare, dintre care cele mai
importante se refera la suportul incorporat pentru componente software. C#
dispune de facilitati care implementeaza direct elementele care alcatuiesc
componentele software, cum ar fi proprietatile, metodele si evenimentele. Poate
cea mai importanta facilitate de care dispune C# este posibilitatea de a lucra intr –
un mediu cu limbaj mixt.
Relatia dintre C# si arhitectura .NET
C# are o legatura deosebita cu mediul sau de rulare, arhitectura .NET. Pe de
o parte, C# a fost dezvoltat pentru crearea codului pentru arhitectura .NET, iar
pe de alta parte bibliotecile utilizate de C# sunt cele ale arhitecturii .NET.
Ce este arhitectur a .NET ?
Arhitectura .NET defineste un mediu de programare care permite
dezvoltarea si executia aplicatiilor indiferent de platforma. Aceasta permite
programarea in limbaj mixt si ofera facilitati de securitate si portabilitate a
programelor. Este disponibila deocamdata pentru platformele Windows.
Legat de C#, arhitectura .NET defineste doua entitati importante si anume
biblioteca de clase .NET si motorul comun de programare sau Common
Language Runtime (CLR) .
C# nu are o biblioteca de clase proprie ci utilizeaza direct biblioteca de clase
.NET. De exemplu, cand se ruleaza un program care efectueaza operatii de
intrare -iesire, cum ar fi afisarea unui text pe ecran, se utilizeaza biblioteca de
clase .NET.
Motorul comun de programare (CLR) se ocupa de executia programelor C#.
El asigura de asemenea programarea in limbaj mixt, securitatea si portabilitatea
programelor. Atunci cand este compilat un program C#, sau un program in
limbaj mixt, rezultatul compilar ii nu este un cod executabil. In locul acestuia, se
produce un fisier care contine un tip de pseudocod numit limbaj intermediar sau
pe scurt IL (Intermediate Language). Acest fisier IL poate fi copiat in orice
calculator care dispune de .NET CLR. Prin inte rmediul unui compilator denumit
JIT (Just In Time), motorul comun de pogramare transforma codul intermediar
in cod executabil. Procesul de conversie decurge astfel: atunci cand un program
.NET este executat, CLR activeaza compilatorul JIT. Compilatorul JIT
converteste IL in cod executabil pe masura ce fiecare parte a programului este
neceasra. In concluzie, orice program compilat pana in format IL poate rula in
orice mediu pentru care CLR este implementat. In acest fel arhitectura .NET
asigura portabilitate a.
Principiile programarii orientate obiect
Metodologiile de programare s -au modificat continuu de la aparitia
calculatoarelor pentru a tine pasul cu marirea complexitatii programelor. Pentru
primele calculatoare programarea se facea introdu cand instructiunile masina
scrise in binar. Pe masura ce programele au crescut s -a inventat limbajul de
asamblare, in care se puteau gestiona programe mai mari prin utilizarea unor
reprezentari simbolice ale instructiunilor masina. Cum programele continuau sa
creasca, s -au introdus limbaje de nivel inalt, precum FORTRAN si COBOL, iar
apoi s -a inventat programarea structurata.
POO a preluat cele mai bune idei de la programarea structurata, combinanu -le
cu concepte noi. A rezultat o modlitate diferita de a o rganiza un program. In
fapt, un program poate fi organizat in doua moduri: in jurul codului (mod de
lucru descris de sintagma “codul actioneaza asupra datelor” , valabil in cazul
programarii structurate) sau in jurul datelor (abordare descrisa de sintagma
“datele controleaza accesul la cod” , valabila in cazul programarii orientate
obiect).
Toate limbajele POO au patru caracteristici comune: incapsularea,
polimorfismul, mostenirea si reutilizarea.
Incapsularea
Incapsularea este un mecanis m care combina codul si datele pe care le
manipuleaza, mentinand integritatea acestora fata de interferenta cu lumea
exterioara. Incapsularea mai este numita si realizarea de cutii negre, intrucat se
ascunde functionalitatea proceselor. Cand codul si datel e sunt incapsulate se
creaza un obiect. In cadrul unui obiect, codul si datele pot fi publice sau private.
Codul si datele private sunt accesibile doar in cadrul aceluiasi obiect, in timp ce
codul si datele publice pot fi utilizate si din parti ale program ului care exista in
afara acelui obiect.
Unitatea fundamentala de incapsulare este clasa. Clasa specifica datele si
codul care opereaza asupra datelor. O clasa defineste forma unui obiect. Sau
altfel spus, o clasa reprezinta o matrita, iar un obiect reprezinta o instanta a
clasei.
Polimorfismul
Polimorfismul este calitatea care permite unei interfete sa aiba acces la un grup
generic de actiuni. Termenul este derivat dintr -un cuvant grecesc avand
semnificatia “cu mai multe forme”. Spre exemplu, sa presupunem ca avem o
nevoie de o routina care sa returneze aria unei forme geometrice, care poate fi un
triunghi, cerc sau trapez. Intrucat ariile celor trei forme se calculeaza diferit,
routina trebuie sa fie adaptata la datele pe care le primeste incat sa distinga
despre ce fel de forma este vorba si sa returneze rezultatul corect.
Conceptul de polimorfism este exprimat prin sintagma “o singura interfata mai
mlte metode”.
Mostenirea
Mostenirea este procesul prin care un obiect poate dobandi caracteristicile
altui obiect. Analogia cu conceptul de animal este elocventa. Spre exemplu, sa
consideram o reptila. Aceasta are toate caracteristicile unui animal, insa in plus
are si o alta caracteristica, si anume: sangele rece. Sa consideram un sarpe.
Acesta este o reptila lunga si subtire care nu are picioare. Sarpele are toate
caracteristicile unei reptile, insa poseda si propriile sale caracteristici. Asadar, un
sarpe mosteneste caracteristicile unei reptile. O reptila mosten este
caracteristicile unui animal. Asadar, mecanismul mostenirii este cel care face
posibil ca un obiect sa fie o instanta a unui caz mai general.
Reutilizarea
Atunci cand este creata o clasa, aceasta poate fi utilizata pentru a crea o
multime de obiecte. Prin utilizarea mostenirii si incapsularii clasa amintita poate
fi reutilizata. Nu mai este nevoie sa testam codul respectiv ci doar a il utlizam
corect.
Crearea, compilarea si executia programelor C#. Exemple;
Să consideram urmatorul program C# simplu:
/* Acesta este un program simplu in C#
Denumiti programul: Example1.cs */
using System;
class Example1
{
//orice program in C# contine metoda Main()
public static void Main()
{
Console.WriteLine("This is my first C# program");
}
}
Exista doua moduri de a edita, compila si rula un program in C#. In primul
rand se poate utiliza compilatorul linie de comanda csc.exe. A doua posibilitate
este de a utiliza utilizati mediul Vi sual Studio .NET. In primul caz trebuie
parcursi urmatorii pasi: introduceti textul programului cu ajutorul unui editor de
texte si salvati fisierul utilizand extensia cs, spre exemplu Example1.cs; apoi
compilati programul precizand numele fisierului in li nia de comanda (C: \>csc
Example1.cs); in final rulati programul in linia de comanda (C: \>Example). In
cel de -al doilea caz creati un nou proiect C# selectand: File|New|Project, apoi
Visual C# Projects|Empty Project. Dupa ce ati creat proiectul, executati c lick
dreapta pe fereastra Solution. Utilizand meniul aparut selectati Add apoi Add
New Item | Local Project Items| C# Code File. Introduceti textul, salvati
proiectul, compilati proiectul selectand Build si in fine rulati programul
selectand Start Without Debugging din meniul Debug.
Programul de mai jos creaza o aplicatie Windows.
using System;
using System.Windows.Forms;
public class MyForm : Form
{
private TextBox txtEnter;
private Label lblDisplay;
private Button btnOk;
public MyForm()
{
this.txtEnter = new TextBox();
this.lblDisplay = new Label();
this.btnOk = new Button();
this.Text = "Prima mea aplicatie Windows!";
this.Size=new System.Drawing.Size(320, 300);
// txtEnter 1
this.txtEnter.Location = new System.Drawing.Point(16, 32);
this.txtEnter.Size = new System.Drawing.Size(264, 20);
// lblDisplay
this.lblDisplay.Location = new System.Drawing.Point(16, 72);
this.lblDisplay.Size = new System.Drawing.Size(264, 128);
// btnOk
this.btnOk.Location = new System.Drawing.Point(88, 224 );
this.btnOk.Text = "OK";
this.btnOk.Click +=new System.EventHandler(this.btnOK_Click);
// MyForm
this.Controls.AddRange(new Control[] {
this.txtEnter, this.lblDisplay, this.btnOk});
}
static void Main ()
{
Application.Run(new MyForm());
}
private void btnOK_Click(object sender, System.EventArgs e)
{
lblDisplay.Text = txtEnter.Text + " \n" + lblDisplay.Text;
}
}
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: Tema Modelarea structurii unei unități școlare a fost aleasă din dorința [614818] (ID: 614818)
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.
