Cuprins
- 1. Prezentare generala 1
- 2. Operatii cu fisier text 4
- 3. Operatii cu fisier binar 4
- 4. Operatii cu lista dublu inlantuita 5
- 5. Operatii cu arborele binar de cautare 6
- 6. Grafurile asociate 10
- Fisier text 10
- Fisier binar 11
- Lista dublu inlantuita 12
- Arborele binar de cautare 13
- 7. Variabile folosite 14
- 8. Pseudocod 16
- Fisier text 16
- Fisier binar 18
- Pogram principal 19
- 9. Continutul programului 29
- 10.Bibliografie 58
Extras din proiect
PREZENTARE GENERALE
In proiectul urmator am creat o baza de date cu referire la un hotel (ANGELA).
Baza de date este impartita in doua fisiere:
-text
-binar.
Fisierul text (client.txt) se ocupa cu datele despre clientii hotelului si are urmatoarele campuri :
-nume client;
-prenume client;
-codul numeric personal al clientului;
-numarul de telefon
-camera in care locuieste sau a locuit clientul;
-perioada de cazare a clintului.
Fisierul binar(camera) se ocupa cu datele despre camere si are urmatoarele campuri :
-numarul camerei ;
-numele cameristei ce se ocupa de respectiva camera ;
-prenumele cameristei ce se ocupa de respectiva camera ;
-felul camerei :
-apartament ;
-garsoniere ;
-single ;
-double ;
-daca are sau nu baie proprie ;
-numarul de paturi ce contine respectiva camera ;
Am creat un arbore si o lista dublu inlantuita ce au aceleasi campuri ca si fisierul text,arborele se poate copia din fisierul text si apoi dupa ce am facut modificarile dorite le putem goli inapoi in fisierul text. Lista dublu inlantuita este o alta baza de date legata tot de clientii hotelului,dar nu este aceeasi ca si o fisierului,chiar daca are aceeasi structura.
Mi-am imaginat o problema si anume aceea ca o persoana se afla in interiorul hotelului si se doreste sa se tiparesca drumul cel mai scurt pe care acea peroana ar trebui sa o ia pentru a iesi cat mai repede din hotel,fara sa se rataceasca. Am rezolvat-o cu ajutorul metodei Backtracking recursiv.
In eventualitate ca la hotel ar veni un grup de personane si ar dori sa plece in vizitarea lucurilor inconjuratoare am creat grupuri de n persoane (n introdus de utilizator)
dar cu conditia ca in fiecare grup sa existe cel putin o persoana care sa aiba perioada de cazare mai mare sau egal cu 2.
Operatii cu fisietul text :
* creareText()
Daca fisierul nu a fost creat inca si creaza acum.
* adaugareText()
Adaugarea unui noi inregistrari in fisier Daca fisierul text a fost creat in prealabil adaugam la inceputul fisierului inregistrarea introdusa de la tastatura.
*stergereText()
Stergerea unei integistari Stergerea se face dupa numarul camerei introdus de utilizator,daca se gaseste acea camera se sterge din fisier,daca nu fisierul ramane neschimbat.
*cautareText()
Cautarea unui inregistrari din fisierul text.Cautarea se face dupa numarul camerei,daca s-a gasit o inregistrare ce are numarul camerei ca sic el introdus de utilizator si va afisa.
*listareText()
Listarea fisierului text,se face sub forma de table (nume,prenume,cod numeric personal,numar de telefon,numerul camerei,periaoda de cazare).
*sor()
Apelarea acestei functii ne sorteaza in ordine crescatoare toate intregistrarile din
fisierul text folosind algoritmul de sortare prin interschimbare directa.
Operatii cu fisierul binar:
*creareBinar()
Crearea fisierului binar de la tastatura.Daca fisierul nu a fost creat in prealabil se creaza de la tastatura apeland aceasta procedura.
*adaugareBinar()
Adaugarea unei noi inregistrari de la tastatura in fisierul binar.
*modificareBinar()
Modificarea unei inregistrari.Inregistrarea se cauta in fisierul binar dupa numarul camerei si daca s-a gasit se inlocuiesc valorile respectivei integistrari.
*stergereBinar()
Stergere unei innregistrari din fisierul binar. Inregistrarea se cauta dupa numarul camerei,introdusa in prealabil de utilizator,atunci cand se gaseste se sterge din fisier,daca nu se gaseste nici o inregistrare ce are acest numar al camerei nu se intampla nimic cu fisierul binar si se afiseaza un mesaj corespunzator.
*afisareBinar()
Listarea inregistrarilor din fisierul binar sub fosrma tabelata daca si numai daca fisierul binar a fost creat inainte.
Operatii cu lista dublu inlantuita:
*creare()
Aprelarea procedurii creare() creaza lista dublu inlantuita doar daca aceasta nu a fost creata inainte.
*addInceput()
Apelarea procedurii addInceput() adauga la inceputul listei o inregistrare creata de la tastatura doar daca lista a fost creata inainte.
*addSfarsit()
Apelarea procedurii addSfarsit() adauga la sfarsiul listei o inregistrare introdusa de la tastatura de catre utilizator doar daca lista dublu inlatuita a fost creata imprealabil.
*addDupaNod()
Aceasta procedura adauga o intregistrare introdusa de catre utlizator de la tastatura dupa un anumit nod cauta si gasit dupa campul camera,daca aceasta nu este gasita in lista se adauga la sfarsit.
*addInainteNod()
Apelarea procedurii addInainteNod() adauga inaintea unui inregistrari gasite dupa numarul camerei,o inregistrare introdusa de utlilizator de la tastatura,asta daca si numai daca lista nu este vida.
*stergeInceput()
Procedura stergeInceput() sterge prima inregistrare din lista,doar daca lista este creata inainte,daca nu se creaza intai lista.Daca lista are un singur nod se va sterge acesta si lista va develi vida.
*stergeSfarsit()
Procedura stergeSfarsit() sterge ultima inregistrare din lista iar ultimul nod devine penultimul,asta daca si numai daca lista nu este vida.Daca lista are un singur nod se va sterge acesta si lista va deveni vida.
*stergeNod()
Apelarea acestei proceduri va sterge nodul ce are numarul camerei cel introdus de utilizator,daca aceasta camera nu se afla in lista dublu inlantuita nu se va sterge nimic.
Preview document
Conținut arhivă zip
- Tehnici de Programare
- PROIECTg.CPP
- Tehnici de Programare.doc