Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct tovar {
- char nazov[50], vyrobca[50], jednotka[3];
- double mnozstvo, cena;
- struct tovar *pred, *dalsi;
- }TOVAR;
- int main()
- {
- TOVAR *prvy, *aktualny, *pomocny;
- char operacia[6], nazov[50];
- int pocet = 0;
- while (!feof(stdin))
- {
- scanf("%s", operacia);
- if (strcmp(operacia, "vloz") == 0)
- {
- pocet++;
- if (pocet == 1)
- {
- if ((prvy = (TOVAR*)malloc(sizeof(TOVAR))) == NULL)
- continue;
- scanf("%s %s %lf %lf %s", prvy->nazov, prvy->vyrobca, &prvy->mnozstvo, &prvy->cena, prvy->jednotka);
- aktualny = prvy;
- aktualny->dalsi = NULL;
- prvy->pred = NULL;
- }
- else
- {
- if ((aktualny->dalsi = (TOVAR*)malloc(sizeof(TOVAR))) == NULL)
- continue;
- aktualny->dalsi->pred = aktualny;
- aktualny = aktualny->dalsi;
- scanf("%s %s %lf %lf %s", aktualny->nazov, aktualny->vyrobca, &aktualny->mnozstvo, &aktualny->cena, aktualny->jednotka);
- aktualny->dalsi = NULL;
- }
- for (pomocny = prvy; pomocny != NULL; pomocny = pomocny->dalsi)
- {
- if (strcmp(pomocny->nazov, aktualny->nazov) > 0 && pocet > 1)
- {
- if (pomocny->pred == NULL)
- {
- aktualny->pred->dalsi = NULL;
- aktualny->pred = NULL;
- aktualny->dalsi = pomocny;
- pomocny->pred = aktualny;
- prvy = aktualny;
- }
- else
- {
- aktualny->pred->dalsi = NULL;
- pomocny->pred->dalsi = aktualny;
- aktualny->pred = pomocny->pred;
- aktualny->dalsi = pomocny;
- pomocny->pred = aktualny;
- }
- break;
- }
- }
- pomocny = prvy;
- for (; pomocny->dalsi != NULL; pomocny = pomocny->dalsi) {};
- aktualny = pomocny;
- }
- else if (strcmp(operacia, "vypis") == 0)
- {
- for (pomocny = prvy; pomocny != NULL; pomocny = pomocny->dalsi)
- printf("Nazov=%s, Vyrobca=%s, Mnozstvo=%lf, JednotkovaCena=%lf, MJ=%s\n", pomocny->nazov, pomocny->vyrobca, pomocny->mnozstvo, pomocny->cena, pomocny->jednotka);
- }
- else if (strcmp(operacia, "zmaz") == 0)
- {
- scanf("%s", nazov);
- for (pomocny = prvy; pomocny != NULL; pomocny = pomocny->dalsi)
- {
- if (strcmp(pomocny->nazov, nazov) == 0)
- {
- pomocny->dalsi->pred = pomocny->pred;
- pomocny->pred->dalsi = pomocny->dalsi;
- break;
- }
- }
- }
- memset(operacia, 0, 6);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement