Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_DEPRECATE
- #include <stdio.h>
- #include <conio.h>
- #include <string.h>
- #define MAXNB 30
- #define ZAK 50
- typedef struct Dane
- {
- char marka[ZAK];
- char kolor[ZAK];
- int przebieg;
- int rocznik;
- } TDane;
- void Prezentacja(TDane td[], int n, const char *napis)
- {
- int i;
- if (n == 0) printf("Brak danych\n");
- else
- {
- printf("%s\nMarka\tKolor\tPrzebieg\tRocznik\t\n", napis);
- for (i = 0; i<n; i++)
- printf("\n%s\t%s\t%d\t%d\t", td[i].marka, td[i].kolor,td[i].przebieg,td[i].rocznik);
- }
- getchar();
- }
- void WprowadzDane(TDane td[], int * wn)
- {
- _flushall();
- system("cls");
- printf("Informacja nr %d: \nPodaj marke: ", *wn + 1);
- gets(td[*wn].marka);
- getchar();
- _flushall();
- printf("Podaj kolor: ");
- gets(td[*wn].kolor);
- getchar();
- _flushall();
- printf("Podaj przebieg: ");
- scanf("%d", &td[*wn].przebieg);
- getchar();
- _flushall();
- printf("Podaj rocznik:");
- scanf("%d", &td[*wn].rocznik);
- getchar();
- _flushall();
- (*wn)++;
- }
- void SortujM(TDane td[], int n)
- {
- int i, j, pos;
- TDane bufor;
- for (i = 0; i<n - 1; i++)
- {
- pos = i;
- for (j = i + 1; j<n; j++)
- if (strcmp(td[j].marka, td[pos].marka)<0) pos = j;
- bufor = td[i];
- td[i] = td[pos];
- td[pos] = bufor;
- }
- }
- void SortujR(TDane td[], int n)
- {
- {
- int i, j, pos;
- TDane bufor;
- for (i = 0; i<n - 1; i++)
- {
- pos = i;
- for (j = i + 1; j<n; j++)
- if (td[j].rocznik<td[pos].rocznik) pos = j;
- bufor = td[i];
- td[i] = td[pos];
- td[pos] = bufor;
- }
- }
- }
- void PrezentacjaA(TDane td[], int n, const char *napis)
- {
- char litera;
- int i;
- if (n == 0) printf("Brak danych\n");
- else
- {
- printf("Od jakiej litery ma rozpoczynac sie marka?");
- scanf("%c",&litera);
- getchar();
- printf("%s\nMarka\tKolor\tPrzebieg\tRocznik\n", napis);
- for (i = 0; i<n; i++)
- {
- if (strchr(td[i].marka,litera)==td[i].marka)
- printf("\n%s\t%s\t%d\t%d\t", td[i].marka, td[i].kolor,td[i].przebieg,td[i].rocznik);
- }
- }
- getchar();
- }
- void PrezentacjaC(TDane td[], int n, const char *napis)
- {
- char ciag[ZAK];
- int i;
- if (n == 0) printf("Brak danych\n");
- else
- {
- printf("Jaki ciag znakow ma zawierac marka?");
- gets(ciag);
- getchar();
- printf("%s\nMarka\tKolor\tPrzebieg\tRocznik\n", napis);
- for (i = 0; i<n; i++)
- {
- if (strstr(td[i].marka,ciag)!=NULL)
- printf("\n%s\t%s\t%d\t%d\t", td[i].marka, td[i].kolor,td[i].przebieg,td[i].rocznik);
- }
- }
- getchar();
- }
- void PrezentacjaK(TDane td[], int n, const char *napis)
- {
- char kolorek[ZAK];
- int i;
- if (n == 0) printf("Brak danych\n");
- else
- {
- printf("Jakiego koloru samochod?");
- gets(kolorek);
- getchar();
- printf("%s\nMarka\tKolor\tPrzebieg\tRocznik\t\n", napis);
- for (i = 0; i<n; i++)
- {
- if (strcmp(td[i].kolor,kolorek)==0)
- printf("\n%s\t%s\t%d\t%d\t", td[i].marka, td[i].kolor,td[i].przebieg,td[i].rocznik);
- }
- }
- getchar();
- }
- int Usun(TDane td[], int n)
- {
- int i, nr;
- printf("Ktory pojazd usunac?"); scanf("%d", &nr);
- --nr;
- for (i = nr;i < n - 1;i++)
- td[i] = td[i + 1];
- --n;
- _flushall();
- getchar();
- return n;
- }
- void main()
- {
- 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";
- TDane tab[MAXNB];
- int n = 0;
- char wybor;
- system("cls");
- do {
- printf("%s", menu);
- wybor = _getch();
- switch (wybor) {
- case '1':
- WprowadzDane(tab, &n); break;
- case '2':
- n=Usun(tab, n);break;
- case '3':
- Prezentacja(tab, n, "Dane"); break;
- case '4':
- PrezentacjaA(tab, n, "Dane"); break;
- case '5':
- PrezentacjaC(tab, n, "Dane"); break;
- case '6':
- PrezentacjaK(tab, n, "Dane"); break;
- case '7':
- SortujM(tab, n); break;
- case '8':
- SortujR(tab, n); break;
- }
- system("cls");
- } while (wybor != '9');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement