void dolulugaGoreYazdir(FILE *fPtr) { UCUS ucus; int i,j=0; DOLULUK doluluk[MAX_DIZI_BOYUT]; rewind(fPtr); for(i=0;i<MAX_UCUS_SAY;i++) { fread(&ucus,sizeof(UCUS),1,fPtr); if(ucus.ucusNo!=0 && ((float)100*(ucus.kapasite-ucus.bosKoltuk)/ucus.kapasite)<50) { doluluk[j].ucusNo=ucus.ucusNo; doluluk[j].bosKoltuk=ucus.bosKoltuk; doluluk[j].BKO=(float)100*(ucus.kapasite-ucus.bosKoltuk)/ucus.kapasite; j++; } } sirala(doluluk,j); baslikYazdir(); for(i=0;i<j;i++) { fseek(fPtr,sizeof(UCUS)*(doluluk[i].ucusNo-1),SEEK_SET); fread(&ucus,sizeof(UCUS),1,fPtr); yazdir(fPtr,ucus.ucusNo); } }
int main() { int i,tercih,acilisSaati,kapanisSaati,calisanSayisi; char subeAd[30]; char dosyaAd[30]; FILE *dosya; CALISAN *clsn; printf("Subenin adi: "); scanf("%s",subeAd); printf("Subenin acilis saati(ssdd): "); scanf("%d",&acilisSaati); printf("Subenin kapanis saati(ssdd): "); scanf("%d",&kapanisSaati); printf("Birinci dosyanin adi: "); scanf("%s",dosyaAd); dosya=fopen(dosyaAd,"r"); if(dosya==NULL) { printf("%s acilamadi!",dosyaAd); getch(); exit(1); } calisanSayisi=calisanSayisiBul(dosya); clsn=(CALISAN *)calloc(calisanSayisi,sizeof(CALISAN)); if(clsn==NULL) { printf("Yer ayrilamadi!"); getch(); exit(1); } //1. dosya icin yapilan islemler dosyadanVeriAl(dosya,clsn); kacSaatCalisti(clsn,calisanSayisi); kacKezActiBul(clsn,acilisSaati,calisanSayisi); kacKezKapattiBul(clsn,kapanisSaati,calisanSayisi); toplamKacSaatCalisti(clsn,calisanSayisi); kacKezKapattiActiBul(clsn,acilisSaati,kapanisSaati,calisanSayisi); kacKezHaftasonuCalismadi(clsn,calisanSayisi); ayniSaatteCalisanBul(clsn,calisanSayisi); kacKezActiCalismadiKapatti(clsn,calisanSayisi,acilisSaati,kapanisSaati); fclose(dosya); printf("Ikinci dosyanin adi: "); scanf("%s",dosyaAd); dosya=fopen(dosyaAd,"r"); if(dosya==NULL) { printf("%s acilamadi!",dosyaAd); getch(); exit(1); } //2.dosya icin yapilan islemler dosyadanVeriAl(dosya,clsn); kacSaatCalisti(clsn,calisanSayisi); kacKezActiBul(clsn,acilisSaati,calisanSayisi); kacKezKapattiBul(clsn,kapanisSaati,calisanSayisi); toplamKacSaatCalisti(clsn,calisanSayisi); kacKezKapattiActiBul(clsn,acilisSaati,kapanisSaati,calisanSayisi); kacKezHaftasonuCalismadi(clsn,calisanSayisi); ayniSaatteCalisanBul(clsn,calisanSayisi); kacKezActiCalismadiKapatti(clsn,calisanSayisi,acilisSaati,kapanisSaati); fclose(dosya); printf("Ucuncu dosyanin adi: "); scanf("%s",dosyaAd); dosya=fopen(dosyaAd,"r"); if(dosya==NULL) { printf("%s acilamadi!",dosyaAd); getch(); exit(1); } //3.dosya icin yapilan islemler dosyadanVeriAl(dosya,clsn); kacSaatCalisti(clsn,calisanSayisi); kacKezActiBul(clsn,acilisSaati,calisanSayisi); kacKezKapattiBul(clsn,kapanisSaati,calisanSayisi); toplamKacSaatCalisti(clsn,calisanSayisi); kacKezKapattiActiBul(clsn,acilisSaati,kapanisSaati,calisanSayisi); kacKezHaftasonuCalismadi(clsn,calisanSayisi); ayniSaatteCalisanBul(clsn,calisanSayisi); kacKezActiCalismadiKapatti(clsn,calisanSayisi,acilisSaati,kapanisSaati); fclose(dosya); printf("Dorduncu dosyanin adi: "); scanf("%s",dosyaAd); dosya=fopen(dosyaAd,"r"); if(dosya==NULL) { printf("%s acilamadi!",dosyaAd); getch(); exit(1); } //4. dosya icin yapilan islemler dosyadanVeriAl(dosya,clsn); kacSaatCalisti(clsn,calisanSayisi); kacKezActiBul(clsn,acilisSaati,calisanSayisi); kacKezKapattiBul(clsn,kapanisSaati,calisanSayisi); toplamKacSaatCalisti(clsn,calisanSayisi); kacKezKapattiActiBul(clsn,acilisSaati,kapanisSaati,calisanSayisi); kacKezHaftasonuCalismadi(clsn,calisanSayisi); ayniSaatteCalisanBul(clsn,calisanSayisi); kacKezActiCalismadiKapatti(clsn,calisanSayisi,acilisSaati,kapanisSaati); fclose(dosya); for(i=0;i<calisanSayisi;i++) //Calisilan saat, dakika olarak hesaplanmisti { //ssdd sekline cevrildi clsn[i].kacSaatCalistiSaat=clsn[i].toplamKacSaatCalisti/60; clsn[i].kacSaatCalistiDk=clsn[i].toplamKacSaatCalisti%60; } printf("Dosyayi Siralamak Istediginiz Kriter: \n"); printf("1. Calisan No'ya gore sirala\n"); printf("2. Isme gore sirala\n"); printf("3. Calisilan saate gore sirala\n"); printf("4. Subeyi acma sayisina gore sirala\n"); printf("5. Subeyi kapatma sayisina gore sirala\n"); printf("6. Subeyi kapattiktan sonra acma sayisina gore sirala\n"); printf("7. Haftasonu calismama sayisina gore sirala\n"); printf("8. Subeyi ard arda acip,calismayip,kapatma sayisina gore sirala\n"); scanf("%d",&tercih); dosya=fopen("Degerlendirme.csv","w"); if(tercih==1) { dosyayaYaz(dosya,subeAd,acilisSaati,kapanisSaati,calisanSayisi,clsn); } else { sirala(clsn,tercih,calisanSayisi); dosyayaYaz(dosya,subeAd,acilisSaati,kapanisSaati,calisanSayisi,clsn); } printf("Degerlendirme.csv adli dosyaya veriler yazildi.\n"); fclose(dosya); getch(); }