Structuri de date - gestiunea activității unei asociații studențești

Proiect
8/10 (1 vot)
Conține 1 fișier: doc
Pagini : 35 în total
Cuvinte : 8211
Mărime: 41.11KB (arhivat)
Cost: 9 puncte
Profesor îndrumător / Prezentat Profesorului: Ion Ivan,Ciurea Cristian
ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETICĂ, STATISTICĂ şi INFORMATICĂ ECONOMICĂ

Cuprins

1. Introducere

a. Definirea problemei

b. Obiectivul problemei

c. Necesitate

d. Utilitate Economica

2. Structura programului

3. Structurile de date utilizate

a. Definiţii si descriere

b. Implementare

c. Operaţiile elementare utilizate

4. Descrierea implementării operaţiilor de baza

5. Concluzii

6. Bibliografie

7. Anexa – codul sursă

Extras din document

1. Introducere

Proiectul constă în realizarea unui program care are ca scop gestiunea unui magazin de vinuri, în vederea regăsirii ,introcucerii,modificarii si stergerii vinurilor din magazin,prin diferite functii .

a. Definirea problemei

Se cere realizarea unui program care oferă utilizatorului posibilitatea de a gestiona un magazin de vinuri,in functie de necesitatea acestuia(adaugare,stergere,modificare,cautare,listare).

b. Obiectivul problemei

Obiectivul acestui program urmareste rularea unor comenzi care vor efectua prelucrari asupra bazei de date a magazinului.

c. Necesitatea

Avand in vedere ca am cunostinte care au diferite tipuri de magazine, am observat ca au greutai in a mentine gestiunea acestora. Astfel consider util un astfel de program in gestiunea diferitelor magazine,nu foarte dezvoltate,implicit unul de vinuri

d. Utilitatea economica este aceea de a permite gestionarea de vinuri în cadrul unui magazin de profil.

2. Structura programului

Programul realizează citirea de la tastatura a datelor studenţilor, introducerea lor într-o structură dinamică de date, de tip lista dublu înlănţuită sau intr-un arbore binar de cautare. După citirea datelor, de la tastatura sau din fisier, utilizatorul poate alege între afişarea vinurilor introduse,pe ecran sau in fisier txt, căutarea de informaţii despre vinuri în baza de date, modificare a informatiilor vinurilor, ştergerea vinurilor din baza de date,folosind liste duble sau arbori binari de cautare.

3. Structurile de date utilizate

a. Definiţii şi descriere

Pentru simularea structurii bazei de date am folosit doua structuri de date de tip articol ce conţin:

structura DATA:zi, luna, an; structura VIN:cod, nume, categorie, vechime, culoare, pret, data_intarare(de tip DATA), cantitate; o structură de tip listă dublu înlănţuită, ce conţine în nodurile sale informaţia din fiecare articol de tip VIN introdus;o structura de tip arbore binar de cautare ce contine in nodurile sale informatia din fiecare articol de tip VIN introdus.

Articolul este o structură de date eterogenă, cu acces direct la elementele sale, între care există o relaţie de ordine ierarhică.

Lista dublu înlănţuită este o structură secvenţială de date, fiecare element conţinând informaţia propriu-zisă şi doi pointeri: unul către elementul următor şi altul către elementul precedent.

Un arbore binar este o mulţime de noduri în care fiecare nod are 0,1 sau 2 succesori, fiecare nod are un singur predecesor, cu excepţia rădăcinii care nu are niciunul, succesorii fiecărui nod sunt ordonaţi (fiul stâng, fiul drept; dacă este unul singur trebuie menţionat care).

b. Implementare

Pentru a implementa ideea proiectului, a fost folosită o structură de tip listă dublu înlănţuită si una de tip arbore binar de cautare, ambele cu informaţie de tip articol, citita de la tastatura sau din fisier txt.

Articolul utilizat pentru a memora datele fiecărui student, are următoarea structură:

struct DATA

{

int zi,luna,an;

};

struct VIN

{

int cod;

char nume[20];

char categorie[20];

int vechime;

char culoare[20];

int pret;

DATA data_intrare;

int cantitate;

};

Structura nodurilor din lista dublu înlănţuită este următoarea:

struct nod

{

VIN x;

nod *urm,*ant;

};

Structura nodurilor arborele binar este următoarea:

struct arbore

{

VIN x;

arbore *ls,*ld;

};

c. Operaţii elementare utilizate

Operaţiile elementare utilizate în lucrul cu structurile de date de mai sus sunt:

Pentru listă dublu înlănţuită:

- inserarea la sfârşit de informatie(citita de la tastatura sau din fiser txt)

- inserare la inceput

- căutarea unui nod dupa o informaţie dată

- modificarea unui nod dupa o informaţie dată

- ştergerea unui nod dupa o informaţie dată

- afişarea

- afişarea într-un fişier text

Pentru arbore:

- inserarea de informatie(citita de la tastatura sau din fiser txt)

- căutarea unui nod dupa o informaţie dată

- modificarea unui nod dupa o informaţie dată

- ştergerea unui nod dupa o informaţie dată

- afişarea

Pentru articolul de tip student

- citirea de la tastatură

- citirea din fişier

4. Descrierea implementării operaţiilor de bază

Programul utilizează următoarele proceduri:

Functia de creare a unui articol de tip VIN

VIN creare_vin()

{

cout<<"nn-----------Creare element de tip VIN--------------";

char nume[20],categorie[20],culoare[20];

int v ,p,z,l,a,c,n; VIN y;

fflush(stdin);

cout<<"nDati numele vinului: ";gets(nume);

fflush(stdin);

cout<<"nDati categoria: ";gets(categorie);

fflush(stdin);

cout<<"nDati vechimea: ";cin>>v;

if(!cin){ cerr<<" Eroare de citire a variabilei vechime!"; cin.clear(); fflush(stdin); cout<<"nDati din nou vechimea(intreg): ";cin>>v; fflush(stdin);}

fflush(stdin);

cout<<"nDati culoarea: ";gets(culoare);

fflush(stdin);

cout<<"nDati pretul: "; cin>>p;

if(!cin){ cerr<<" Eroare de citire a variabilei pret!"; cin.clear(); fflush(stdin); cout<<"nDati din nou pretul(intreg): "; cin>>p; fflush(stdin);}

printf("nData intrarii (zz/ll/aaaa): "); scanf("%d/%d/%d",&z,&l,&a);

cout<<"nDati cantitatea: "; cin>>c;

if(!cin){ cerr<<" Eroare de citire a variabilei cantitate!"; cin.clear();fflush(stdin); cout<<"nDati cantitatea(intreg): "; cin>>c; fflush(stdin); }

fflush(stdin);

cout<<"nDati Codul: "; cin>>n;

if(!cin){ cerr<<" Eroare de citire a variabilei cod!"; cin.clear();fflush(stdin); cout<<"nDati codul(intreg): "; cin>>n; fflush(stdin); }

y.cantitate=c;

strcpy(y.categorie,categorie);strcpy(y.culoare,culoare);y.data_intrare.zi=z;

y.data_intrare.luna=l; y.data_intrare.an=a; strcpy(y.nume,nume); y.pret=p;

y.vechime=v; y.cod=n;

return y;

}

Funcţia de citire a unui vector de vinuri alocat dinamic, din fisier txt

void citire_fisier(VIN *vin)

{

cout<<"nn------------Citire de elemente de tip VIN din fisier----------";

fstream f("vin1.txt");

if(f)

{

int n;

f>>n; f.get();

for(int i=0;i<n;i++)

{

fflush(stdin);

char *buf=new char[20];

f.getline(buf,20);

strcpy(vin[i].nume,buf);

fflush(stdin);

int cod;

f>>cod; f.get();

vin[i].cod=cod;

fflush(stdin);

char *buf2=new char[20];

f.getline(buf2,20);

strcpy(vin[i].categorie,buf2);

fflush(stdin);

int varsta;

f>>varsta; f.get();

vin[i].vechime=varsta;

fflush(stdin);

char *buf3=new char[20];

f.getline(buf3,20);

strcpy(vin[i].culoare,buf3);

fflush(stdin);

int pret;

f>>pret; f.get();

vin[i].pret=pret;

fflush(stdin);

int z,l,a;

f>>z>>l>>a; f.get();

vin[i].data_intrare.zi=z;

vin[i].data_intrare.luna=l;

vin[i].data_intrare.an=a;

fflush(stdin);

int c;

f>>c; vin[i].cantitate=c;

f.get();

}

}

else cout<<"n Nu exista fisierul vin1.txt";

}

Funcţia de inserare la sfârşit a unui articol de tip VIN într-o lista dublu înlănţuită:

Funcţia realizează inserarea unei informaţii de tip VIN la sfârşitul listei sau crearea listei, în cazul în care vârful acesteia este vid.

nod * inserare_sfarsit_lista(nod *cap,VIN y)

{

nod *nou=(nod *)malloc(sizeof(nod));

strcpy(nou->x.nume,y.nume);

strcpy(nou->x.categorie,y.categorie);

nou->x.vechime=y.vechime;

strcpy(nou->x.culoare,y.culoare);

nou->x.pret=y.pret;

nou->x.data_intrare.zi=y.data_intrare.zi;

nou->x.data_intrare.luna=y.data_intrare.luna;

nou->x.data_intrare.an=y.data_intrare.an;

nou->x.cantitate=y.cantitate;

nou->x.cod=y.cod;

nou->ant=NULL; nou->urm=NULL

Preview document

Structuri de date - gestiunea activității unei asociații studențești - Pagina 1
Structuri de date - gestiunea activității unei asociații studențești - Pagina 2
Structuri de date - gestiunea activității unei asociații studențești - Pagina 3
Structuri de date - gestiunea activității unei asociații studențești - Pagina 4
Structuri de date - gestiunea activității unei asociații studențești - Pagina 5
Structuri de date - gestiunea activității unei asociații studențești - Pagina 6
Structuri de date - gestiunea activității unei asociații studențești - Pagina 7
Structuri de date - gestiunea activității unei asociații studențești - Pagina 8
Structuri de date - gestiunea activității unei asociații studențești - Pagina 9
Structuri de date - gestiunea activității unei asociații studențești - Pagina 10
Structuri de date - gestiunea activității unei asociații studențești - Pagina 11
Structuri de date - gestiunea activității unei asociații studențești - Pagina 12
Structuri de date - gestiunea activității unei asociații studențești - Pagina 13
Structuri de date - gestiunea activității unei asociații studențești - Pagina 14
Structuri de date - gestiunea activității unei asociații studențești - Pagina 15
Structuri de date - gestiunea activității unei asociații studențești - Pagina 16
Structuri de date - gestiunea activității unei asociații studențești - Pagina 17
Structuri de date - gestiunea activității unei asociații studențești - Pagina 18
Structuri de date - gestiunea activității unei asociații studențești - Pagina 19
Structuri de date - gestiunea activității unei asociații studențești - Pagina 20
Structuri de date - gestiunea activității unei asociații studențești - Pagina 21
Structuri de date - gestiunea activității unei asociații studențești - Pagina 22
Structuri de date - gestiunea activității unei asociații studențești - Pagina 23
Structuri de date - gestiunea activității unei asociații studențești - Pagina 24
Structuri de date - gestiunea activității unei asociații studențești - Pagina 25
Structuri de date - gestiunea activității unei asociații studențești - Pagina 26
Structuri de date - gestiunea activității unei asociații studențești - Pagina 27
Structuri de date - gestiunea activității unei asociații studențești - Pagina 28
Structuri de date - gestiunea activității unei asociații studențești - Pagina 29
Structuri de date - gestiunea activității unei asociații studențești - Pagina 30
Structuri de date - gestiunea activității unei asociații studențești - Pagina 31
Structuri de date - gestiunea activității unei asociații studențești - Pagina 32
Structuri de date - gestiunea activității unei asociații studențești - Pagina 33
Structuri de date - gestiunea activității unei asociații studențești - Pagina 34
Structuri de date - gestiunea activității unei asociații studențești - Pagina 35

Conținut arhivă zip

  • Structuri de Date - Gestiunea Activitatii unei Asociatii Studetesti.doc

Alții au mai descărcat și

Proiect Algoritmi și Structuri de Date

<<INTRODUCERE>> Procesele desfăşurate într-o activitate organizată nu au loc la întam-plare, ci sunt declanşate de anumite informaţii care...

Înmatriculări Auto

I. INTRODUCERE Zi de zi vedem pe stradă o mulţime de maşini. După cum bine stim, indiferent de marcă, mărime, utilizare sau proprietar, fiecare...

Proiectarea Bazei de Date pentru Evidența Testărilor la un Centru de Certificare a Aptitudinilor de Operare PC

DESCRIEREA PROBLEMEI DE REZOLVAT Un centru de certificare a aptitudinilor de operare pe calculator doreşte să îşi îmbunătăţească activitatea de...

C++ Laboratoare

1. Convertiti: - în baza 8 numarul 347; - în baza 16 numarul 2755; - în baza 2 numarul 20. 347(10)=533(8) 2755(10)=AC3(16) 20(10)=10100...

Baze de Date Relaționale

CAP.1. BAZE DE DATE 1.1. ORGANIZAREA DATELOR (OD) (Ce presupune organizarea datelor?) - definirea, structurarea, ordonarea si gruparea datelor...

Lista Simpla

Listele simplu inlantuite sunt structuri de date dinamice omogene. Spre deosebire de masive, listele nu sunt alocate ca blocuri omogene de memorie,...

Hackeri

Hackerii sunt pasionati ai informaticii, care, de obicei au ca scop „spargerea” anumitor coduri, baze de date, pagini web etc. Ei sunt considerati...

Structuri de Date și Algoritmi - Curs 1

Curs 1 - Introducere. Structuri de date - noţiuni generale Introducere Tipuri de bază. Pointeri. Tablouri. Paradigme de programare Programare...

Ai nevoie de altceva?