Post on 25-Sep-2015
description
1
Liceul Teoretic Mihai Eminescu Barlad
Lucrare de specialitate
pentru obtinerea
ATESTATULUI PROFESIONAL
- profil matematica-informatica-
Profesor Indrumator, Elev,
Mocanu Bogdan Dabija Dan
2
Cuprins
1.Obiectivele aplicatiei...3
2.Prezentarea aplicatiei...4
3.Codul sursa.....15
4.Bibliografie.....19
3
1.Obiectivele aplicatiei
Examenele auto sunt un lucru foarte important pentru societate, pentru
siguranta ei dar si pentru buna dezvoltare a sa. Datorita acestor examene si
posibilitatea de a le desfasura face din societate un mediu sigur pentru toti cei ce
traiesc acolo.
Aceste examene sunt un mod responsabil de a conduce in siguranta, cunoscand
legile in vigoare si cele de circulatie.
Aceasta aplicatie pe care am realizat-o ajuta la dezvoltarea personala a fiecarui
candidat ajutandu-l sa se autoevalueze mult mai simplu decat facand teste de pe carti
asa cum se facea de obicei. Aplicatia il ajuta sa introduca chestionarele si sa simuleze
un examen cu acele intrebari pana va reusi sa invete. Totodata are la indemana un
meniu de help in care va gasi legislatia codului rutier.
4
2. Prezentarea aplicatiei
Odata cu deschiderea acestei aplicatii denumita 'Examen auto' pe ecran va
aparea o fereastra impreuna cu un meniu in partea de sus exact ca in aplicatiile
windows si o imagine ca in figura de mai jos.
5
2.1.Meniu principal
Acest meniu este format din cinci operatii pe care le realizeaza programul pe
care il voi prezenta in aceste pagini.
2.1.1 Chestionar
Aceasta optiune contine trei operatii prin care utilizatorul va putea sa adauge
chestionare, sa modifice intrebarile din el, si deasemenea sa stearga chestionare.
La apasarea mouse-ului pe optiunea 'Adauga chestionar' va aparea o fereastra
de inregistrare in baza de date a unei chestionar asa cum apare in imaginea de mai jos.
6
Ca sa se poata realiza inregistrarea corect este necesar ca toate campurile sa
fie completare, nu neaparat si campul poza din interiorul bazei de date, numai daca
pentru intrebare exista o poza pe care candidatul sa indentifice ceva trebuie completat
prin apasarea butonului 'Adauga poza' si selectand o poza din fisierul 'chestionare' din
fisierul cu atestatul.
De mentionat e ca pozele care se vor introduce pentru fiecare intrebare in parte
trebuie sa fie in fisierul CHESTIONARE din interiorul fisierului cu atestatul.
Odata completate toate aceste date utilizatorul este indreptatit sa apese pe
butonul Adauga intrebare pentru a finaliza inregistrarea. La apasarea butonului
Adauga intrebare programul va adauga in baza de date intrebarea si nu va da voie sa
parasiti aplicatia decat cand ati terminat de adaugat cele 26 de intrebari necesare
pentru un chestionar.
7
In caz de necompletare a tuturor datelor de catre utilizator va aparea o fereastra
prin care se va specifica ca nu au fost completate toate datele.
La apasarea mouse-ului pe optiunea 'Modifica chestionar' va aparea o fereastra
de modificare a datelor in baza de date a unui chestionar asa cum apare in imaginea
de mai jos.
8
Se va cauta chestionarul dupa numarul atribuit asa cum a fost introdus in baza
de date, dupa care se vor putea modifica datele intrebarilor.
9
Finalizarea acestui process consta in afisarea unui mesaj de informare a
utilizatorului precum ca modificarea a fost realizata.
La apasarea mouse-ului pe optiunea 'Sterge chestionar' va aparea o fereastra de
stergere a datelor din cele doua baze de date a unui chestionar asa cum apare in
imaginea de mai jos.
Acest proces se va inchia printr-un mesaj de informare.
2.1.2 Examen
Aceasta optiune simuleaza examenul auto cu inregistrarea persoanei in baza de
date,cu testul propriu-zis si cu rezultatul testului.
10
Pentru inceput trebuie sa completati campurile din formular cum vedeti mai sus,
dupa care va trebui sa alegi un chestionar pe care vreti sa-l rezolvati. Daca
chestionarul are intrebari adaugate atunci va aparea pe ecran un mesaj de continuare
afirmativ.
In caz ca, chestionarul nu contine intrebari veti fi indrumat sa alegi alt
chestionar.
11
Dupa ce ati facut ce am descris pana acum sunteti indreptatiti sa incepeti testul
prin apasarea butonului 'Continua examinare', pe ecran va aparea o fereastra cu
numele dumneavoastra.
Dupa ce apasati 'Ok' pe ecran va aparea fereastra pentru test asa cum veti vedea
mai jos.
Daca insa nu sunteti totusi hotarat sa incepeti testul puteti renunta la el prin
apasarea butonului 'Renuntare examen' din coltul din stanga-jos.
Pentru a incepe examenul apasa pe butonul 'Start examen'. In dreapta aveti
intrebarile din acest test, deci nu e nevoie sa le faceti in ordine. Pentru a urma insa
ordinea fireasca a intrebari-lor apasati pe butonul 'Urmatoarea intrebare'.
12
In partea din stanga in dreptul fiecarui raspuns aveti niste butoane pe care le
puteti bifa. Un singur raspuns e correct.
Dupa ce ati rezolvat toate cele 26 de intrebari apasati pe butonul 'Finalizare
examen' din coltul dreapta-jos.
Pe ecran va aparea o fereastra unde veti fi informat cate raspunsuri corecte si
cate raspunsuri gresite ati dat si daca ati trecut sau nu examenul.
13
2.1.3 Invata
Aceasta este o fereastra informativa prin care sunteti instiintati ca puteti sa
apasati F1 pentru o fereastra de help in care va aparea codul rutier.
14
2.1.4.Rapoarte
Aceasta optiune contine doua operatii care realizeaza doua rapoarte cu datele
celor care au trecut examenul si cei care l-au picat.
In cazul nostru pe care l-am folosit vom vizualiza lista celor respinsi printre care
se afla si cazul nostru.
15
Pentru a iesi din aceasta aplicatie apasati pe butonul din meniu Iesire.
3. Codul Sursa
Butonul Adauga intrebare
IF EMPTY(_intrebare) OR EMPTY(_raspuns) OR EMPTY(_fals1) OR
EMPTY(_fals2)
MESSAGEBOX("Nu ati completat toate campurile obligatorii!",64,'Examen
auto')
thisform.edit1.SetFocus
thisform.Refresh
ELSE
IF nr1
16
thisform.edit1.SetFocus
thisform.Refresh
ELSE
MESSAGEBOX("Chestionarul este complet!",64,'Examen auto')
GO bottom
_cod=numar+1
_intrebare=SPACE(200)
_raspuns=SPACE(100)
_fals1=SPACE(100)
_fals2=SPACE(100)
_poza=SPACE(50)
nr1=1
thisform.edit1.SetFocus
thisform.image1.visible= .F.
thisform.command2.Visible= .T.
thisform.Refresh
ENDIF
thisform.Refresh
ENDIF
Butonul Adauga poza
_poza=GETPICT("*.*","Adauga poza","Adauga poza")
thisform.image1.Visible= .T.
thisform.image1.Picture=_poza
nr=AT('CHESTIONAR',_poza)
_poza=subSTR(_poza,nr)
thisform.Refresh
Butonul Iesire
thisform.Release
Butonul Continua examinare
IF EMPTY(_nume) OR EMPTY(_prenume) OR EMPTY(_cnp) OR _data_n={..} OR
EMPTY(_localitate) OR nrch=0
MESSAGEBOX("Nu ati completat toate campurile obligatorii!",64,'Examen
auto')
ELSE
SELECT 2
APPEND BLANK
replace cnp WITH _cnp
replace nume WITH PROPER(_nume)
replace prenume WITH proper(_prenume)
replace localitate WITH PROPER(_localitate)
replace data_n WITH _data_n
replace categorie WITH cat
MESSAGEBOX("Puteti continua examinarea "+ALLTRIM(nume)+"
"+ALLTRIM(prenume)+"!",64,'Examen auto')
SELECT 3
APPEND BLANK
replace cnp WITH _cnp
replace rasp_corect WITH 0
replace rasp_gresite WITH 0
_nume=SPACE(15)
_prenume=SPACE(15)
_localitate=SPACE(20)
17
_data_n={..}
cat='B'
thisform.txtnume.SetFocus
thisform.Refresh
thisform.Release
DO FORM examen1
ENDIF
Butonul C5
nrch=5
SELECT 1
LOCATE FOR numar=nrch
IF !FOUND()
MESSAGEBOX("Alegeti alt chestionar!",48,'Examen auto')
nrch=0
ELSE
MESSAGEBOX("Puteti continua examinarea!",64,'Examen auto')
ENDIF
Butonul Start examen
_intrebare=intrebare
r1=raspuns
r2=fals1
r3=fals2
IF !EMPTY(poza)
thisform.image2.Visible= .T.
thisform.image2.Picture=poza
ENDIF
thisform.command2.Visible= .T.
thisform.Refresh
Butonul Urmatoarea intrebare
IF rs=raspuns
SELECT 3
replace rasp_corect WITH rasp_corect+1
ELSE
SELECT 3
replace rasp_gresite WITH rasp_gresite+1
ENDIF
SELECT 1
SKIP
_intrebare=intrebare
x=ABS(INT(RAND()*10))
IF x=0 OR x=2 OR x=4 OR x=6
r1=raspuns
r2=fals1
r3=fals2
thisform.command3.picture=''
thisform.command4.picture=''
thisform.command5.picture=''
IF !EMPTY(poza)
thisform.image2.Visible= .T.
thisform.image2.Picture=poza
ELSE
18
thisform.image2.Visible= .f.
ENDIF
thisform.refresh
ELSE
IF x=1 OR x=3 OR x=5 OR x=7
r1=fals1
r2=raspuns
r3=fals2
thisform.command3.picture=''
thisform.command4.picture=''
thisform.command5.picture=''
IF !EMPTY(poza)
thisform.image2.Visible= .T.
thisform.image2.Picture=poza
ELSE
thisform.image2.Visible= .f.
ENDIF
thisform.refresh
ELSE
r1=fals2
r2=fals1
r3=raspuns
thisform.command3.picture=''
thisform.command4.picture=''
thisform.command5.picture=''
IF !EMPTY(poza)
thisform.image2.Visible= .T.
thisform.image2.Picture=poza
ELSE
thisform.image2.Visible= .f.
ENDIF
thisform.refresh
ENDIF
ENDIF
thisform.refresh
Butonul Renuntare examen
SELECT 2
LOCATE FOR cnp=ALLTRIM(_cnp)
IF FOUND()
DELETE
PACK
ELSE
MESSAGEBOX("Candidatul cu cnp-ul "+ALLTRIM(_cnp)+" nu se poate
sterge!")
ENDIF
thisform.Release
Butonul Finalizare examen
thisform.Release
DO FORM examen2
Butonul Incheiere sesiune
thisform.Release
DO FORM examen2
19
Butonul Modifica intrebare
IF EMPTY(_intrebare) OR EMPTY(_raspuns) OR EMPTY(_fals1);
OR EMPTY(_fals2)
MESSAGEBOX("Nu ati completat toate campurile obligatorii!",64,'Examen
auto')
ELSE
replace intrebare WITH upper(_intrebare)
replace raspuns WITH upper(_raspuns)
replace fals1 WITH upper(_fals1)
replace fals2 WITH upper(_fals2)
MESSAGEBOX("Intrebarea din acest chestionar a fost
modificata!",64,'Examen auto')
_intrebare=SPACE(200)
_raspuns=SPACE(100)
_fals1=SPACE(100)
_fals2=SPACE(100)
_poza=SPACE(50)
thisform.image1.Visible= .F.
thisform.Refresh
ENDIF
Butonul Sterge poza
thisform.image1.Visible= .F.
replace poza WITH SPACE(50)
Butonul Sterge chestionar
DELETE FOR _cod=numar
PACK
MESSAGEBOX("Chestionarul a fost sters din baza de date!",64,'Examen
auto')
_intrebare=SPACE(200)
_raspuns=SPACE(100)
_fals1=SPACE(100)
_fals2=SPACE(100)
_poza=SPACE(50)
thisform.image1.Visible= .F.
thisform.Refresh
4.Bibliografie
Manual Visual Fox Pro clasa XII, editura L&S Infomat, fam. Paniru (
Mariana, Ionut, Irina )
Visual FoxPro 8.0 Help
20