Advertisement
marek03031

Untitled

Nov 29th, 2015
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.22 KB | None | 0 0
  1. #ifdef _MSC_VER
  2. #define _CRT_SECURE_NO_WARNINGS
  3. #endif
  4.  
  5. #include <stdio.h>                                  //Pouzite kniznice
  6. #include <stdlib.h>
  7. #include <string.h>
  8. #include <math.h>
  9. #include <ctype.h>
  10.  
  11. typedef struct pozicka{
  12.     char sign[15];
  13.     char isbn[17];
  14.     char kniha[105];
  15.     char autor[105];
  16.     int datum;
  17.     int cislo;
  18.     struct pozicka *dalsi;
  19. } POZICKA;
  20.  
  21. POZICKA * funkcia_n(POZICKA *p_prv) {
  22.     if (p_prv != NULL) {
  23.         free(p_prv);
  24.     }
  25.     FILE *fr;
  26.     char nic[70];                                       //Deklaracia ukazovatela na smernik
  27.     POZICKA *p_akt;
  28.     int n = 0, x, i;
  29.  
  30.     fr = fopen("kniznica.txt", "r");                //Otvorenie suboru na citanie
  31.     if (fr == NULL) {                                   //Osetrenie neotvorenia suboru
  32.         printf("Zaznamy neboli nacitane\n");
  33.         return 0;
  34.     }
  35.  
  36.     while ((fgets(nic, 70, fr)) != NULL) {              //Citanie po riadkoch po koniec suboru
  37.         fgets(nic, 70, fr);
  38.         fgets(nic, 70, fr);
  39.         fgets(nic, 70, fr);
  40.         fgets(nic, 70, fr);
  41.         fscanf(fr, "%d\n", &x);
  42.         fscanf(fr, "%d\n", &x);
  43.         n++;                                            //Pocet zaznamov
  44.     }
  45.  
  46.     if ((p_prv = (POZICKA *) malloc(sizeof(POZICKA))) == NULL) {
  47.         printf("Malo pamate.\n");
  48.         return 0;
  49.     }
  50.    
  51.     rewind(fr);
  52.     fgets(nic, 20, fr);
  53.     fgets(p_prv->sign, 15, fr);
  54.     fgets(p_prv->isbn, 17, fr);
  55.     fgets(p_prv->kniha, 105, fr);
  56.     fgets(p_prv->autor, 105, fr);
  57.     fscanf(fr, "%d", &p_prv->datum);
  58.     fscanf(fr, "%d", &p_prv->cislo);
  59.    
  60.     p_akt = p_prv;
  61.  
  62.     for (i = 2; i <= n; i++) {
  63.         if ((p_akt->dalsi = (POZICKA *) malloc(sizeof(POZICKA))) == NULL) {
  64.             printf("Malo pamate.\n");
  65.             return 0;
  66.         }
  67.         p_akt = p_akt->dalsi;
  68.         fgets(nic, 20, fr);
  69.         fgets(nic, 20, fr);
  70.         fgets(p_akt->sign, 15, fr);
  71.         fgets(p_akt->isbn, 17, fr);
  72.         fgets(p_akt->kniha, 105, fr);
  73.         fgets(p_akt->autor, 105, fr);
  74.         fscanf(fr, "%d", &p_akt->datum);
  75.         fscanf(fr, "%d", &p_akt->cislo);
  76.     }
  77.     printf("Nacitalo sa %d zaznamov\n", n);
  78.    
  79.     p_akt->dalsi = NULL;
  80.    
  81.     return p_prv;
  82.  
  83.  
  84. }
  85. POZICKA * funkcia_v(POZICKA *p_prv) {
  86.     if (p_prv != NULL) {
  87.  
  88.         POZICKA *p_akt;
  89.         p_akt = p_prv;
  90.        
  91.         int x=0;
  92.  
  93.         while (p_akt != NULL) {
  94.             printf("%d.\n", ++x);
  95.             printf("signatura: %s", p_akt->sign);
  96.             printf("isbn: %s", p_akt->isbn);
  97.             printf("nazov: %s", p_akt->kniha);
  98.             printf("autori: %s", p_akt->autor);
  99.             printf("datum: %d\n", p_akt->datum);
  100.             printf("preukaz: %d\n", p_akt->cislo);
  101.             p_akt = p_akt->dalsi;
  102.         }
  103.         return p_akt;
  104.     }
  105.     return 0;
  106.  
  107.        
  108. }
  109. void funkcia_p(POZICKA *p_akt) {
  110.    
  111.     int poz;
  112.     scanf("%d", &poz);
  113.     POZICKA *p_nov;
  114.     printf("%d\n", poz);
  115.  
  116.     if ((p_nov->dalsi = (POZICKA *)malloc(sizeof(POZICKA))) == NULL) {
  117.         printf("Malo pamate.\n");
  118.         return 0;
  119.     }
  120.    
  121.    
  122. }
  123.  
  124. void funkcia_z() {
  125.     char pole[30];
  126.     int i = 0;
  127.     scanf("%s", pole);
  128.     while(pole[i])
  129.    {
  130.       putchar (toupper(pole[i]));
  131.       i++;
  132.    }
  133.     printf("\n");
  134.    
  135.     //if(char *strstr(char *s1, char *s2)!= NULL)
  136.    
  137. }
  138.  
  139. void funkcia_h() {
  140.  
  141. }
  142.  
  143. void funkcia_a() {
  144.  
  145. }
  146.  
  147. int main() {
  148.     char volba;
  149.     POZICKA *p_prv=NULL, *p_akt=NULL;
  150.     do {
  151.         volba = getchar();
  152.         switch (volba) {
  153.         case 'n': p_prv = funkcia_n(p_prv); break;
  154.         case 'v': p_akt = funkcia_v(p_prv); break;                      //Volanie funkcii
  155.         case 'p': funkcia_p(p_akt); break;
  156.         case 'z': funkcia_z(); break;
  157.         case 'h': funkcia_h(); break;
  158.         case 'a': funkcia_a(); break;
  159.         }
  160.     } while (volba != 'k');
  161.  
  162.  
  163.     return 0;
  164. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement