Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<conio.h>
- #include<string.h>
- typedef struct
- {
- char titlu[50], autor[50], domeniu[50] ; int an, nr_pag;
- } carte;
- void adaugare(carte *c, int *nr)
- {
- (*nr)++;
- printf("Titlu carte");
- gets((c + *nr)->titlu);
- gets((c + *nr)->titlu);
- printf("autor");
- gets((c + *nr)->autor);
- printf("domeniu carte");
- gets((c + *nr)->domeniu);
- printf("an carte");
- scanf("%d", &((c + *nr)->an));
- printf("numar pagini");
- scanf("%d", &((c + *nr)->nr_pag));
- }
- void afisare(carte *c, char dom[50], int*nr)
- {
- int i;
- for (i = 0; i <= *nr; i++)
- {
- if (strcmp((c + i)->domeniu, dom) == 0)
- {
- printf("%s", (c + i)->titlu);
- printf("%s", (c + i)->autor);
- printf("%d", (c + i)->an);
- printf("%d", (c + i)->nr_pag);
- }
- }
- }
- void cautare_titlu(carte *c, char ttl[50], int *nr)
- {
- int i;
- for (i = 0; i <= *nr; i++)
- {
- if (strcmp((c + i)->titlu, ttl) == 0)
- {
- printf("%s", (c + i)->domeniu);
- printf("%s", (c + i)->autor);
- printf("%d", (c + i)->an);
- printf("%d", (c + i)->nr_pag);
- }
- break;
- }
- }
- void cautare_an(carte *c, int year, int *nr)
- {
- int i;
- for (i = 0; i <= *nr; i++)
- if (year == (c + i)->an)
- {
- printf("%s", (c + i)->domeniu);
- printf("%s", (c + i)->autor);
- printf("%s", (c + i)->titlu);
- printf("%d", (c + i)->nr_pag);
- }
- }
- void stergere(carte*c, char ttl[50], int *nr)
- {
- int i, k, j;
- k = 0;
- for (i = 0; i <= *nr; i++)
- if (strcmp(ttl, (c + i)->titlu) == 0)
- {
- k++;
- for (j = i; j <= (*nr - k); j++)
- *(c + j) = c[j + 1];
- }
- *nr = *nr - k;
- }
- void sortare(carte *c, int *nr, char dom)
- {
- int i, j, k;
- carte aux;
- k = 1;
- for(i=0;i<=*nr;i++)
- if(strcmp(dom,(c+i)->domeniu)==0)
- do
- {
- k = 1;
- for(j=0; j<=*nr;j++)
- if (strcmp((c + j)->titlu, (c + j + 1)->titlu) > 0)
- {
- aux = *(c + j);
- *(c + j) = *(c + j + 1);
- *(c + j + 1) = aux;
- k = 0;
- }
- } while (!k);
- }
- int main() {
- carte c[50];
- int year, opt, i, j, n, k;
- char ttl[50], dom[50];
- do
- {
- printf("\n1. Adaugarea unei carti\n");
- printf("2. Afisarea cartilor dintr un domeniu\n");
- printf("3. cautare carte dupa titlu\n");
- printf("4. cautare carte dupa an\n");
- printf("5. stergere carte\n");
- printf("6. sortare carti dupa titlu\n");
- printf("7. iesire\n");
- printf("dati optiunea\n");
- scanf("%d", &opt);
- switch (opt)
- {
- case 1:
- adaugare(&c, &n);
- break;
- case 2:
- printf("\nDomeniu:");
- gets(dom);
- afisare(&c, dom, &n);
- break;
- case 3:
- printf("\nTitlu");
- gets(ttl);
- cautare_titlu(&c, ttl, &n);
- break;
- case 4:
- printf("\nAN:");
- scanf("%d", &year);
- cautare_an(&c, year, &n);
- break;
- case 5:
- printf("\nTitlu");
- gets(ttl);
- stergere(&c, ttl, &n);
- break;
- case 6:
- printf("\nDomeniulll esteeee:");
- gets(dom);
- sortare(&c, &n, dom);
- afisare(&c, dom, &n);
- break;
- case 7:
- break;
- }
- } while (opt != 7);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement