Advertisement
aed1oN

Zadatak 3, Tutorijal 13

Jan 22nd, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.83 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. struct Student {
  4.     char prezime[20];
  5.     char ime[15];
  6.     int broj_bodova1, broj_bodova2;
  7. };
  8.  
  9. void unesi(char *string, int velicina) {
  10.     int i = 0;
  11.     char c = getchar();
  12.     if (c == '\n') c = getchar();
  13.     while (i < velicina - 1 && c != '\n') {
  14.         string[i] = c;
  15.         i++;
  16.         c = getchar();
  17.     }
  18.     string[i] = '\0';
  19. }
  20.  
  21. void unos() {
  22.     struct Student student;
  23.     FILE *unos;
  24.     unos = fopen("ispit.txt", "a");
  25.     if (!unos) {
  26.         printf("Greska pri otvaranju datoteke za pisanje.\n");
  27.         return;
  28.     }
  29.     printf("Unesite ime: ");
  30.     unesi(student.ime, 15);
  31.     printf("Unesite prezime: ");
  32.     unesi(student.prezime, 20);
  33.     printf("Unesite broj bodova na I parcijalnom: ");
  34.     scanf("%d", &student.broj_bodova1);
  35.     printf("Unesite broj bodova na II parcijalnom: ");
  36.     scanf("%d", &student.broj_bodova2);
  37.     fprintf(unos, "%-20s%-15s%2d %2d\n", student.prezime, student.ime, student.broj_bodova1, student.broj_bodova2);
  38.     fclose(unos);
  39. }
  40.  
  41. void ispis() {
  42.     struct Student studenti[50];
  43.     int i = 0, velicina;
  44.     FILE *ulaz;
  45.     ulaz = fopen("ispit.txt", "r");
  46.     if (!ulaz) {
  47.         printf("Greska pri ucitavanju datoteke za citanje.\n");
  48.         return;
  49.     }
  50.     while (i < 50 && fscanf(ulaz, "%20s%15s%2d%2d", studenti[i].prezime, studenti[i].ime, &studenti[i].broj_bodova1, &studenti[i].broj_bodova2) == 4)
  51.         i++;
  52.     velicina = i;
  53.     fclose(ulaz);
  54.     for (i = 0; i < velicina; i++) {
  55.         printf("\n%d. %s %s - %d, %d\n", i + 1, studenti[i].ime, studenti[i].prezime, studenti[i].broj_bodova1, studenti[i].broj_bodova2);
  56.     }
  57. }
  58.  
  59. int main() {
  60.     int opcija;
  61.     do {
  62.         printf("Unesite 1 za unos, 2 za ispis, 0 za izlaz: ");
  63.         scanf("%d", &opcija);
  64.         switch (opcija) {
  65.             case 1:
  66.                 unos();
  67.                 break;
  68.             case 2:
  69.                 ispis();
  70.                 break;
  71.             case 0:
  72.                 break;
  73.             default:
  74.                 printf("Pogresan unos!\n");
  75.         }
  76.     } while (opcija != 0);
  77.     return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement