Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include<string.h>
- struct auta {
- char kategoria[50];
- char znacka[50];
- char predajca[100];
- int cena;
- int rok_vyroby;
- char stav_vozidla[200];
- struct auta *dalsia;
- };
- void pridaj(struct auta **zac, char kat[], char zn[], char pr[], int cen, int rok, char stav[])
- {
- struct auta *posledny = *zac;
- struct auta *novy = malloc(sizeof(struct auta));
- strcpy(novy->kategoria, kat);
- strcpy(novy->znacka, zn);
- strcpy(novy->predajca, pr);
- novy->cena = cen;
- novy->rok_vyroby = rok;
- strcpy(novy->stav_vozidla, stav);
- novy->dalsia = NULL;
- if(*zac == NULL)
- {
- *zac = novy;
- return;
- }
- while(posledny->dalsia != NULL)
- {
- posledny = posledny->dalsia;
- }
- posledny->dalsia = novy;
- }
- void nacitanie(struct auta **zac)
- {
- char kat[50], zn[50], pr[100], stav[200];
- int cen, rok, count = 0;
- FILE *f1 = fopen("auta.txt", "r");
- if(f1 == NULL)
- {
- printf("Neexistuje");
- exit(0);
- }
- while(fscanf(f1, "$ %[^\n]\n%[^\n]\n%[^\n]\n%d\n%d\n%[^\n] ", kat, zn, pr, &cen, &rok, stav) != EOF)
- {
- //printf("%s %s %s %d %d %s\n", kat, zn, pr, cen, rok, stav);
- count++;
- pridaj(zac, kat, zn, pr, cen, rok, stav);
- }
- printf("Nacitalo sa %d zaznamov", count);
- fclose(f1);
- }
- void vypis(struct auta *zac)
- {
- int count = 1;
- while(zac != NULL)
- {
- printf("%d.\nKategoria: %s\nZnacka: %s\nPredajca: %s\nCena: %d\nRok vyroby: %d\nStav vozidla: %s\n",count++, zac->kategoria, zac->znacka, zac->predajca, zac->cena, zac->rok_vyroby, zac->stav_vozidla);
- zac = zac->dalsia;
- }
- }
- struct auta *najdi_poziciu(struct auta *zac, int k)
- {
- int c=1;
- struct auta *novy = zac;
- while(novy != NULL)
- {
- if(c == k)
- {
- return novy;
- }
- c++;
- novy = novy->dalsia;
- }
- return NULL;
- }
- void pridavanie(struct auta **zac)
- {
- int k;
- scanf("%d ", &k);
- struct auta *pred = NULL;
- //if(k - 2 > 0)
- pred = najdi_poziciu(*zac, k - 1);
- struct auta *za = najdi_poziciu(*zac, k+1);
- struct auta *novy = malloc(sizeof(struct auta));
- scanf("%[^\n] %[^\n] %[^\n] %d %d %[^\n]", novy->kategoria, novy->znacka, novy->predajca, &novy->cena, &novy->rok_vyroby, novy->stav_vozidla);
- if(pred != NULL) pred->dalsia = novy;
- *zac = novy;
- if(za != NULL) novy->dalsia = za;
- }
- int main()
- {
- char k;
- struct auta *zac = NULL;
- while(scanf(" %c", &k) && k != 'k')
- switch(k)
- {
- case 'n': nacitanie(&zac); break;
- case 'v': vypis(zac); break;
- case 'p': pridavanie(&zac); break;
- default: printf("Zly vstup\n"); break;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement