Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define PUTANJA "C:\\Podaci\\BinarnaDat2.dat"
- #define PUTANJA2 "C:\\Podaci\\TekstualnaDat2.txt"
- typedef struct radnik {
- char imePrezime[50];
- char grad[50];
- double plata;
- int godina;
- }RADNIK;
- typedef struct radnik NIZ[100];
- typedef struct element *POKAZIVAC;
- typedef struct element{
- RADNIK podatak;
- POKAZIVAC sledeci;
- }ELEMENT;
- typedef struct glavaRep *LISTA;
- struct glavaRep {
- POKAZIVAC glava;
- POKAZIVAC rep;
- };
- void kreirajListu (LISTA *lista){
- (*lista)=malloc(sizeof(ELEMENT));
- (*lista)->glava=NULL;
- (*lista)->rep=NULL;
- }
- void ubacitiElementNaPocetakListe (LISTA lista, RADNIK r){
- POKAZIVAC noviElement;
- noviElement=malloc(sizeof(ELEMENT));
- if (lista->glava==NULL){
- noviElement->podatak=r;
- noviElement->sledeci=NULL;
- lista->glava=noviElement;
- lista->rep=noviElement;
- }else {
- noviElement->podatak=r;
- noviElement-lista->glava;
- lista->glava=noviElement;
- }
- }
- void prikaziRadnika (RADNIK r){
- printf("Ime i prezime: %s\nGrad: %s\nPlata: %.2lf\nGodine: %d\n", r.imePrezime,r.grad,r.plata,r.godina);
- }
- void prikazListe(LISTA lista){
- POKAZIVAC pom;
- int i=1;
- pom=malloc(sizeof(ELEMENT));
- pom=lista->glava;
- while(pom!=NULL){
- printf("%d. Radnik\n",i);
- prikaziRadnika(pom->podatak);
- i++;
- }
- }
- void unosUBinarnuDatoteku (){
- FILE *datoteka;
- int kraj=0;
- RADNIK r;
- datoteka=fopen(PUTANJA, "wb");
- if (datoteka==NULL){
- printf("Doslo je do greske prilikom otvaranja datoteke!\n");
- return;
- }
- do {
- printf("Unesite ime i prezime\n");
- fflush(stdin);
- gets(&r.imePrezime);
- fflush(stdin);
- printf("Unesite naziv grada\n");
- fflush(stdin);
- gets(&r.grad);
- fflush(stdin);
- printf("Unesite platu\n");
- scanf("%lf", &r.plata);
- printf("Unesite broj godina\n");
- scanf("%d", &r.godina);
- fwrite (&r,sizeof(RADNIK),1,datoteka);
- printf("Da li zelite da unesete jos radnika?(0-DA,1-NE)");
- scanf("%d",& kraj);
- }while (kraj==0);
- fclose (datoteka);
- }
- int brutoPlata (RADNIK r){
- double brutoPlata, PDV, nezaposlenost,zdravstveno,penziono;
- PDV=r.plata*10/100;
- nezaposlenost=r.plata*1/100;
- zdravstveno=r.plata*6/100;
- penziono=r.plata*3/100;
- brutoPlata=r.plata-PDV-nezaposlenost-zdravstveno-penziono;
- return brutoPlata;
- }
- void dodeljivanjeBrutoPlate (NIZ niz, int brojEl){
- int i;
- for (i=0;i<brojEl;i++){
- niz[i].plata=brutoPlata(niz[i]);
- }
- }
- void prebacivanjeIzBinarneUNiz (NIZ niz, int *brojEl){
- FILE *datoteka;
- RADNIK r;
- datoteka=fopen(PUTANJA, "rb");
- if (datoteka==NULL){
- printf("Doslo je do greske prilikom otvaranja datoteke!\n");
- return;
- }
- while (fread(&r,sizeof(RADNIK),1,datoteka)!=0){
- niz[*brojEl]=r;
- (*brojEl)++;
- }
- fclose (datoteka);
- }
- void izNizaUlistu(NIZ niz,int brojEl,LISTA lista){
- int i;
- for (i=0;i<brojEl;i++){
- ubacitiElementNaPocetakListe(lista,niz[i]);
- }
- }
- void citanjeIzBinarneDatoteke (){
- FILE *datoteka;
- RADNIK r;
- int i=1;
- datoteka=fopen(PUTANJA, "rb");
- if (datoteka==NULL){
- printf("Doslo je do greske prilikom otvaranja datoteke!\n");
- return;
- }
- while (fread(&r,sizeof(RADNIK),1,datoteka)!=0){
- printf("%d. Radnik\n",i);
- prikaziRadnika(r);
- i++;
- printf("\n");
- }
- fclose (datoteka);
- }
- void prikazNiza (NIZ niz, int brojEl){
- int i;
- for (i=0;i<brojEl;i++){
- printf("%d.Radnik\n",i+1);
- prikaziRadnika(niz[i]);
- printf("\n");
- }
- printf("\n");
- }
- int main(void){
- NIZ niz;
- int brojEl;
- LISTA lista;
- kreirajListu(&lista);
- //unosUBinarnuDatoteku();
- //citanjeIzBinarneDatoteke();
- prebacivanjeIzBinarneUNiz(niz,&brojEl);
- //izNizaUlistu(niz,brojEl,lista);
- //prikazListe(lista);
- prikazNiza(niz,brojEl);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement