Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica

C


Qdidactic » stiinta & tehnica » informatica » c
Problema c++ lista liniara dublu inlantuita de produse



Problema c++ lista liniara dublu inlantuita de produse


Sa se creeze o lista liniara dublu inlantuita de produse cu structura de la problema 2.2. anterior rezolvata care sa permita exploatarea directa cat si inversa a listei (adica listarea produselor din lista).

Solutie :


#include<stdio.h>

#include<string.h>

#include<alloc.h>

#include<conio.h>

#include<float.h>


struct tipart

*artcurent, *artprim, *artultim;


int primapel=1;

int t;



char r,r1;


void adaugare()


//n++;

printf('n cod articol(1..9999):');

scanf('%d',&artprim->ca);

printf('n denumire articol:');

scanf('%s',&artprim->denumire);

printf('n unitate de masura (bc,kg,ml,mp,mc.l,hl,etc):');

scanf('%s',&artprim->umas);

printf('n pret articol(real):');

scanf('%ld',&artprim->pret);


artprim->anterior=NULL;

artultim=artprim;

artcurent=artprim;


primapel=0; }


else



//n++;


printf('n cod articol(1..9999):');

scanf('%d',&artultim->ca);

printf('n denumire articol:');

scanf('%s',&artultim->denumire);

printf('n unitate de masura (bc,kg,ml,mp,mc.l,hl,etc):');

scanf('%s',&artultim->umas);

printf('n pret articol(real):');

scanf('%ld',&artultim->pret);


artultim->anterior=artcurent;

artultim->urmator=NULL;


artcurent->urmator=artultim;

artcurent=artultim; } }



void listare()



void afisare1()



listare();

printf('n ================================='); }



void afisare2()



listare();

printf('n ================================='); }


void main()



r1='d';


while((r1=='d') || (r1=='D'))

while((t<1) || (t>2));


if(t==1)

afisare1();

else

afisare2();


printf('n continuati afisarea listei de articole?(d/n):');

r1=getche(); }

}


Problema 3.3. Sa se creeze o lista dublu inlantuita cu angajatii unei firme ordonata dupa numele si prenumele angajatilor si sa se actualizeze aceasta lista (adaugarea la locul potivit a unui nou angajat, stergerea cat si modificarea datelor unui angajat) urmata de listarea la cerere a tuturor angajatilor.

Solutie:


#include<stdio.h>

#include<conio.h>

#include<string.h>

#include<alloc.h>

#include<ctype.h>

#include<process.h>


struct tipangajat

;


struct tipangajat *angprim, *angultim, *angcurent;


int ok,auxca;

char auxnume[20], auxprenume[20], auxdep[20], auxpost[20];

int primapel=1;


void creare_ins(void)



printf('n nume angajat:');

scanf('%s',angprim->nume);

printf('n prenume angajat:');

scanf('%s',angprim->prenume);


dowhile((angprim->ca<1) || (angprim->ca>999));


printf('n departament angajat:');

scanf('%s',angprim->departament);

printf('n post angajat:');

scanf('%s',angprim->post);


angprim->ant=NULL;

angprim->urm=NULL;

angultim=angprim;

angcurent=angprim;

//nrangajat=1;


primapel=0; }


else



printf('n nume angajat:');

scanf('%s',angultim->nume);

printf('n prenume angajat:');

scanf('%s',angultim->prenume);


dowhile((angultim->ca<1) || (angultim->ca>999));


printf('n departament angajat:');

scanf('%s',angultim->departament);

printf('n post angajat:');

scanf('%s',angultim->post);


angultim->ant=angcurent;

angultim->urm=NULL;

angcurent->urm=angultim;

angcurent=angultim;

/* nrangajat++; */ } }



void modificare(void)


else

angcurent=angcurent->urm;

}while(angcurent->urm!=NULL);


if(angcurent->ca==cc)



if(ok1==1)

printf('n operatie de modificare reusita');

else

printf('n angajatul cu codul %d nu exista in lista',cc); }


void stergere(void)


else


}

else

angcurent=angcurent->urm;

}while(angcurent->urm!=NULL);


if(angcurent->ca==cc)



if(ok1==1)


else

printf('n angajatul cu codul %d nu exista in lista',cc); }


void inversare(struct tipangajat *xangajat)



void sortare(void)



ok=1;


while(ok==1)


else


else

angcurent=angcurent->urm;}

else

angcurent=angcurent->urm; }

}while(angcurent->urm!=NULL);

} }


void listare(void)



void afisare(void)


listare();

printf('n================================================='); }


void main()


r=getch(); }

}





Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright