Sunteți pe pagina 1din 22

Liceul teoretic Mihai Eminescu

Lucrare atestat
Evidena unui aeroport

Prof. coordonator:
Vlad Viorel

Elev:
Neagu Alexandru - Marian
Clasa a XII-a B

-Mai 2014-

Cuprins
Motivarea alegerii temei ..........................................................3
Prezentarea aplicaiei ..............................................................4
Codul surs ............................................................................14
Bibliografie ............................................................................22

Motivarea alegerii temei

Am ales s scriu despre evidenierea unui aeroport


deoarece ntotdeauna mi-au plcut lucrurile legate de avioane
i zbor,iar meseria de pilot este una dintre cele mai frumoase
meserii ns i una dintre cele mai grele. Frumuseea ce nu se
poate descrie n cuvinte i altitudinea mare a locurilor prin
care piloii i creeaz drumul au o latur ascuns,uneori
neprietenoas. Acolo sus nu este permis nicio greeal.Viaa
a sute de oameni este n minile pilotului.
Cum nu muli oameni ajung sa i ndeplineasc visul de
a pilota un avion acetia rmn in acelai domeniu, dar la sol.

Prezentarea aplicaiei
Aplicaia permite gestionarea datelor dintr-un aeroport
ntr-un mod sigur i eficient.
Aplicaia conine baze de date ce rein informaii att
despre clieni ct i despre cursele acestora.
Se simplific operaii ca :
adugarea unui nou pasager
modificarea unui pasager
tergerea unui pasager
adugarea unei noi curse
modificarea unei curse
tergerea unei curse
vizualizarea pasagerilor de la o dat
vizualizarea curselor

Baza de date pasageri.dbf reine informaiile despre


clieni, ncepnd cu datele personale i continund cu zborul
pe care l-a ales. Structura bazei de date:
Nume C10
Prenume C10
CNP C13
Nr_loc N3
Plecare (Aeroport plecare) C20
Sosire (Aeroport sosire) C20
Nr_cursa N3
Data_p (Data plecarii) Date

Baza de date curse.dbf reine informaii despre


zborurile pe care le pot alege pasagerii, suprapunndu-se cu
ultimele atribute din baza de date pasageri.dbf. Conine in
plus ora de plecare a avionului, ora de sosire i numrul de
locuri disponibile.

Structura curse:
Nr_cursa C4
Plecare (Aeroport plecare) C10
Sosire (Aeroport sosire) C10
Ora_p (Ora plecarii) C5
Ora_s (Ora sosirii) C5
Nr_locuri N4

Utilizare Aplicaie
Aplicaia se deschide cu ajutorul comenzii DO urmat
de numele programului, in cazul acesta, aeroport.prg.
Prima fereastr care va aprea va fi cea de prezentare a
lucrrii.

Dup apsarea tastei enter, urmeaz s se deschid o


nou fereastr n care va fi desfurat meniul principal.
7

Meniul principal conine 4 butoane care conin la rndul


lor 2 sau 3 butoane. Vor fi un total de 10 butoane funcionale,
excluzndu-le pe cele ale meniului principal.
Prima ramur a meniului se refer la pasageri. Denumit
Actualizare, are posibilitatea s adauge, s modifice i s
tearg pasageri.
Adugare pasager

Cum se poate urmri n imagine, exist posibilitatea


completrii textbox-urilor cu datele personale ale pasagerului
i informaii despre zborul ales de acesta. Exist de asemenea
8

opiunea de a continua adugarea de noi pasageri dup


completarea unui set de informaii, sau prsirea temporar a
acestui meniu.
Comanda folosit a fost APPEND BLANK, iar
posibilitatea de a rmne n acelai meniu a fost realizat
printr-o variabil de tip caracter care poate avea dou valori,
DA sau NU.

Modificare date pasager


Aplicaia va cuta in baza de date pasagerul dorit in
funcie de trei criterii: nume, prenume, CNP. A fost executat
un sir logic in cadrul comenzii LOCATE.
n funcie de rezultatul cutrii, se vor modifica datele
pasagerului sau se vor retasta din nou criteriile.

tergere date pasager


Aceast aciune primete ca parametru de cutare doar
CNP-ul pasagerului, urmnd s foloseasc din nou comanda
LOCATE asupra bazei de date. n urma unei cutari efectuate
cu succes, se va afia mesajul Pasagerul a fost sters., altfel
se va afisa Pasagerul cu CNP-ul introdus nu a fost gsit.
Opiunea Continuai?(DA/NU) este prezent i in
acest meniu, permind oricnd revenirea n meniul principal.
n continuare aplicaia vizeaz baza de date curse.dbf
asupra creia se permit operaii de adugare, modificare i
tergere de nregistrri.
Adugare cursa
Primete de la tastatur valorile cmpurilor numar
cursa, aeroport plecare, aeroport sosire, ora plecare, ora
sosire, numar locuri. Acestea impreun vor forma o nou
nregistrare n baza de date. Ca i in cazul adugrii de
pasageri, este posibil rmnerea n acelai meniu pentru a
continua cu alte adugri.
10

Modificare date cursa


Opiune care va cuta cursa dorit in baza de date dup
numrul acesteia. Acesta se va introduce de la tastatura. Apoi,
funcionalitatea este aceeai precum la Modificare pasager.
tergere date curs

Ca i in cazul precedent, se va tasta numrul cursei dup


care se va face cutarea. Dac a fost gsit cursa se va afia
mesajul din imaginea de mai sus, altfel se va afisa Cursa cu
numrul <nr introdus> nu a fost gsit n baza de date.
11

Vizualizare
Prezint dou butoane, Pasageri de la o data i Curse.

Pasageri de la o data
Se va introduce de la tastaur o dat, dorindu-se afiarea
pasagerilor care au selectat aceast dat ca dat de plecare.
Avnd ca i criteriu de cutare cmpul data_p va afia pe
ecran toi pasagerii care ndeplinesc condiia. n cazul n care
niciun pasager nu a selectat aceast dat, se va afisa mesajul
Nu exist pasageri care au facut rezervare la aceast dat.

Curse
Va simula o lista prezentat pe ecranele aeroporturilor,
cu modificarea c va afia toate cursele pe care le deine baza
de date curse.dbf.

12

Ieire
Ultimul buton al meniului principal prezint dou
opiuni, Iesire in FoxPro i Iesire in Sistemul de operare.
Folosind comanda CANCEL, prima opiune va anula
programul curent (aplicaia) i va reveni in linia de comand a
mediului FoxPro. Folosind comanda QUIT, a doua va inchide
mediul FoxPro, revenind n sistemul de operare.

13

Codul surs
SET TALK OFF
DEFINE WINDOW window1 FROM 0, 0 TO 73, 213 PANEL NOGROW NOZOOM
COLOR RGB(0,0,0,0,191,255)
DEFINE WINDOW aeroport FROM 0, 0 TO 54, 213 FONT 'Microsoft
Sans Serif' SYSTEM NOCLOSE NOGROW MINIMIZE NOZOOM COLOR
RGB(0,0,0,255,178,102)
ACTIVATE WINDOW window1
@ 0, 4 SAY 'X X X X X X X X X X X X X X X X X X X X X X X X X
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
X X X X X X X X X X X X X' FONT 'Cambria Math', 10 STYLE 'B'
FOR i = 0 TO 67 STEP 4
@ i, 2 SAY 'X' FONT 'Cambria Math', 12 STYLE 'B'
ENDFOR
FOR i = 0 TO 67 STEP 4
@ i, 154 SAY 'X' FONT 'Cambria Math', 12 STYLE 'B'
ENDFOR
@ 4, 57 SAY 'Liceul Teoretic Mihai Eminescu' FONT 'Cambria
Math', 16 STYLE 'B'
@ 20, 50 SAY 'Evidenta unui aeroport' FONT 'Cambria Math', 30
STYLE 'B'
@ 40, 10 SAY 'Profesor coordonator: Vlad Viorel' FONT 'Cambria
Math', 16 STYLE 'B'
@ 40, 108 SAY 'Elev: Neagu Alexandru - Marian' FONT 'Cambria
Math', 16 STYLE 'B'
@ 61, 70 SAY 'Mai 2014' FONT 'Cambria Math', 16 STYLE 'B'
@ 67, 4 SAY 'X X X X X X X X X X X X X X X X X X X X X X X X X
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
X X X X X X X X X X X X X' FONT 'Cambria Math', 10 STYLE 'B'
WAIT WINDOW ' --> Enter'
DEACTIVATE WINDOW window1
ACTIVATE WINDOW aeroport
DEFINE MENU meniu_principal IN WINDOW aeroport FONT 'Microsoft
Sans Serif'
DEFINE PAD actualizare OF meniu_principal PROMPT
'Actualizare'
DEFINE PAD actualizare_curse OF meniu_principal PROMPT
'Actualizare curse'
DEFINE PAD vizualizare OF meniu_principal PROMPT
'Vizualizare'
DEFINE PAD iesire OF meniu_principal PROMPT 'Iesire'
DEFINE POPUP actualizare FROM 2, 0
DEFINE BAR 1 OF actualizare PROMPT 'Adauga pasager'
DEFINE BAR 2 OF actualizare PROMPT 'Modifica date pasager'
DEFINE BAR 3 OF actualizare PROMPT 'Sterge date pasager'
14

ON SELECTION BAR 1 OF actualizare DO adaugare_pasager


ON SELECTION BAR 2 OF actualizare DO
modificare_pasager
ON SELECTION BAR 3 OF actualizare DO stergere_pasager
DEFINE POPUP actualizare_curse FROM 2, 16
DEFINE BAR 1 OF actualizare_curse PROMPT 'Adauga cursa'
DEFINE BAR 2 OF actualizare_curse PROMPT 'Modifica date
cursa'
DEFINE BAR 3 OF actualizare_curse PROMPT 'Sterge date
cursa'
ON SELECTION BAR 1 OF actualizare_curse DO
adaugare_cursa
ON SELECTION BAR 2 OF actualizare_curse DO
modificare_cursa
ON SELECTION BAR 3 OF actualizare_curse DO
stergere_cursa
DEFINE POPUP vizualizare FROM 2, 37
DEFINE BAR 1 OF vizualizare PROMPT 'Pasageri de la o data'
DEFINE BAR 2 OF vizualizare PROMPT 'Curse'
ON SELECTION BAR 1 OF vizualizare DO viz_pasageri
ON SELECTION BAR 2 OF vizualizare DO viz_curse
DEFINE POPUP iesire FROM 2, 53
DEFINE BAR 1 OF iesire PROMPT 'Iesire in FoxPro'
DEFINE BAR 2 OF iesire PROMPT 'Iesire in Sistemul de
operare'
ON SELECTION BAR 1 OF iesire DO iesire
ON SELECTION BAR 2 OF iesire QUIT
ON SELECTION PAD actualizare OF meniu_principal ACTIVATE POPUP
actualizare
ON SELECTION PAD actualizare_curse OF meniu_principal ACTIVATE
POPUP actualizare_curse
ON SELECTION PAD vizualizare OF meniu_principal ACTIVATE POPUP
vizualizare
ON SELECTION PAD iesire OF meniu_principal ACTIVATE POPUP
iesire
DO WHILE .T.
ACTIVATE MENU meniu_principal
ENDDO
PROCEDURE adaugare_pasager
SET DATE DMY
USE pasageri
HIDE POPUP actualizare
HIDE POPUP actualizare_curse
HIDE POPUP vizualizare
sw = 'DA'
DO WHILE ALLTRIM(UPPER(sw)) = 'DA'
CLEAR
APPEND BLANK
@ 4, 8 SAY 'Nume:
@ 5, 8 SAY 'Prenume:
15

' GET nume


' GET prenume

@ 6, 8 SAY 'CNP:
'
@ 7, 8 SAY 'Numar loc:
'
@ 8, 8 SAY 'Aeroport plecare: '
@ 9, 8 SAY 'Aeroport sosire:
'
@ 10, 8 SAY 'Numar cursa:
'
@ 11, 8 SAY 'Data plecarii:
sw = ' '
@ 13, 8 SAY 'Continuati?(DA/NU)'
READ
ENDDO
CLEAR
CLOSE DATABASES
ENDPROC

GET cnp
GET nr_loc
GET plecare
GET sosire
GET nr_cursa
' GET data_p
GET sw

PROCEDURE modificare_pasager
SET DATE DMY
USE pasageri
HIDE POPUP actualizare
HIDE POPUP actualizare_curse
HIDE POPUP vizualizare
sw1 = 'DA'
DO WHILE ALLTRIM(UPPER(sw1)) = 'DA'
CLEAR
lNume = SPACE(10)
lPrenume = SPACE(10)
lCnp = SPACE(15)
lNr_loc = 0
lPlecare = SPACE(10)
lSosire = SPACE(10)
lNr_cursa = 0
@ 4, 8 SAY 'Nume: ' GET lNume
@ 5, 8 SAY 'Prenume: ' GET lPrenume
@ 6, 8 SAY 'CNP: ' GET lCnp
READ
LOCATE FOR ALLTRIM(UPPER(nume)) =
ALLTRIM(UPPER(lNume)) AND ALLTRIM(UPPER(prenume)) =
ALLTRIM(UPPER(lPrenume)) AND ALLTRIM(UPPER(cnp)) =
ALLTRIM(UPPER(lCnp))
IF FOUND()
@ 8, 8 SAY 'Numar loc: ' GET lNr_loc
@ 9, 8 SAY 'Aeroport plecare: ' GET lPlecare
@ 10, 8 SAY 'Aeroport sosire: ' GET lSosire
@ 11, 8 SAY 'Numar cursa: ' GET lNr_cursa
READ
REPLACE nr_loc WITH lNr_loc
REPLACE plecare WITH lPlecare
REPLACE sosire WITH lSosire
REPLACE nr_cursa WITH lNr_cursa
ELSE
@ 8, 8 SAY 'Pasagerul cu datele introduse nu a
fost gasit in baza de date.'
16

ENDIF
sw1 = ' '
@ 13, 8 SAY 'Continuati ?(DA/NU)' GET sw1
READ
ENDDO
CLEAR
CLOSE DATABASES
ENDPROC
PROCEDURE stergere_pasager
SET DATE DMY
USE pasageri
HIDE POPUP actualizare
HIDE POPUP actualizare_curse
HIDE POPUP vizualizare
sw1 = 'DA'
DO WHILE ALLTRIM(UPPER(sw1)) = 'DA'
CLEAR
lCnp = SPACE(15)
@ 4, 8 SAY 'CNP: ' GET lCnp
READ
LOCATE FOR ALLTRIM(cnp) = ALLTRIM(lCnp)
IF FOUND()
DELETE
PACK
@ 6, 8 SAY 'Pasagerul a fost sters.'
ELSE
@ 6, 8 SAY 'Pasagerul cu CNP-ul introdus nu a
fost gasit.'
ENDIF
sw1 = ' '
@ 8, 8 SAY 'Continuati ?(DA/NU)' GET sw1
READ
ENDDO
CLEAR
CLOSE DATABASES
ENDPROC
PROCEDURE adaugare_cursa
SET DATE DMY
USE curse
HIDE POPUP actualizare
HIDE POPUP actualizare_curse
HIDE POPUP vizualizare
sw = 'DA'
DO WHILE ALLTRIM(UPPER(sw)) = 'DA'
CLEAR
APPEND BLANK
@ 4, 8 SAY 'Numar cursa: ' GET nr_cursa
@ 5, 8 SAY 'Aeroport plecare: ' GET plecare
@ 6, 8 SAY 'Aeroport sosire: ' GET sosire
17

@ 7, 8 SAY 'Ora plecare: ' GET ora_p


@ 8, 8 SAY 'Ora sosire: ' GET ora_s
@ 9, 8 SAY 'Numar locuri avion: ' GET nr_locuri
sw = ' '
@ 11, 8 SAY 'Continuati ?(DA/NU)' GET sw
READ
ENDDO
CLEAR
CLOSE DATABASES
ENDPROC
PROCEDURE modificare_cursa
SET DATE DMY
USE curse
HIDE POPUP actualizare
HIDE POPUP actualizare_curse
HIDE POPUP vizualizare
sw1 = 'DA'
DO WHILE ALLTRIM(UPPER(sw1)) = 'DA'
CLEAR
lNr_cursa = SPACE(4)
lPlecare = SPACE(10)
lSosire = SPACE(10)
lOraP = SPACE(5)
lOraS = SPACE(5)
lNr_locuri = 0
@ 4, 8 SAY 'Numar cursa: ' GET lNr_cursa
READ
LOCATE FOR ALLTRIM(UPPER(nr_cursa)) =
ALLTRIM(UPPER(lNr_cursa))
IF FOUND()
@ 6, 8 SAY 'Aeroport plecare: ' GET lPlecare
@ 7, 8 SAY 'Aeroport sosire: ' GET lSosire
@ 8, 8 SAY 'Ora plecare: ' GET lOraP
@ 9, 8 SAY 'Ora sosire: ' GET lOraS
@ 10, 8 SAY 'Numar locuri avion: ' GET
lNr_locuri
READ
REPLACE plecare WITH lPlecare
REPLACE sosire WITH lSosire
REPLACE ora_p WITH lOraP
REPLACE ora_s WITH lOraS
REPLACE nr_locuri WITH lNr_locuri
ELSE
@ 6, 8 SAY 'Cursa cu numarul '
@ 6, 26 SAY lNr_cursa
@ 6, 30 SAY ' nu a fost gasita in baza de date.'
ENDIF
sw1 = ' '
@ 12, 8 SAY 'Continuati ?(DA/NU)' GET sw1
READ
18

ENDDO
CLEAR
CLOSE DATABASES
ENDPROC
PROCEDURE stergere_cursa
SET DATE DMY
USE curse
HIDE POPUP actualizare
HIDE POPUP actualizare_curse
HIDE POPUP vizualizare
sw1 = 'DA'
DO WHILE ALLTRIM(UPPER(sw1)) = 'DA'
CLEAR
lNr_cursa = SPACE(15)
@ 4, 8 SAY 'Numar cursa: ' GET lNr_cursa
READ
LOCATE FOR ALLTRIM(nr_cursa) = ALLTRIM(lNr_cursa)
IF FOUND()
DELETE
PACK
@ 6, 8 SAY 'Cursa cu numarul '
@ 6, 26 SAY lNr_cursa
@ 6, 30 SAY ' a fost stearsa din baza de date.'
ELSE
@ 6, 8 SAY 'Cursa cu numarul '
@ 6, 26 SAY lNr_cursa
@ 6, 30 SAY ' nu a fost gasita in baza de date.'
ENDIF
sw1 = ' '
@ 8, 8 SAY 'Continuati ?(DA/NU)' GET sw1
READ
ENDDO
CLEAR
CLOSE DATABASES
ENDPROC
PROCEDURE viz_curse
HIDE POPUP actualizare
HIDE POPUP actualizare_curse
HIDE POPUP vizualizare
USE curse
GO TOP
DEFINE WINDOW viz_curse FROM 10, 24 TO 53, 160 FONT
'Microsoft Sans Serif' STYLE 'B' SYSTEM CLOSE FLOAT NOGROW
MINIMIZE NOZOOM COLOR RGB(0,0,0,255,255,255)
ACTIVATE WINDOW viz_curse
CLEAR
i = 2
@ 1, 8 SAY 'Numar cursa |'
19

@ 1, 23 SAY 'Aeroport plecare |'


@ 1, 42 SAY 'Aeroport sosire |'
@ 1, 60 SAY 'Ora plecare |'
@ 1, 74 SAY 'Ora sosire |'
@ 1, 87 SAY 'Numar locuri'
@ 2, 8 SAY
'_____________________________________________________________
___________________'
DO WHILE NOT EOF()
i = i + 1
@ i, 8 SAY nr_cursa
@ i, 23 SAY plecare
@ i, 42 SAY sosire
@ i, 60 SAY ora_p
@ i, 74 SAY ora_s
@ i, 87 SAY nr_locuri
i = i + 1
@ i, 8 SAY
'_____________________________________________________________
___________________'
SKIP 1
ENDDO
DEFINE MENU closing
DEFINE PAD inchidere OF closing PROMPT 'Inchidere' AT i +
2, 8
ON SELECTION PAD inchidere OF closing DEACTIVATE WINDOW
viz_curse
ACTIVATE MENU closing
DEACTIVATE WINDOW viz_curse
DEACTIVATE MENU closing
CLEAR
CLOSE DATABASES
ENDPROC
PROCEDURE viz_pasageri
HIDE POPUP actualizare
HIDE POPUP actualizare_curse
HIDE POPUP vizualizare
USE pasageri
SET DATE DMY
DEFINE WINDOW viz_curse FROM 10, 24 TO 53, 180 FONT
'Microsoft Sans Serif' STYLE 'B' SYSTEM CLOSE FLOAT NOGROW
MINIMIZE NOZOOM COLOR RGB(0,0,0,255,255,255)
ACTIVATE WINDOW viz_curse
lData = {^0001-01-01}
SET DATE DMY
@ 1, 8 SAY 'Introduceti data: ' GET lData
READ
LOCATE FOR data_p = lData
IF FOUND()
GO TOP
20

CLEAR
i = 3
@ 2, 8 SAY 'Nume |'
@ 2, 18 SAY 'Prenume |'
@ 2, 30 SAY 'CNP
'
@ 2, 45 SAY '| Numar loc |'
@ 2, 61 SAY 'Aeroport plecare |'
@ 2, 81 SAY 'Aeroport sosire |'
@ 2, 100 SAY 'Numar cursa'
@ 3, 8 SAY
'_____________________________________________________________
_________________________________'
DO WHILE NOT EOF()
IF lData = data_p
i = i + 1
@ i, 8 SAY nume
@ i, 18 SAY prenume
@ i, 30 SAY cnp
@ i, 47 SAY nr_loc
@ i, 61 SAY plecare
@ i, 81 SAY sosire
@ i, 100 SAY nr_cursa
i = i + 1
@ i, 8 SAY
'_____________________________________________________________
________________________________'
ENDIF
SKIP 1
ENDDO
ELSE
@ 3, 8 SAY 'Nu exista pasageri care au facut
rezervare la data aceasta.'
i = 3
ENDIF
DEFINE MENU closing
DEFINE PAD inchidere OF closing PROMPT 'Inchidere' AT i +
2, 8
ON SELECTION PAD inchidere OF closing DEACTIVATE WINDOW
viz_curse
ACTIVATE MENU closing
DEACTIVATE MENU closing
CLEAR
CLOSE DATABASES
ENDPROC
PROCEDURE iesire
DEACTIVATE WINDOW aeroport
CANCEL
ENDPROC

21

Bibliografie
1.Manual informatic Varianta Visual FoxPro , clasa a XII-a ,
Editura L&S info-mat
Autori: Mariana Poniru , Ionu Poniru , Irina Poniru
2.Manual informatic clasa a XII-a
Editura Petriom
Autori: Radu Visinecu , Constantin Scheau

22

S-ar putea să vă placă și