Advertisement
Guest User

Untitled

a guest
Apr 19th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.82 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include<string.h>
  4.  
  5. struct auta {
  6. char kategoria[50];
  7. char znacka[50];
  8. char predajca[100];
  9. int cena;
  10. int rok_vyroby;
  11. char stav_vozidla[200];
  12. struct auta *dalsia;
  13. };
  14.  
  15. void pridaj(struct auta **zac, char kat[], char zn[], char pr[], int cen, int rok, char stav[])
  16. {
  17. struct auta *posledny = *zac;
  18. struct auta *novy = malloc(sizeof(struct auta));
  19. strcpy(novy->kategoria, kat);
  20. strcpy(novy->znacka, zn);
  21. strcpy(novy->predajca, pr);
  22. novy->cena = cen;
  23. novy->rok_vyroby = rok;
  24. strcpy(novy->stav_vozidla, stav);
  25. novy->dalsia = NULL;
  26. if(*zac == NULL)
  27. {
  28. *zac = novy;
  29. return;
  30. }
  31. while(posledny->dalsia != NULL)
  32. {
  33. posledny = posledny->dalsia;
  34. }
  35. posledny->dalsia = novy;
  36. }
  37.  
  38. void nacitanie(struct auta **zac)
  39. {
  40. char kat[50], zn[50], pr[100], stav[200];
  41. int cen, rok, count = 0;
  42. FILE *f1 = fopen("auta.txt", "r");
  43. if(f1 == NULL)
  44. {
  45. printf("Neexistuje");
  46. exit(0);
  47. }
  48.  
  49. while(fscanf(f1, "$ %[^\n]\n%[^\n]\n%[^\n]\n%d\n%d\n%[^\n] ", kat, zn, pr, &cen, &rok, stav) != EOF)
  50. {
  51. //printf("%s %s %s %d %d %s\n", kat, zn, pr, cen, rok, stav);
  52. count++;
  53. pridaj(zac, kat, zn, pr, cen, rok, stav);
  54. }
  55. printf("Nacitalo sa %d zaznamov", count);
  56. fclose(f1);
  57. }
  58. void vypis(struct auta *zac)
  59. {
  60. int count = 1;
  61. while(zac != NULL)
  62. {
  63. 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);
  64. zac = zac->dalsia;
  65. }
  66. }
  67. struct auta *najdi_poziciu(struct auta *zac, int k)
  68. {
  69. int c=1;
  70. struct auta *novy = zac;
  71. while(novy != NULL)
  72. {
  73. if(c == k)
  74. {
  75. return novy;
  76. }
  77. c++;
  78. novy = novy->dalsia;
  79. }
  80. return NULL;
  81. }
  82. void pridavanie(struct auta **zac)
  83. {
  84. int k;
  85. scanf("%d ", &k);
  86. struct auta *pred = NULL;
  87. //if(k - 2 > 0)
  88. pred = najdi_poziciu(*zac, k - 1);
  89. struct auta *za = najdi_poziciu(*zac, k+1);
  90. struct auta *novy = malloc(sizeof(struct auta));
  91. scanf("%[^\n] %[^\n] %[^\n] %d %d %[^\n]", novy->kategoria, novy->znacka, novy->predajca, &novy->cena, &novy->rok_vyroby, novy->stav_vozidla);
  92. if(pred != NULL) pred->dalsia = novy;
  93. *zac = novy;
  94. if(za != NULL) novy->dalsia = za;
  95. }
  96. int main()
  97. {
  98. char k;
  99. struct auta *zac = NULL;
  100. while(scanf(" %c", &k) && k != 'k')
  101. switch(k)
  102. {
  103. case 'n': nacitanie(&zac); break;
  104. case 'v': vypis(zac); break;
  105. case 'p': pridavanie(&zac); break;
  106. default: printf("Zly vstup\n"); break;
  107. }
  108. return 0;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement