Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include<stdio.h>
- #include<string.h>
- #include<stdlib.h>
- //#define mag "C:\\izlaz.txt"
- typedef struct proizvod{
- int sifraP;
- char nazivP[10];
- double cenaP;
- int kolicina;
- }PROIZVOD;
- typedef struct element *POKAZIVAC;
- typedef struct element{
- PROIZVOD podatak;
- POKAZIVAC sledeci;
- }ELEMENT;
- typedef struct glavaRep{
- POKAZIVAC glava;
- POKAZIVAC rep;
- }*LISTA;
- void kreirajListu(LISTA *lista){
- *lista = malloc(sizeof(LISTA));
- (*lista)->glava = NULL;
- (*lista)->rep = NULL;
- }
- void unesiUBINDat(){
- PROIZVOD proizvod;
- FILE *dat = fopen("ulaz.bin", "wb");
- char odg = 'd';
- while (odg == 'd'){
- printf("unesi sifru : \n");
- scanf("%d", &proizvod.sifraP);
- printf("unesi naziv :\n");
- fflush(stdin);
- scanf("%s", &proizvod.nazivP);
- printf("unesi cenu : \n");
- scanf("%lf", &proizvod.cenaP);
- printf("unesi kolicinu: \n");
- scanf("%d", &proizvod.kolicina);
- fwrite(&proizvod, sizeof(PROIZVOD), 1, dat);
- printf("d ako nastavoljate unos/n ako ne nastavljate :");
- fflush(stdin);
- scanf("%c", &odg);
- }
- fclose(dat);
- printf("unet je tekst u dat\n");
- }
- void ubaciNaKraj(LISTA lista, PROIZVOD *pr){
- POKAZIVAC noviElement = malloc(sizeof(ELEMENT));
- noviElement->podatak = *pr;
- noviElement->sledeci = NULL;
- if (lista->glava == NULL){
- lista->glava = noviElement;
- lista->rep = noviElement;
- }
- else{
- lista->rep->sledeci = noviElement;
- lista->rep = noviElement;
- }
- }
- void prebaciIzDatUListu(LISTA lista){
- FILE *dat = fopen("ulaz.bin", "r");
- PROIZVOD proj;
- while ((fread(&proj, sizeof(PROIZVOD), 1, dat)) != 0){
- ubaciNaKraj(lista, &proj);
- }
- fclose(dat);
- }
- void prikaziListu(LISTA lista){
- POKAZIVAC tekuci = lista->glava;
- printf("LISTA PROIZVODA:\n");
- printf("sifra:\t naziv:" " cena:\t kolicina:\t\n");
- if (lista->glava == NULL){
- return;
- }
- while (tekuci != NULL){
- /* sifraP;
- char nazivP[10];
- double cenaP;
- int kolicina*/
- printf(" %d\t %s" " %.2lf" " " " " " " " %d\n", tekuci->podatak.sifraP, tekuci->podatak.nazivP, tekuci->podatak.cenaP, tekuci->podatak.kolicina);
- tekuci = tekuci->sledeci;
- }
- }
- void izvestaj(LISTA lista, int kolZ){
- FILE *dat = fopen("izvetsaj.txt", "w");
- POKAZIVAC tek = lista->glava;
- fprintf(dat, "************spisak proizvoda sa koliicnom na zalihama manjoj od %d*******\n\n", kolZ);
- fprintf(dat, "SIFRA: \t\tNAZIV:\t\tCENA:\t\tKOLICINA:\n");
- while (tek != NULL){
- printf("\nif\n");
- if (tek->podatak.kolicina < kolZ){
- printf("\nif\n");
- 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);
- }
- tek = tek->sledeci;
- }
- fclose(dat);
- printf("datoteka za izlaz je kreirana \n\n");
- }
- int main(void){
- LISTA lista;
- kreirajListu(&lista);
- //unesiUBINDat();
- prebaciIzDatUListu(lista);
- prikaziListu(lista);
- izvestaj(lista, 7);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement