Guest User

Untitled

a guest
May 24th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.75 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define IMEDAT1 "predmeti.txt"
  6. #define IMEDAT2 "samo_predmeti.txt"
  7. #define IMEDAT3 "nema_pet.txt"
  8.  
  9. #define Fflush(int_keyboard_buffer) while(( (int_keyboard_buffer) = getchar()) != '\n')
  10.  
  11.  void prijepis_predmeta() {
  12.  
  13.     FILE *inputfile = NULL;
  14.     FILE *outputfile = NULL;
  15.     unsigned long int jmbag;
  16.     short int ocjena, n, i;
  17.     char predmet[20+1];
  18.  
  19.     inputfile = fopen(IMEDAT1, "r");
  20.     if (inputfile == NULL)
  21.     {
  22.         printf ("\nGreska kod otvaranja datoteke %s!", IMEDAT1);
  23.         exit(1);
  24.     }
  25.     outputfile = fopen(IMEDAT2, "w");
  26.     if (outputfile == NULL)
  27.     {
  28.         printf ("\nGreska kod otvaranja datoteke %s!", IMEDAT2);
  29.         exit(1);
  30.     }
  31.     printf("\n\n------------------------------------\nIspis datoteke:\n\n");
  32.     while ((fscanf(inputfile, "%010lu#%d#\n", &jmbag, &n)) == 2)
  33.     {
  34.         printf("%010lu %d\n", jmbag, n);
  35.         for(i = 0;i < n;i++)
  36.         {
  37.             fscanf(inputfile,"%[^#]s", predmet);
  38.             fprintf(outputfile, "%s#", predmet);
  39.             fscanf(inputfile, "#%d#", &ocjena);
  40.             printf("%s %d ", predmet, ocjena);
  41.         }
  42.         printf("\n");
  43.         fprintf(outputfile, "\n\n");
  44.         fscanf(inputfile, "\n");
  45.     }
  46.  
  47.     fclose (inputfile);
  48.     fclose (outputfile);
  49. }
  50.  
  51.  void nema_pet() {
  52.  
  53.     FILE *inputfile = NULL;
  54.     FILE *outputfile = NULL;
  55.     unsigned long int jmbag, backup;
  56.     short int ocjena, n, i, broj_petica = 0;
  57.     char predmet[20+1];
  58.  
  59.     inputfile = fopen(IMEDAT1, "r");
  60.     if (inputfile == NULL)
  61.     {
  62.         printf ("\nGreska kod otvaranja datoteke %s!", IMEDAT1);
  63.         exit(1);
  64.     }
  65.     outputfile = fopen(IMEDAT3, "w");
  66.     if (outputfile == NULL)
  67.     {
  68.         printf ("\nGreska kod otvaranja datoteke %s!", IMEDAT3);
  69.         exit(1);
  70.     }
  71.     while ((fscanf(inputfile, "%010lu#%d#\n", &jmbag, &n)) == 2)
  72.     {
  73.         backup = jmbag;
  74.         for(i = 0;i < n;i++)
  75.         {
  76.             fscanf(inputfile,"%[^#]s", predmet);
  77.             fscanf(inputfile, "#%d#", &ocjena);
  78.             if (ocjena == 5)
  79.                 broj_petica++;
  80.         }
  81.         printf("\n");
  82.         if (broj_petica == 0)
  83.             fprintf(outputfile, "%010lu#\n", backup);
  84.         broj_petica = 0;
  85.         fscanf(inputfile, "\n");
  86.     }
  87.  
  88.     fclose (inputfile);
  89.     fclose (outputfile);
  90. }
  91.  
  92. int main () {
  93.  
  94.     FILE *outputfile = NULL;
  95.     unsigned long int jmbag;
  96.     char predmet[20+1];
  97.     short int ocjena, n, i;
  98.     char buffer;
  99.  
  100.     outputfile = fopen(IMEDAT1, "a");
  101.     if (outputfile == NULL)
  102.     {
  103.         printf ("Greska kod otvaranja datoteke %s!", IMEDAT1);
  104.         exit(1);
  105.     }
  106.  
  107.     while (1)
  108.     {
  109.         printf("Upisite JMBAG: ");
  110.         scanf("%10lu[^\n]", &jmbag);
  111.         if (jmbag == 0)
  112.             break;
  113.         printf("\nUpisite broj predmeta (od 2 do 6): ");
  114.         do
  115.         {
  116.             scanf("%d", &n);
  117.         }
  118.         while (n < 2 || n > 6);
  119.         fprintf(outputfile, "%010lu#%d#\n", jmbag, n);
  120.         Fflush(buffer);
  121.  
  122.         for(i = 0;i < n;i++)
  123.         {
  124.             printf("\nUpisite ime %d. predmeta: ", i + 1);
  125.             scanf("%20[^\n]s", predmet);
  126.             fprintf(outputfile, "%s#", predmet);
  127.             printf("\nUpisite ocjenu (od 1 do 5): ");
  128.             do
  129.             {
  130.                 scanf("%d", &ocjena);
  131.                 if(ocjena < 1 || ocjena > 5)
  132.                     Fflush(buffer);
  133.             }
  134.             while (ocjena < 1 || ocjena > 5);
  135.             Fflush(buffer);
  136.             fprintf(outputfile, "%d#", ocjena);
  137.         }
  138.         fprintf(outputfile, "\n");
  139.         printf("\n");
  140.     }
  141.  
  142.     fclose(outputfile);
  143.  
  144.     prijepis_predmeta();
  145.  
  146.     nema_pet();
  147.  
  148.     return 0;
  149.  
  150. }
Add Comment
Please, Sign In to add comment