Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdio.h"
- #include "String.h"
- #include "stdlib.h"
- typedef struct
- {
- char nume[20];
- }angajati;
- typedef struct
- {
- char pro[20];
- int nr;
- angajati a[30];
- struct proiect *next;
- }proiect;
- proiect *rad;
- void adaugaproiect(char *pro)
- {
- proiect *nod;
- nod = (proiect*)malloc(sizeof(proiect));
- strcpy(nod->pro,pro);
- nod->nr = 0;
- nod->next = NULL;
- if (rad ==NULL)
- {
- rad = nod;
- }
- else {
- nod->next = rad;
- rad = nod;
- }
- }
- void adaugaangajati(char *pro,char *nume)
- {
- proiect *aux= rad;
- angajati ang;
- int k = 0;
- strcpy(ang.nume, nume);
- while (aux != NULL)
- {
- if (strcmp(aux->pro, pro) == 0)
- {
- if (aux->nr != 0) {
- for (int i = 0; i < aux->nr; i++)
- if (strcmp(aux->a[i].nume, nume) < 0)
- {
- for (int j = aux->nr; j > i; j--)
- {
- aux->a[j] = aux->a[j - 1];
- }
- k = 1;
- aux->a[i] = ang;
- }
- if (k == 0)
- aux->a[aux->nr] = ang;
- }
- else
- aux->a[aux->nr] = ang;
- aux->nr++;
- return;
- }
- aux = aux->next;
- }
- }
- void transfera(char *numeproj, char *nume)
- {
- proiect *aux = rad;
- while (aux != NULL)
- {
- for (int i = 0; i < aux->nr; i++)
- {
- if (strcmp(aux->a[i].nume, nume) == 0)
- {
- for (int j = i; j < aux->nr; j++)
- {
- aux->a[j] = aux->a[j + 1];
- }
- aux->nr--;
- }
- }
- aux = aux->next;
- }
- adaugaangajati(numeproj, nume);
- }
- void afisarepro()
- {
- proiect *aux = rad;
- while (aux != NULL)
- {
- printf("%s ", aux->pro);
- for (int i = 0; i < aux->nr; i++)
- printf("%s ", aux->a[i].nume);
- printf("\n");
- aux = aux->next;
- }
- }
- void main()
- {
- int nrproj, nrang;
- char numeproj[20], nume[30];
- scanf("%d", &nrproj);
- getchar();
- for (int i = 0; i < nrproj; i++)
- {
- scanf("%s", numeproj);
- scanf("%d", &nrang);
- getchar();
- adaugaproiect(numeproj);
- for (int j = 0; j < nrang; j++)
- {scanf("%s", nume);
- adaugaangajati(numeproj, nume);
- }
- }
- afisarepro();
- char numeproject[20], numeangajat[30];
- scanf("%s", numeproject);
- scanf("%s", numeangajat);
- transfera(numeproject, numeangajat);
- afisarepro();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement