Advertisement
Guest User

Untitled

a guest
Nov 29th, 2015
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.35 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. typedef struct tovar {
  6.     char nazov[50], vyrobca[50], jednotka[3];
  7.     double mnozstvo, cena;
  8.     struct tovar *pred, *dalsi;
  9. }TOVAR;
  10.  
  11. int main()
  12. {
  13.     TOVAR *prvy, *aktualny, *pomocny;
  14.     char operacia[6], nazov[50];
  15.     int pocet = 0;
  16.  
  17.     while (!feof(stdin))
  18.     {
  19.         scanf("%s", operacia);
  20.  
  21.         if (strcmp(operacia, "vloz") == 0)
  22.         {
  23.             pocet++;
  24.  
  25.             if (pocet == 1)
  26.             {
  27.                 if ((prvy = (TOVAR*)malloc(sizeof(TOVAR))) == NULL)
  28.                     continue;
  29.  
  30.                 scanf("%s %s %lf %lf %s", prvy->nazov, prvy->vyrobca, &prvy->mnozstvo, &prvy->cena, prvy->jednotka);
  31.                 aktualny = prvy;
  32.                 aktualny->dalsi = NULL;
  33.                 prvy->pred = NULL;
  34.             }
  35.             else
  36.             {
  37.                 if ((aktualny->dalsi = (TOVAR*)malloc(sizeof(TOVAR))) == NULL)
  38.                     continue;
  39.  
  40.                 aktualny->dalsi->pred = aktualny;
  41.                 aktualny = aktualny->dalsi;
  42.  
  43.                 scanf("%s %s %lf %lf %s", aktualny->nazov, aktualny->vyrobca, &aktualny->mnozstvo, &aktualny->cena, aktualny->jednotka);
  44.                 aktualny->dalsi = NULL;
  45.             }
  46.  
  47.             for (pomocny = prvy; pomocny != NULL; pomocny = pomocny->dalsi)
  48.             {
  49.                 if (strcmp(pomocny->nazov, aktualny->nazov) > 0 && pocet > 1)
  50.                 {
  51.                     if (pomocny->pred == NULL)
  52.                     {
  53.                         aktualny->pred->dalsi = NULL;
  54.                         aktualny->pred = NULL;
  55.                         aktualny->dalsi = pomocny;
  56.                         pomocny->pred = aktualny;
  57.                         prvy = aktualny;
  58.                     }
  59.                     else
  60.                     {
  61.                         aktualny->pred->dalsi = NULL;
  62.                         pomocny->pred->dalsi = aktualny;
  63.                         aktualny->pred = pomocny->pred;
  64.                         aktualny->dalsi = pomocny;
  65.                         pomocny->pred = aktualny;
  66.                     }
  67.                     break;
  68.                 }
  69.             }
  70.  
  71.             pomocny = prvy;
  72.             for (; pomocny->dalsi != NULL; pomocny = pomocny->dalsi) {};
  73.             aktualny = pomocny;
  74.         }
  75.         else if (strcmp(operacia, "vypis") == 0)
  76.         {
  77.             for (pomocny = prvy; pomocny != NULL; pomocny = pomocny->dalsi)
  78.                 printf("Nazov=%s, Vyrobca=%s, Mnozstvo=%lf, JednotkovaCena=%lf, MJ=%s\n", pomocny->nazov, pomocny->vyrobca, pomocny->mnozstvo, pomocny->cena, pomocny->jednotka);
  79.         }
  80.         else if (strcmp(operacia, "zmaz") == 0)
  81.         {
  82.             scanf("%s", nazov);
  83.  
  84.             for (pomocny = prvy; pomocny != NULL; pomocny = pomocny->dalsi)
  85.             {
  86.                 if (strcmp(pomocny->nazov, nazov) == 0)
  87.                 {
  88.                     pomocny->dalsi->pred = pomocny->pred;
  89.                     pomocny->pred->dalsi = pomocny->dalsi;
  90.                     break;
  91.                 }
  92.             }
  93.         }
  94.  
  95.         memset(operacia, 0, 6);
  96.     }
  97.  
  98.     return 0;
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement