Advertisement
lazar955

Untitled

Aug 20th, 2016
367
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include<stdio.h>
  4. #include<string.h>
  5. #include<stdlib.h>
  6.  
  7.  
  8. //#define mag "C:\\izlaz.txt"
  9.  
  10. typedef struct proizvod{
  11.     int sifraP;
  12.     char nazivP[10];
  13.     double cenaP;
  14.     int kolicina;
  15. }PROIZVOD;
  16.  
  17. typedef struct element *POKAZIVAC;
  18.  
  19. typedef struct element{
  20.     PROIZVOD podatak;
  21.     POKAZIVAC sledeci;
  22. }ELEMENT;
  23.  
  24.  
  25. typedef struct glavaRep{
  26.     POKAZIVAC glava;
  27.     POKAZIVAC rep;
  28. }*LISTA;
  29.  
  30. void kreirajListu(LISTA *lista){
  31.     *lista = malloc(sizeof(LISTA));
  32.     (*lista)->glava = NULL;
  33.     (*lista)->rep = NULL;
  34.  
  35. }
  36.  
  37.  
  38.  
  39.  
  40. void unesiUBINDat(){
  41.     PROIZVOD proizvod;
  42.     FILE *dat = fopen("ulaz.bin", "wb");
  43.  
  44.     char odg = 'd';
  45.  
  46.     while (odg == 'd'){
  47.         printf("unesi sifru : \n");
  48.         scanf("%d", &proizvod.sifraP);
  49.  
  50.         printf("unesi naziv :\n");
  51.         fflush(stdin);
  52.         scanf("%s", &proizvod.nazivP);
  53.  
  54.         printf("unesi cenu : \n");
  55.         scanf("%lf", &proizvod.cenaP);
  56.  
  57.         printf("unesi kolicinu: \n");
  58.         scanf("%d", &proizvod.kolicina);
  59.  
  60.         fwrite(&proizvod, sizeof(PROIZVOD), 1, dat);
  61.         printf("d ako nastavoljate unos/n ako ne nastavljate :");
  62.         fflush(stdin);
  63.         scanf("%c", &odg);
  64.     }
  65.  
  66.  
  67.     fclose(dat);
  68.     printf("unet je tekst u dat\n");
  69. }
  70. void ubaciNaKraj(LISTA lista, PROIZVOD *pr){
  71.     POKAZIVAC noviElement = malloc(sizeof(ELEMENT));
  72.  
  73.     noviElement->podatak = *pr;
  74.     noviElement->sledeci = NULL;
  75.     if (lista->glava == NULL){
  76.         lista->glava = noviElement;
  77.         lista->rep = noviElement;
  78.     }
  79.     else{
  80.         lista->rep->sledeci = noviElement;
  81.         lista->rep = noviElement;
  82.     }
  83.  
  84.    
  85.  
  86.  
  87.  
  88. }
  89. void prebaciIzDatUListu(LISTA lista){
  90.     FILE *dat = fopen("ulaz.bin", "r");
  91.  
  92.     PROIZVOD proj;
  93.  
  94.     while ((fread(&proj, sizeof(PROIZVOD), 1, dat)) != 0){
  95.         ubaciNaKraj(lista, &proj);
  96.     }
  97.  
  98.  
  99.  
  100.     fclose(dat);
  101.  
  102. }
  103. void prikaziListu(LISTA lista){
  104.     POKAZIVAC tekuci = lista->glava;
  105.  
  106.  
  107.     printf("LISTA PROIZVODA:\n");
  108.     printf("sifra:\t naziv:"  " cena:\t  kolicina:\t\n");
  109.     if (lista->glava == NULL){
  110.         return;
  111.     }
  112.     while (tekuci != NULL){
  113.         /*  sifraP;
  114.         char nazivP[10];
  115.         double cenaP;
  116.         int kolicina*/
  117.         printf(" %d\t %s"  " %.2lf"  "  " " " " "  " %d\n", tekuci->podatak.sifraP, tekuci->podatak.nazivP, tekuci->podatak.cenaP, tekuci->podatak.kolicina);
  118.         tekuci = tekuci->sledeci;
  119.     }
  120.  
  121. }
  122. void izvestaj(LISTA lista, int kolZ){
  123.     FILE *dat = fopen("izvetsaj.txt", "w");
  124.     POKAZIVAC tek = lista->glava;
  125.     fprintf(dat, "************spisak proizvoda sa koliicnom na zalihama manjoj od %d*******\n\n", kolZ);
  126.     fprintf(dat, "SIFRA: \t\tNAZIV:\t\tCENA:\t\tKOLICINA:\n");
  127.  
  128.    
  129.     while (tek != NULL){
  130.         printf("\nif\n");
  131.         if (tek->podatak.kolicina < kolZ){
  132.             printf("\nif\n");
  133.             fprintf(dat, "%d\t\t%s\t\t%.2lf\t\t%d\n", tek->podatak.sifraP, tek->podatak.nazivP, tek->podatak.cenaP, tek->podatak.kolicina);
  134.  
  135.         }
  136.         tek = tek->sledeci;
  137.  
  138.     }
  139.     fclose(dat);
  140.     printf("datoteka za izlaz je kreirana \n\n");
  141.  
  142. }
  143. int main(void){
  144.     LISTA lista;
  145.     kreirajListu(&lista);
  146.  
  147.     //unesiUBINDat();
  148.     prebaciIzDatUListu(lista);
  149.  
  150.     prikaziListu(lista);
  151.  
  152.     izvestaj(lista, 7);
  153.  
  154.  
  155.     return 0;
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement