Advertisement
_malfunction

Sztruktura

May 25th, 2016
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.94 KB | None | 0 0
  1. #define _CRT_SECURE_NO_DEPRECATE
  2. #include <stdio.h>
  3. #include <conio.h>
  4. #include <string.h>
  5. #define MAXNB 30
  6. #define ZAK 50
  7.  
  8. typedef struct Dane
  9. {
  10.     char marka[ZAK];
  11.     char kolor[ZAK];
  12.     int przebieg;
  13.     int rocznik;
  14. } TDane;
  15.  
  16.  
  17. void Prezentacja(TDane td[], int n, const char *napis)
  18. {
  19.     int i;
  20.     if (n == 0) printf("Brak danych\n");
  21.     else
  22.     {
  23.         printf("%s\nMarka\tKolor\tPrzebieg\tRocznik\t\n", napis);
  24.         for (i = 0; i<n; i++)
  25.             printf("\n%s\t%s\t%d\t%d\t", td[i].marka, td[i].kolor,td[i].przebieg,td[i].rocznik);
  26.     }
  27.     getchar();
  28. }
  29.  
  30. void WprowadzDane(TDane td[], int * wn)
  31. {
  32.     _flushall();
  33.     system("cls");
  34.     printf("Informacja nr %d: \nPodaj marke: ", *wn + 1);
  35.     gets(td[*wn].marka);
  36.     getchar();
  37.     _flushall();
  38.     printf("Podaj kolor: ");
  39.     gets(td[*wn].kolor);
  40.     getchar();
  41.     _flushall();
  42.     printf("Podaj przebieg: ");
  43.     scanf("%d", &td[*wn].przebieg);
  44.     getchar();
  45.     _flushall();
  46.     printf("Podaj rocznik:");
  47.     scanf("%d", &td[*wn].rocznik);
  48.     getchar();
  49.     _flushall();
  50.     (*wn)++;
  51.  
  52. }
  53.  
  54. void SortujM(TDane td[], int n)
  55. {
  56.     int i, j, pos;
  57.     TDane bufor;
  58.     for (i = 0; i<n - 1; i++)
  59.     {
  60.         pos = i;
  61.         for (j = i + 1; j<n; j++)
  62.             if (strcmp(td[j].marka, td[pos].marka)<0) pos = j;
  63.         bufor = td[i];
  64.         td[i] = td[pos];
  65.         td[pos] = bufor;
  66.     }
  67. }
  68.  
  69. void SortujR(TDane td[], int n)
  70. {
  71.     {
  72.         int i, j, pos;
  73.         TDane bufor;
  74.         for (i = 0; i<n - 1; i++)
  75.         {
  76.             pos = i;
  77.             for (j = i + 1; j<n; j++)
  78.                 if (td[j].rocznik<td[pos].rocznik) pos = j;
  79.             bufor = td[i];
  80.             td[i] = td[pos];
  81.             td[pos] = bufor;
  82.         }
  83.     }
  84.  
  85. }
  86.  
  87. void PrezentacjaA(TDane td[], int n, const char *napis)
  88. {
  89.     char litera;
  90.     int i;
  91.     if (n == 0) printf("Brak danych\n");
  92.     else
  93.     {
  94.         printf("Od jakiej litery ma rozpoczynac sie marka?");
  95.         scanf("%c",&litera);
  96.         getchar();
  97.         printf("%s\nMarka\tKolor\tPrzebieg\tRocznik\n", napis);
  98.         for (i = 0; i<n; i++)
  99.         {
  100.             if  (strchr(td[i].marka,litera)==td[i].marka)
  101.                     printf("\n%s\t%s\t%d\t%d\t", td[i].marka, td[i].kolor,td[i].przebieg,td[i].rocznik);
  102.         }
  103.     }
  104.     getchar();
  105. }
  106.  
  107. void PrezentacjaC(TDane td[], int n, const char *napis)
  108. {
  109.    
  110.         char ciag[ZAK];
  111.         int i;
  112.         if (n == 0) printf("Brak danych\n");
  113.         else
  114.         {
  115.             printf("Jaki ciag znakow ma zawierac marka?");
  116.             gets(ciag);
  117.             getchar();
  118.             printf("%s\nMarka\tKolor\tPrzebieg\tRocznik\n", napis);
  119.             for (i = 0; i<n; i++)
  120.             {
  121.                 if (strstr(td[i].marka,ciag)!=NULL)
  122.                 printf("\n%s\t%s\t%d\t%d\t", td[i].marka, td[i].kolor,td[i].przebieg,td[i].rocznik);
  123.             }
  124.         }
  125.         getchar();
  126.    
  127. }
  128.  
  129. void PrezentacjaK(TDane td[], int n, const char *napis)
  130. {
  131.  
  132.     char kolorek[ZAK];
  133.     int i;
  134.     if (n == 0) printf("Brak danych\n");
  135.     else
  136.     {
  137.         printf("Jakiego koloru samochod?");
  138.         gets(kolorek);
  139.         getchar();
  140.         printf("%s\nMarka\tKolor\tPrzebieg\tRocznik\t\n", napis);
  141.         for (i = 0; i<n; i++)
  142.         {
  143.             if (strcmp(td[i].kolor,kolorek)==0)
  144.                
  145.             printf("\n%s\t%s\t%d\t%d\t", td[i].marka, td[i].kolor,td[i].przebieg,td[i].rocznik);
  146.         }
  147.     }
  148.     getchar();
  149.  
  150. }
  151.  
  152. int Usun(TDane td[], int n)
  153. {
  154.     int i, nr;
  155.     printf("Ktory pojazd usunac?"); scanf("%d", &nr);
  156.     --nr;
  157.     for (i = nr;i < n - 1;i++)
  158.         td[i] = td[i + 1];
  159.     --n;
  160.     _flushall();
  161.     getchar();
  162.     return n;
  163. }
  164.  
  165.  
  166.  
  167. void main()
  168. {
  169.     char *menu = "Opcje: \n1)Wprowadzanie, \n2)Usuwanie, \n3)Prezentacja, \n4)Prezentacja wybranych wg litery, \n5)Prezentacja wybranych wg ciagu znakow, \n6)Prezentacja wg koloru, \n7)Sortowanie wg marki, \n8)Sortowanie wg rocznika,\n9)Koniec\n";
  170.     TDane tab[MAXNB];
  171.     int n = 0;
  172.     char wybor;
  173.     system("cls");
  174.     do {
  175.         printf("%s", menu);
  176.         wybor = _getch();
  177.         switch (wybor) {
  178.         case '1':
  179.             WprowadzDane(tab, &n); break;
  180.         case '2':
  181.             n=Usun(tab, n);break;
  182.         case '3':
  183.             Prezentacja(tab, n, "Dane"); break;
  184.         case '4':
  185.             PrezentacjaA(tab, n, "Dane"); break;
  186.         case '5':
  187.             PrezentacjaC(tab, n, "Dane"); break;
  188.         case '6':
  189.             PrezentacjaK(tab, n, "Dane"); break;
  190.         case '7':
  191.             SortujM(tab, n); break;
  192.         case '8':
  193.             SortujR(tab, n); break;
  194.         }
  195.         system("cls");
  196.     } while (wybor != '9');
  197. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement