Advertisement
loule

restoranBrzeHraneC

May 25th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.89 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4.  
  5. /* run this program using the console pauser or add your own getch, system("pause") or input loop */
  6.  
  7. typedef struct hrana{
  8.     char ime[10];
  9.     int cena;
  10. }hrana;
  11.  
  12. void ispisiListu(hrana lista[], int n); // za ispis cele liste
  13. void copy_string(char *target, char *source) ; // za kopiranje iz ulaza u string koji se nalazi u listi
  14. int ukupnaZarada(FILE *f,hrana lista[],int *n); // za racunanje ukupne zarade bez priloga, ovo n sluzi da bi se vratila duzina liste koja se posle koristi
  15. int unesiPriloge(FILE *f,hrana lista[], int n, int *naj);// za unos priloga
  16. void ispisiZaradu(FILE *f,int n, float d, int m );//ispisuje zaradu u fajl rez.txt
  17. float izracunajSrednjuVrednost(int cenap, int brutoz, int n);//racuna srednju vrednost jela sa prilozima
  18.  
  19. int main(int argc, char *argv[]) {
  20.     FILE *f = fopen("porudzbina.txt","r");
  21.     FILE *rez = fopen("rez.txt","w");
  22.     int n;
  23.     int najskuplji;// ovde upisujemo najskuplji prilog
  24.     float srednjaVrednost;
  25.     hrana lista[10];
  26.     int bruto_zarada = ukupnaZarada(f,lista,&n);
  27.     ispisiListu(lista,n);
  28.     int cena_priloga = unesiPriloge(f, lista, n, &najskuplji);//dajemo najskupljeg preko adrese jer funkcija moze da vrati samo jednu vrednost
  29.     int netoZarada = bruto_zarada - cena_priloga;
  30.     srednjaVrednost = izracunajSrednjuVrednost(cena_priloga, bruto_zarada, n);
  31.     printf("\t\nPodaci o zaradi, srednjoj vrednosti jela i najskupljem prilogu se nalaze u rez.txt\n");
  32.     ispisiZaradu(rez, netoZarada, srednjaVrednost, najskuplji);
  33.     return 0;
  34. }
  35.  
  36. int ukupnaZarada(FILE *f,hrana lista[],int *n){
  37.     int cena;
  38.     char ime[10];
  39.     int i = 0;
  40.     int zarada = 0;
  41.     while(fscanf(f,"%s %d", lista[i].ime, &lista[i].cena) != EOF)
  42.     {
  43.         zarada+= lista[i].cena;
  44.         i++;
  45.     }
  46.     //ispisiListu(lista);
  47.     *n = i;
  48.     return zarada;
  49. }
  50.  
  51. int unesiPriloge(FILE *f,hrana lista[], int n, int *naj){
  52.     printf("---UNOSENJE CENE PRILOGA ZA POJEDINACNO JELO---\n");
  53.  
  54.     int i;
  55.     int max;
  56.     int prilog;
  57.     int ukupno = 0;
  58.     for(i = 0; i < n; i++){
  59.         printf("-> unesite cenu priloga za %s:",lista[i].ime);
  60.         scanf("%d",&prilog);
  61.         if(i == 0){
  62.             max = prilog;
  63.         }else if(prilog > max){
  64.             max = prilog;
  65.         }
  66.         ukupno+=prilog;
  67.     }
  68.     *naj  = max;
  69.     return ukupno;
  70. }
  71.  
  72. void ispisiListu(hrana lista[], int n){
  73.     int i;
  74.     printf("hrana koja je prodata danas :\n");
  75.     for(i = 0; i < n;i++){
  76.         printf("%s %d\n",lista[i].ime,lista[i].cena);
  77.     }
  78.     printf("\n ---------------------- \n");
  79. }
  80.  
  81. void copy_string(char *target, char *source) {
  82.     while (*source) {
  83.       *target = *source;
  84.       source++;
  85.       target++;
  86.    }
  87.    *target = '\0';
  88. }
  89.  
  90. float izracunajSrednjuVrednost(int cenap, int brutoz, int n){
  91.     return (cenap + brutoz) / n;
  92. }
  93.  
  94. void ispisiZaradu(FILE *f, int n, float d, int m){
  95.     fprintf(f,"ukupna zarada restorana je : %d dinara \n",n);
  96.     fprintf(f,"srednja vrednost jela sa prilozima je :%.2f, a najskuplji prilog je kostao: %d dinara.", d, m);
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement