Advertisement
dzindara

tralalalala

Jan 13th, 2017
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 9.64 KB | None | 0 0
  1. - 1 -
  2. #include <stdio.h>
  3. #include <stdlib.h> /* Zbog funkcije exit() */
  4.  
  5. int main() {
  6.     FILE *ulaz;
  7.     char znak, ime[20];
  8.     int broj_redova=0, broj_rijeci=0, broj_znakova=0, razmak=1;
  9.  
  10.     printf ("Unesite ime datoteke: ");
  11.     scanf ("%s", ime);
  12.     ulaz = fopen(ime, "r");
  13.     if (ulaz == NULL) {
  14.         printf ("Pogreska kod otvaranja datoteke %s!\n\n", ime);
  15.         exit (1);
  16.     }
  17.     while ((znak=fgetc(ulaz)) != EOF) {
  18.         /* Ako je znak novi red, povecaj broj linija za jedan */
  19.         if (znak=='\n')
  20.             ++broj_redova;
  21.  
  22.         /* Da li je znak razmak? */
  23.         if (znak==' ' || znak=='\n' || znak=='\t')
  24.             razmak=1;
  25.  
  26.         else {
  27.             ++broj_znakova;
  28.             /* Ako je prethodni znak bio razmak a ovaj nije,
  29.                povecavamo broj rijeci za 1 */
  30.             if (razmak==1) ++broj_rijeci;
  31.             razmak=0;
  32.         }
  33.     }
  34.     if (broj_znakova != 0) broj_redova++;
  35.     printf ("Broj redova: %d\nBroj rijeci: %d\nBroj znakova: %d\n",
  36. broj_redova, broj_rijeci, broj_znakova);
  37.     fclose (ulaz);
  38.     return 0;
  39. }
  40.  
  41.  
  42. - 2 -
  43.  
  44. #include <stdio.h>
  45. #include <stdlib.h> /* Zbog funkcije exit() */
  46.  
  47. int main() {
  48.     FILE *ulaz;
  49.     char znak, ime[20];
  50.     int broj_redova=0, broj_rijeci=0, broj_znakova=0, razmak=1;
  51.  
  52.     char broj_samoglasnika=0, broj_velikih_slova=0, broj_cifara=0;
  53.  
  54.     printf ("Unesite ime datoteke: ");
  55.     scanf ("%s", ime);
  56.     ulaz = fopen(ime, "r");
  57.     if (ulaz == NULL) {
  58.         printf ("Pogreska kod otvaranja datoteke %s!\n\n", ime);
  59.         exit (1);
  60.     }
  61.     while ((znak=fgetc(ulaz)) != EOF) {
  62.        
  63.         if(znak=='a' || znak=='A' || znak=='e' || znak=='E' || znak=='i' || znak=='I' || znak=='O' || znak=='o' || znak=='U' || znak=='u') broj_samoglasnika++;
  64.         if(znak>=65 && znak<=90) broj_velikih_slova++;
  65.         if(znak>=48 && znak<=57) broj_cifara++;
  66.        
  67.         /* Ako je znak novi red, povecaj broj linija za jedan */
  68.         if (znak=='\n')
  69.             ++broj_redova;
  70.  
  71.         /* Da li je znak razmak? */
  72.         if (znak==' ' || znak=='\n' || znak=='\t')
  73.             razmak=1;
  74.  
  75.         else {
  76.             ++broj_znakova;
  77.             /* Ako je prethodni znak bio razmak a ovaj nije,
  78.                povecavamo broj rijeci za 1 */
  79.             if (razmak==1) ++broj_rijeci;
  80.             razmak=0;
  81.         }
  82.     }
  83.     if (broj_znakova != 0) broj_redova++;
  84.     printf ("\nBroj redova: %d\nBroj rijeci: %d\nBroj znakova: %d\nBroj samoglasnika: %d\nBroj velikih slova: %d\nBroj cifara: %d", broj_redova, broj_rijeci, broj_znakova, broj_samoglasnika, broj_velikih_slova, broj_cifara);
  85.     fclose (ulaz);
  86.     return 0;
  87. }
  88.  
  89. - 3 -
  90.  
  91. #include <stdio.h>
  92. #include <stdlib.h> /* Zbog funkcije exit() */
  93.  
  94. int main() {
  95.     FILE *ulaz;
  96.     int n=0, i, brPredmeta;
  97.     int  indexi[1000]={0}, predmet[1000]={0}, ocjena[1000]={0};
  98.  
  99.     ulaz = fopen("ispiti.txt", "r");
  100.     printf("Unesite predmet: ");
  101.     scanf("%d", &brPredmeta);
  102.    
  103.     while ((fscanf (ulaz,"%d %d %d\n", &indexi[n], &predmet[n], &ocjena[n]) == 3) && (n < 1000)) {
  104.         n++;
  105.     }
  106.    
  107.     double prosjek=0, postotak=0;
  108.     int broj=0, broj_polozenih=0;
  109.     int suma=0;
  110.     for(i=0;i<n;i++){
  111.        
  112.         if(brPredmeta ==  predmet[i]) {
  113.             broj++;
  114.             suma+=ocjena[i];
  115.             if(ocjena[i]>=6 && ocjena[i]<=10) broj_polozenih++;
  116.         }
  117.        
  118.     }
  119.    
  120.     if(broj!=0){
  121.         prosjek = (double)suma/broj;
  122.         postotak = (double)broj_polozenih*100/broj;
  123.    
  124.     printf("Prosjecna ocjena: %.2f",  prosjek);
  125.     printf("\nProlaznost: %g%%", postotak);
  126.     }
  127.     else printf("Zalimo, ali ne postoje podaci o predmetu sa brojem %d!", brPredmeta);
  128.    
  129.     fclose (ulaz);
  130.     return 0;
  131. }
  132.  
  133. - 4 -
  134.  
  135. #include <stdio.h>
  136. #include <stdlib.h> /* Zbog funkcije exit() */
  137. #include <string.h>
  138. void unesi(char niz[], int velicina){
  139.     char znak = getchar();
  140.     if (znak == '\n') znak=getchar();
  141.     int i = 0;
  142.     while (i < velicina-1 && znak != '\n') {
  143.         niz[i] = znak;
  144.         i++;
  145.         znak = getchar();
  146.     }
  147.     niz[i]='\0';
  148. }
  149.  
  150. void unesi_fajl(FILE *ulaz, char niz[], int velicina)
  151. {
  152.     char znak = fgetc(ulaz);
  153.     if (znak == '\n') znak = fgetc(ulaz);
  154.     int i = 0;
  155.     while (i < velicina-1 && znak != '\n' && znak != EOF) {
  156.         niz[i] = znak;
  157.         i++;
  158.         znak = fgetc(ulaz);
  159.     }
  160.     niz[i]='\0';
  161.  
  162. }
  163.  
  164. struct predmeti {
  165.     int broj_predmeta;
  166.     char naziv_predmeta[1000];
  167. };
  168.  
  169.  
  170.  
  171. int main() {
  172.     FILE *ulaz;
  173.     FILE *ulazdva;
  174.     int n=0, i;
  175.     int  indexi[1000]={0}, predmet[1000]={0}, ocjena[1000]={0};
  176.    
  177.     struct predmeti predmetix[100];
  178.    
  179.     char predmet1[1000];
  180.     ulaz = fopen("ispiti.txt", "r");
  181.     ulazdva = fopen("predmeti.txt", "r");
  182.    
  183.     if (ulaz == NULL) {
  184.         printf("Greska prilikom otvaranja datoteke 'ispiti.txt'! \n");
  185.         exit(1);
  186.     }
  187.  
  188.     if (ulazdva == NULL) {
  189.         printf("Greska prilikom otvaranja datoteke 'predmeti.txt'! \n");
  190.         exit(1);
  191.     }
  192.    
  193.    
  194.     while ((fscanf (ulazdva ,"%d ", &predmetix[n].broj_predmeta) == 1) && (n < 1000)) {
  195.         unesi_fajl(ulazdva, predmetix[n].naziv_predmeta, 1000);
  196.         n++;
  197.     }
  198.     int nepostojeci=0;
  199.     int pamti=0;
  200.     do{
  201.     printf("Unesite predmet: ");
  202.     unesi(predmet1,1000);
  203.        
  204.        
  205.    
  206.    
  207.     for(i=0;i<n;i++){
  208.        
  209.         if(strcmp(predmetix[i].naziv_predmeta, predmet1)==0) {
  210.             pamti = predmetix[i].broj_predmeta;
  211.         }
  212.        
  213.     }
  214.     if(pamti==0) { printf("Nepostojeci predmet!"); }
  215.     }while(pamti==0);
  216.     n=0;
  217.    
  218.     while ((fscanf (ulaz ,"%d %d %d\n", &indexi[n], &predmet[n], &ocjena[n]) == 3) && (n < 1000)) {
  219.         n++;
  220.     }
  221.    
  222.    
  223.     double prosjek=0, postotak=0;
  224.     int broj=0, broj_polozenih=0;
  225.     int suma=0;
  226.     for(i=0;i<n;i++){
  227.        
  228.         if( predmet[i] == pamti) {
  229.             broj++;
  230.             suma+=ocjena[i];
  231.             if(ocjena[i]>=6 && ocjena[i]<=10) broj_polozenih++;
  232.         }
  233.        
  234.     }
  235.    
  236.     if(broj!=0){
  237.         prosjek = (double)suma/broj;
  238.         postotak = (double)broj_polozenih*100/broj;
  239.    
  240.     printf("Prosjecna ocjena: %.2f",  prosjek);
  241.     printf("\nProlaznost: %g%%", postotak);
  242.     }
  243.     else printf("Zalimo, ali ne postoje podaci o predmetu %s!", predmet1);
  244.    
  245.     fclose (ulaz);
  246.     fclose (ulazdva);
  247.     return 0;
  248. }
  249.  
  250. - 5 -
  251.  
  252. #include <stdio.h>
  253. #include <stdlib.h> /* Zbog funkcije exit() */
  254. #include <string.h>
  255.  
  256. int n=0;
  257.  
  258. void unesi(char niz[], int velicina){
  259.     char znak = getchar();
  260.     if (znak == '\n') znak=getchar();
  261.     int i = 0;
  262.     while (i < velicina-1 && znak != '\n') {
  263.         niz[i] = znak;
  264.         i++;
  265.         znak = getchar();
  266.     }
  267.     niz[i]='\0';
  268. }
  269.  
  270. void unesi_fajl(FILE *ulaz, char niz[], int velicina){
  271.     char znak = fgetc(ulaz);
  272.     if (znak == '\n') znak = fgetc(ulaz);
  273.     int i = 0;
  274.     while (i < velicina-1 && znak != '\n' && znak != EOF) {
  275.         niz[i] = znak;
  276.         i++;
  277.         znak = fgetc(ulaz);
  278.     }
  279.     niz[i]='\0';
  280.  
  281. }
  282.  
  283. struct predmeti {
  284.     int index;
  285.     int broj_predmeta;
  286.     char naziv_predmeta[1000];
  287. };
  288.  
  289.  
  290.  
  291. void ispis(){
  292.     FILE *ulaz;
  293.     FILE *ulazdva;
  294.     int  i;
  295.     int  indexi[1000]= {0}, predmet[1000]= {0}, ocjena[1000]= {0};
  296.  
  297.     struct predmeti predmetix[100];
  298.  
  299.     char predmet1[1000];
  300.     ulaz = fopen("ispiti.txt", "r");
  301.     ulazdva = fopen("predmeti.txt", "r");
  302.  
  303.     if (ulaz == NULL) {
  304.         printf("Greska prilikom otvaranja datoteke 'ispiti.txt'! \n");
  305.         exit(1);
  306.     }
  307.  
  308.     if (ulazdva == NULL) {
  309.         printf("Greska prilikom otvaranja datoteke 'predmeti.txt'! \n");
  310.         exit(1);
  311.     }
  312.  
  313.     n=0;
  314.     while ((fscanf (ulazdva ,"%d ", &predmetix[n].broj_predmeta) == 1) && (n < 1000)) {
  315.         unesi_fajl(ulazdva, predmetix[n].naziv_predmeta, 1000);
  316.         n++;
  317.     }
  318.    
  319.     int pamti=0;
  320.     do{
  321.     printf("Unesite predmet: ");
  322.     unesi(predmet1,1000);
  323.    
  324.     for(i=0; i<n; i++) {
  325.  
  326.         if(strcmp(predmetix[i].naziv_predmeta, predmet1)==0) {
  327.             pamti = predmetix[i].broj_predmeta;
  328.         }
  329.  
  330.     }
  331.     if(pamti==0) {
  332.         printf("Nepostojeci predmet!");
  333.     }
  334.     }while(pamti==0);
  335.    
  336.     n=0;
  337.  
  338.     while ((fscanf (ulaz ,"%d %d %d\n", &indexi[n], &predmet[n], &ocjena[n]) == 3) && (n < 1000)) {
  339.         n++;
  340.     }
  341.  
  342.  
  343.     double prosjek=0, postotak=0;
  344.     int broj=0, broj_polozenih=0;
  345.     int suma=0;
  346.     for(i=0; i<n; i++) {
  347.  
  348.         if( predmet[i] == pamti) {
  349.             broj++;
  350.             suma+=ocjena[i];
  351.             if(ocjena[i]>=6 && ocjena[i]<=10) broj_polozenih++;
  352.         }
  353.  
  354.     }
  355.  
  356.     if(broj!=0) {
  357.         prosjek = (double)suma/broj;
  358.         postotak = (double)broj_polozenih*100/broj;
  359.  
  360.         printf("Prosjecna ocjena: %.2f",  prosjek);
  361.         printf("\nProlaznost: %g%%\n", postotak);
  362.     } else printf("Zalimo, ali ne postoje podaci o predmetu %s!", predmet1);
  363.  
  364.     fclose (ulaz);
  365.     fclose (ulazdva);
  366. }
  367.  
  368. void statistiku_osobe(){
  369.     FILE *ulaz;
  370.     FILE *ulazdva;
  371.     int  i;
  372.     int  indexi[1000]= {0}, predmet[1000]= {0}, ocjena[1000]= {0};
  373.  
  374.  
  375.     char predmet1[1000];
  376.     ulaz = fopen("ispiti.txt", "r");
  377.  
  378.     if (ulaz == NULL) {
  379.         printf("Greska prilikom otvaranja datoteke 'ispiti.txt'! \n");
  380.         exit(1);
  381.     }
  382.  
  383.    
  384.     int br_ocjena=0;
  385.     double suma=0;
  386.     while ((fscanf (ulaz ,"%d %d %d\n", &indexi[n], &predmet[n], &ocjena[n]) == 3) && (n < 1000)) {
  387.         n++;
  388.     }
  389.    
  390.    
  391.     int broj_indeksa, br_prolaznih_ocjena=0;
  392.     double prosjek, prolaznost;
  393.             printf("Unesite broj indexa: ");
  394.             scanf("%d", &broj_indeksa);
  395.            
  396.             for(i=0; i<n; i++) {
  397.                 if(indexi[i] == broj_indeksa) {
  398.                     suma+=ocjena[i];
  399.                     br_ocjena++;
  400.                     if(ocjena[i] >= 6 && ocjena[i] <= 10)
  401.                         br_prolaznih_ocjena++;
  402.                 }
  403.             }
  404.             if (suma == 0) {
  405.                 printf("Zalimo, ali ne postoje podaci o studentu sa brojem indexa %d!\n",broj_indeksa);
  406.                 return;
  407.             }
  408.             prosjek = (double)suma/br_ocjena;
  409.             prolaznost = (double)br_prolaznih_ocjena/br_ocjena*100;
  410.             printf("Student je slusao %d predmeta, a polozio %d (%g%%).", br_ocjena, br_prolaznih_ocjena, prolaznost);
  411.             printf("\nProsjecna ocjena polozenih predmeta je %.1f\n", prosjek);
  412.            
  413.      fclose(ulaz);
  414. }
  415.  
  416. int main(){
  417.     int opcija;
  418.     do {
  419.         printf("Unesite 1 za statistiku studenta, 2 za statistiku predmeta, 0 za izlaz: ");
  420.         scanf("%d", &opcija);
  421.         switch(opcija) {
  422.         case 1:
  423.             statistiku_osobe();
  424.             break;
  425.         case 2:
  426.             ispis();
  427.             break;
  428.         case 0:
  429.             break;
  430.         default:
  431.             printf("Nepoznata opcija\n");
  432.         }
  433.     } while (opcija != 0);
  434.  
  435.     return 0;
  436. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement