Advertisement
Solomid

Untitled

Jan 16th, 2020
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.83 KB | None | 0 0
  1. TUT 13 sve osim 5.
  2.  
  3. 1.
  4.  
  5. #include <stdio.h>
  6.  
  7. struct Student{
  8.     char ime[15], prezime[20];
  9.     int broj_bodova;
  10. };
  11.  
  12. int main() {
  13.     struct Student studenti[300], tmp;
  14.     FILE *ulaz, *izlaz;
  15.     int i, j, vel, max;
  16.  
  17.     /* Otvaranje datoteka */
  18.     if ((ulaz = fopen("ispit.txt","r")) == NULL) {
  19.         printf("Greska pri otvaranju datoteke ispit.txt");
  20.         return 1;
  21.     }
  22.  
  23.     if ((izlaz = fopen("ispit_sortiran.txt","w")) == NULL) {
  24.         fclose(ulaz);
  25.         printf("Greska pri otvaranju datoteke ispit_sortiran.txt");
  26.         return 1;
  27.     }
  28.  
  29.     /* Ucitavanje datoteke u niz studenti */
  30.     i=0;
  31.     while (fscanf(ulaz,"%20s%15s%2d\n", studenti[i].prezime, studenti[i].ime, &studenti[i].broj_bodova) == 3 && i<300)
  32.         i++;
  33.     vel = i;
  34.  
  35.     /* Sortiranje niza po broju bodova */
  36.     for (i=0; i<vel; i++) {
  37.         max = i;
  38.         for (j=i+1; j<vel; j++)
  39.             if(studenti[j].broj_bodova > studenti[max].broj_bodova)
  40.                 max = j;
  41.  
  42.         tmp = studenti[i];
  43.         studenti[i] = studenti[max];
  44.         studenti[max] = tmp;
  45.     }
  46.  
  47.     // Upis niza u datoteku
  48.     for (i=0; i<vel; i++)
  49.         fprintf(izlaz,"%-20s%-15s%2d\n", studenti[i].prezime, studenti[i].ime, studenti[i].broj_bodova);
  50.  
  51.     printf ("Izlazna datoteka ispit_sortiran.txt je kreirana\n");
  52.     fclose(ulaz);
  53.     fclose(izlaz);
  54.     return 0;
  55. }
  56.  
  57.  
  58. 2.
  59.  
  60. #include <stdio.h>
  61.  
  62. struct Student{
  63.     char ime[15], prezime[20];
  64.     int broj_bodova1, broj_bodova2;
  65. };
  66.  
  67. int main() {
  68.     struct Student studenti[10000], tmp;
  69.     FILE *ulaz, *izlaz;
  70.     remove("usmeni.txt");
  71.     int i, j, vel, max;
  72.  
  73.     /* Otvaranje datoteka */
  74.     if ((ulaz = fopen("ispit.txt","r")) == NULL) {
  75.         printf("Greska pri otvaranju datoteke ispit.txt");
  76.         return 1;
  77.     }
  78.  
  79.     if ((izlaz = fopen("usmeni.txt","w")) == NULL) {
  80.         fclose(ulaz);
  81.         printf("Greska pri otvaranju datoteke usmeni.txt");
  82.         return 1;
  83.     }
  84.  
  85.     /* Ucitavanje datoteke u niz studenti */
  86.     i=0;
  87.     while (fscanf(ulaz,"%20s%15s%2d%2d\n", studenti[i].prezime, studenti[i].ime, &studenti[i].broj_bodova1, &studenti[i].broj_bodova2) == 4 && i<300)
  88.         i++;
  89.     vel = i;
  90.    
  91.     for (i=0; i<vel; i++) {
  92.         max = i;
  93.         for (j=i+1; j<vel; j++)
  94.             if(studenti[j].broj_bodova1 + studenti[j].broj_bodova2 > studenti[max].broj_bodova1 + studenti[max].broj_bodova2)
  95.                 max = j;
  96.  
  97.         tmp = studenti[i];
  98.         studenti[i] = studenti[max];
  99.         studenti[max] = tmp;
  100.     }
  101.  
  102.     for (i=0; i<vel; i++)
  103.         if(studenti[i].broj_bodova1 >= 10 && studenti[i].broj_bodova2 >= 10)
  104.         fprintf(izlaz,"%-15s%-10s%2d\n", studenti[i].prezime, studenti[i].ime, studenti[i].broj_bodova1+studenti[i].broj_bodova2);
  105.  
  106.     printf ("Izlazna datoteka usmeni.txt je kreirana\n");
  107.     fclose(ulaz);
  108.     fclose(izlaz);
  109.     return 0;
  110. }
  111.  
  112.  
  113. 3.
  114.  
  115. #include <stdio.h>
  116.  
  117. void unesi(char niz[], int velicina) {
  118.     char znak = getchar();
  119.     if (znak == '\n') znak = getchar();
  120.     int i = 0;
  121.     while(i < velicina - 1 && znak != '\n') {
  122.         niz[i] = znak;
  123.         i++;
  124.         znak = getchar();
  125.     }
  126.     niz[i]='\0';
  127. }
  128.  
  129. struct Student {
  130.     char ime[15], prezime[20];
  131.     int broj_bodova1, broj_bodova2;
  132. } s;
  133.  
  134. int main()
  135. {
  136.     FILE* izlaz, *ispis;
  137.     int i=0,key=1;
  138.     while(key) {
  139.         printf("Unesite 1 za unos, 2 za ispis, 0 za izlaz: ");
  140.         scanf("%d", &key);
  141.         if(key == 1) {
  142.             izlaz = fopen("ispit.txt", "a");
  143.             printf("Unesite ime: ");
  144.             unesi(s.ime,15);
  145.             printf("Unesite prezime: ");
  146.             unesi(s.prezime,20);
  147.             printf("Unesite broj bodova na I parcijalnom: ");
  148.             scanf("%d",&s.broj_bodova1);
  149.             printf("Unesite broj bodova na II parcijalnom: ");
  150.             scanf("%d",&s.broj_bodova2);
  151.             fprintf(izlaz,"%-20s%-15s%2d%3d\n", s.prezime, s.ime, s.broj_bodova1, s.broj_bodova2);
  152.             fclose(izlaz);
  153.             i++;
  154.         }
  155.         if(key == 2) {
  156.             int br = 0,j;
  157.             ispis = fopen("ispit.txt", "r");
  158.             struct Student studenti[1000];
  159.             j = 0;
  160.             while (fscanf(ispis,"%20s%15s%2d%2d\n", studenti[j].prezime, studenti[j].ime, &studenti[j].broj_bodova1, &studenti[j].broj_bodova2) == 4 && j<300)
  161.                 j++;
  162.             while(br != j){
  163.                 printf("\n%d. %s %s - %d, %d\n",br+1,studenti[br].ime, studenti[br].prezime, studenti[br].broj_bodova1, studenti[br].broj_bodova2);
  164.                 br++;
  165.             }
  166.         }
  167.     }
  168.     return 0;
  169. }
  170.  
  171.  
  172. 4.
  173.  
  174. #include <stdio.h>
  175. #include <stdlib.h> /* Zbog funkcije exit() */
  176. #include <string.h>
  177.  
  178. struct Student {
  179.     char prezime[20];
  180.     char ime[15];
  181.     int broj_bodova1;
  182.     int broj_bodova2;
  183.     int ukupno;
  184. };
  185.  
  186. struct BinarniStudent {
  187.     char prezime[20];
  188.     char ime[15];
  189.     int ukupno;
  190. };
  191.  
  192. int main()
  193. {
  194.     struct Student studenti[3000], tmp;
  195.     struct BinarniStudent tmpBin;
  196.     FILE *ulaz, *izlaz;
  197.     int i, j, vel;
  198.     remove("usmeni.txt");
  199.     if ((ulaz = fopen("ispit.txt","r")) == NULL) {
  200.         printf("Greska pri otvaranju datoteke ispit.txt");
  201.         return 1;
  202.     }
  203.  
  204.     if ((izlaz = fopen("usmeni.dat","wb")) == NULL) {
  205.         fclose(ulaz);
  206.         printf("Greska pri otvaranju datoteke usmeni.txt");
  207.         return 1;
  208.     }
  209.  
  210.     i=0;
  211.     while (fscanf(ulaz,"%20s%15s%2d %2d\n", studenti[i].prezime, studenti[i].ime, &studenti[i].broj_bodova1, &studenti[i].broj_bodova2) == 4 && i<300)
  212.         i++;
  213.     vel = i;
  214.  
  215.     for(i=0; i<vel; i++) {
  216.         studenti[i].ukupno=studenti[i].broj_bodova1+studenti[i].broj_bodova2;
  217.     }
  218.     /* Sortiranje niza po broju bodova */
  219.     for (i=0; i<vel; i++) {
  220.         for (j=i+1; j<vel; j++) {
  221.             if(studenti[j].ukupno>studenti[i].ukupno) {
  222.                 tmp = studenti[i];
  223.                 studenti[i] = studenti[j];
  224.                 studenti[j] = tmp;
  225.             }
  226.         }
  227.     }
  228.    
  229.     // Upis niza u datoteku
  230.     for (i=0; i<vel; i++)
  231.         if(studenti[i].broj_bodova1>=10 && studenti[i].broj_bodova2>=10) {
  232.             strcpy(tmpBin.ime,studenti[i].ime);
  233.             strcpy(tmpBin.prezime,studenti[i].prezime);
  234.             tmpBin.ukupno=studenti[i].ukupno;
  235.             fwrite(&tmpBin,sizeof(tmpBin),1,izlaz);
  236.  
  237.         }
  238.     printf ("Izlazna datoteka usmeni.dat je kreirana\n");
  239.  
  240.     fclose(ulaz);
  241.     fclose(izlaz);
  242.     return 0;
  243. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement