Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Srbovan Nenad
- grupa 6.1
- Problema 1 liste*/
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct bibliotecar {
- char titluCarte[30];
- char autorCarte[30];
- char numeCititor[30];
- char adresaCititor[30];
- int termen;
- struct bibliotecar *urm;
- }bibliotecar;
- bibliotecar *prim;
- bibliotecar *p;
- bibliotecar *q;
- void vidare()
- {
- while (prim)
- {
- for (p = prim; p->urm != NULL; p = p->urm);
- free(p->urm);
- p->urm = NULL;
- }
- free(prim);
- }
- void imprumutNou(const char titluCarte[30], const char autorCarte[30], const char numeCititor[30], const char adresaCititor[30], int termen)
- {
- for (p = prim; p != NULL; p = p->urm)
- {
- if (strcmp(numeCititor, p->numeCititor) == 0)
- {
- printf("nu se poate imprumuta cartea");
- return;
- }
- }
- q = (bibliotecar*)malloc(sizeof(bibliotecar));
- strcpy_s(q->titluCarte, titluCarte);
- strcpy_s(q->autorCarte, autorCarte);
- strcpy_s(q->numeCititor, numeCititor);
- strcpy_s(q->adresaCititor, adresaCititor);
- q->termen = termen;
- q->urm = prim;
- prim = q;
- }
- void actualizare()
- {
- for (p = prim; p != NULL; p = p->urm)
- {
- if (p->termen != 0)
- {
- p->termen--;
- }
- else
- {
- printf("%s", p->numeCititor);
- }
- }
- }
- void returnare(const char numeCititor[30])
- {
- if (prim == NULL)
- {
- return;
- }
- else
- {
- for (p = prim; p->urm != NULL; p = p->urm)
- {
- q = p->urm;
- if (strcmp(numeCititor, q->numeCititor) == 0)
- {
- p->urm = q->urm;
- free(q);
- }
- }
- }
- }
- void afisare()
- {
- for (p = prim; p != NULL; p = p->urm)
- {
- printf("%s\t", p->titluCarte);
- printf("%s\t", p->autorCarte);
- printf("%s\t", p->numeCititor);
- printf("%s\t", p->adresaCititor);
- printf("%d\t", p->termen);
- printf("\n");
- }
- }
- int main()
- {
- /*vidare();
- imprumutNou("carte0", "autor0", "nume0", "adresa0", 20);
- imprumutNou("carte1", "autor1", "nume1", "adresa1", 19);
- imprumutNou("carte2", "autor2", "nume2", "adresa2", 18);
- imprumutNou("carte3", "autor3", "nume3", "adresa3", 17);
- actualizare();
- afisare();
- returnare("nume2");
- returnare("nume1");
- printf("\n");
- afisare();*/
- int ok = 1, termen;
- char titluCarte[30], autorCarte[30], numeCititor[30], adresaCititor[30];
- while (ok)
- {
- printf("Alegeti optiunea: \n");
- printf("0 Oprire \n");
- printf("1 Vidare lista \n");
- printf("2 Imprumut carte \n");
- printf("3 Actualizare lista \n");
- printf("4 Returnare carte \n");
- printf("5 Afisare lista \n");
- printf("Optiunea este: \n");
- scanf_s("%d", &ok);
- printf("\n\n");
- switch (ok)
- {
- case 1: {
- printf("Vidare lista.\n");
- vidare();
- break;
- }
- case 2: {
- printf("Imprumut carte.\n");
- getchar();
- //printf("Introduceti titlul cartii: ");
- fgets(titluCarte, sizeof(titluCarte), stdin);
- //printf("Introduceti autorul cartii: ");
- fgets(autorCarte, sizeof(autorCarte), stdin);
- //printf("Introduceti numele cititorului: ");
- fgets(numeCititor, sizeof(numeCititor), stdin);
- //printf("Introduceti adresa cititorului: ");
- fgets(adresaCititor, sizeof(adresaCititor), stdin);
- //printf("Introduceti termenul de returnare: ");
- scanf_s("%d", &termen);
- imprumutNou(titluCarte, autorCarte, numeCititor, adresaCititor, termen);
- break;
- }
- case 3: {
- printf("Actualizare lista.\n");
- actualizare();
- break;
- }
- case 4: {
- printf("Returnare carte.\n");
- printf("Introduceti numele cititorului:\n");
- fgets(numeCititor, 30, stdin);
- returnare(numeCititor);
- break;
- }
- case 5: {
- printf("Afisare lista.\n");
- afisare();
- break;
- }
- default: printf("Nu ati introdus o valoare corecta.");
- }
- }
- getchar();
- return 0;
- }
- /*
- Srbovan Nenad
- grupa 6.1
- Problema 2 liste
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <String.h>
- typedef struct posta
- {
- int prioritate;
- char destinatar[30];
- char continut[30];
- struct posta *urm;
- }posta;
- posta *prim;
- posta *ultim;
- posta *p;
- posta *q;
- void initializare()
- {
- while (prim)
- {
- for (p = prim; p->urm != NULL; p = p->urm);
- free(p->urm);
- p->urm = NULL;
- }
- free(prim);
- printf("Cutia postala este goala.\n\n");
- }
- void trimitere_mesaj(int prioritate, const char destinatar[30], const char continut[30])
- {
- if (prioritate == 1)
- {
- q = (posta*)malloc(sizeof(posta));
- strcpy_s(q->destinatar, destinatar);
- strcpy_s(q->continut, continut);
- q->prioritate = prioritate;
- q->urm = prim;
- prim = q;
- }
- else
- {
- if (prioritate == 0)
- {
- //for (p = prim; p->urm != NULL; p = p->urm);
- /*q = (posta*)malloc(sizeof(posta));
- q = p->urm;
- strcpy_s(q->destinatar, destinatar);
- strcpy_s(q->continut, continut);
- q->prioritate = prioritate;
- q->urm = NULL;*/
- p = prim;
- while (p->urm != NULL) {
- p = p->urm;
- }
- q = p->urm;
- q = (posta*)malloc(sizeof(posta));
- strcpy_s(q->destinatar, destinatar);
- strcpy_s(q->continut, continut);
- q->prioritate = prioritate;
- q->urm = NULL;
- }
- }
- }
- void primire_mesaj(const char destinatar[30])
- {
- if (prim == NULL)
- {
- return;
- }
- else
- {
- for (p = prim; p->urm != NULL; p = p->urm)
- {
- q = p->urm;
- if (strcmp(q->destinatar, destinatar) == 0)
- {
- printf("Continutul mesajului este: %s\t", q->continut);
- printf("Prioritatea mesajului este: %d\t\n", q->prioritate);
- q = q->urm;
- free(q);
- }
- }
- }
- }
- void afisare()
- {
- for (p = prim; p != NULL; p = p->urm)
- {
- printf("Destinatarul mesajului este: %s\t", p->destinatar);
- printf("Continutul mesajului este: %s\t", p->continut);
- printf("Prioritatea mesajului este: %d\t", p->prioritate);
- printf("\n");
- }
- }
- int main()
- {
- initializare();
- trimitere_mesaj(1, "destinatar0", "continut0");
- trimitere_mesaj(1, "destinatar1", "continut1");
- trimitere_mesaj(0, "destinatar2", "continut2");
- afisare();
- printf("\n");
- primire_mesaj("destinatar0");
- afisare();
- getchar();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement