Structuri de date
AGENDA TELEFONICA
Cuprins
Introducere
Structura programului
Structurile de date utilizate intern
Descrierea implementarii operatiilor de baza
Concluzii
Bibliografie
Anexe
1. Introducere
Obiectivul proiectului este acela de a creea o agenda telefonica, astfel se realizeaza o mai usoara evidenta a contactelor, retinand atat numarul de telefon, cat si orasul, judetul si strada fiecarui abonat in parte.
Programul ofera o posibilitate fiabila pentru gestionarea agendei telefonice personale sau a unei companii. Toate operatiile se efectueaza cu ajutorul meniului de inceput; acesta permite adaugarea, vizualizarea, stergerea si cautarea contactelor.
Datele se adauga interactiv de la tastatura; la iesirea din aplicatie, agenda modificata se salveaza automat intr-un fisier.
2. Structura programului
Programul lucreaza cu o lista simplu inlantuita, ce foloseste ca informatie articole cu urmatoarele campuri :
struct abonat
In program se utilizeaza tipuri de date: numeric (date de tip int si double) si sir de caractere (date te tip char).
Programul realizeaza citirea de la tastatura a datelor, dupa care se introduc intr-un fisier care va fi citit de fiecare data cand se va rula programul. Dupa citirea datelor utilizatorul poate alege intre mai multe functii aflate in meniul din programul principal.
3. Structurile de date utilizate intern:
Programul utilizeaza urmatoarele structuri de date: fisierul, lista simplu inlatuita si masivul unidimensional - vectorul.
Fisierul este o colectie de date omogene stocate pe un suport de memorie externa.
Indiferent de limbajul de programare folosit, operatiile necesare pentru prelucarea fisierelor sunt urmatoarele:
Descrierea fisierului;
Asignarea fisierului intern (numele logic) la unul extern;
Deschiderea fisierului;
Operatii de acces la date;
Inchiderea fisierului.
Listele simplu inlantuite
O lista inlantuita este o structura de date in care obiectele sunt aranjate intr-o anumita ordine. Spre deosebire de un tablou, in care ordinea este determinata de indicii tabloului, ordinea intr-o lista inlantuita este determinata de un pointer continut in fiecare obiect. Listele inlantuite asigura o reprezentare mai simpla si mai flexibila pentru multimi dinamice, suportand toate operatiile clasice: adauga element, elimina element, cauta element etc.
Unei liste simplu inlantuite i se omite referinta catre elementul anterior. Astfel putem spune ca avem informatii referitoare doar la urmatorul element, informatiile catre anterior lipsind.
Structura nodurilor din lista simpla inlantuita este urmatoarea:
struct lista ;
Masivele sunt structuri
de date omogene cu un numar finit si
cunoscut de elemente, ce ocupa un spatiu contiguu de memorie.
Structurile de date de tip masiv reprezinta instrumente de stocare a
datelor sub forma de zone compacte si continue din memoria
calculatorului.
Un masiv este caracterizat de urmatoarele elemente:
- numele;
- tipul de data asociat;
- numarul de dimensiuni;
- numarul de elemente pentru fiecare dimensiune.
Masive
unidimensionale (vectori)
Vectorii sunt masive unidimensionale. In C++ vectorii se declara folosind
sintaxa:
tip nume[n];
unde:
-
tip - tipul de data folosit; poate fi unul din tipurile de baza (int,
float, char, .) sau un tip definit de utilizator (articole, obiecte);
-
nume - numele prin care va fi referit vectorul;
-
n - numarul de elemente ale vectorului.
In varianta statica, un masiv unidimensional v cu maxim 100 de elemente se
defineste astfel: int v[100]; In varianta dinamica, definirea este
realizata printr-un pointer la masivul unidimensional v: int *v;
4. Descrierea implementarii operatiilor de baza:
Programul utilizeaza urmatoarele functii
citire_abonat(abonat* &a)
- primeste ca parametru un articol de tip abonat
- preia de la tastatura cod, numele persoanei, adresa, oras, judet si telefon.
inserare_nod(lista*& prim, abonat *x)
Primeste ca parametrii primul element al listei si un articol de tip abonat
Functia adauga in lista simplu inlantuita un element nou de tip abonat
3. abonat* cautare(char *nm,lista* prim)
- functia primeste ca parametrii un element de tip char si primul element al listei simplu inlantuite. Aceasta returneaza o valoare de tip abonat.
- functia cauta in lista abonatul dupa un anumit nume dupa care il returneaza
afisare_abonat(abonat* a)
- primeste ca parametru un element de tip abonat
- afiseaza din lista abonatul cautat
stergere_nod(char *nm,lista*& prim)
- primeste ca parametrii un element de tip char semnificand numele si primul element al listei;
- aceasta functie sterge un element din lista cautat dupa un nume dat;
void salvare(lista* prim,FILE *f)
- primeste ca parametrii primul element al listei si fisierul in care se stocheaza datele care au fost folosite in program;
- functia salveaza elementele din lista in fisier dupa ce au fost facute modificari
void list_ls(lista* prim)
- functia primeste ca parametru primul element al listei si apoi afiseaza toate elementele acesteia;
void afisare_oras(char *or, lista* prim)
-functia primeste ca parametrii un element char ce reprezinta orasul cautat si primul element al listei.
-cauta in intreaga lista toti abonatii ce se gasesc intr-un anume oras.
5. Concluzii
In urma elaborarii acestui proiect am ajuns la urmatoarele concluzii :
Acest program este usor de folosit si necesita foarte putine resurse. Asigura cea mai buna si mai rapida metoda de stocare a datelor, fisierul.
Dupa incheierea operatiilor, aplicatia salveaza agenda automat intr-un fisier, de unde poate fi preluata mai apoi, si elibereaza zona de memorie ocupata. Aceste caracteristici fac acest program fiabil si de incredere.
6. Bibliografie
[IVAN08] |
Ion IVAN, Marius POPA, Paul POCATILU - - Structuri de date,vol.1 si 2, Editura ASE, Bucuresti, 2008 |
[ROSC03] |
Ion Gh. Rosca, Bogdan Ghilic Micu, Catalina Lucia Cocianu, Marian Stoica, Cristian Uscatu - Programarea calculatoarelor. Stiinta invatarii unui limbaj de programare. Teorie si aplicatii, Editura ASE, Bucuresti, 2003. |
[SMEU01] |
Ion SMEUREANU, Marian DARDALA,"Programare in limbajul C/C++ Editura Cison, Bucuresti 2001 |
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |