Code:
#include<stdio.h>
#include<stdlib.h>
#define N 50
FILE *fpHrWorked;
FILE *fpLatestEmp;
FILE *fpPay;
FILE *fpRead;
struct data
{
int EmpID;
char Name[30];
int Category;
float RatePerHr;
int HourWorked;
}Employee[N];
struct Hrworked
{
int Emp_ID;
int HrWork;
int ClientID;
}Worked[N];
int main(void)
{
int i=0;
int a=0;
int w=0;
int n=0;
fpHrWorked=fopen("HrWorked.dat","w");
fpLatestEmp=fopen("LatestEmp.dat","w");
fpPay=fopen("Pay.dat","w");
fpRead=fopen("EMP.dat","r");
if((fpRead = fopen("EMP.dat", "r")) == NULL)
{
printf("Error, EMP.dat doesn't exist\n");
return(1);
}
else
{
fclose(fpRead);
printf("\n\n\n");
printf("\t\tPlease Enter Employee ID(*No More Than 999*); ");
scanf("%d",&Worked[n].Emp_ID);
printf("\t\tPlease Enter Working Hour(*No More Than 999*); ");
scanf("%d",&Worked[n].HrWork);
printf("\t\tPlease Enter Client ID(*No More Than 9*); ");
scanf("%d",&Worked[n].ClientID);
n++;
fprintf(fpHrWorked,"%03d|%d|%d\n",Worked[i].Emp_ID,Worked[i].HrWork,Worked[i].ClientID);
system("rename EMP.dat Temp.dat");
n=0;
while(!feof(fpRead))
{
fscanf(fpRead,"%d|%30s|%d|%f|%d",&Employee[n].EmpID,Employee[n].Name,&Employee[n].Category,&Employee[n].RatePerHr,&Employee[n].HourWorked);
n++;
}
i=0;
while(!feof(fpHrWorked))
{
fscanf(fpHrWorked,"%d|%d|%d",&Worked[i].Emp_ID,&Worked[i].HrWork,&Worked[i].ClientID);
i++;
}
for(n=0;n<=i;n++)
{
for(a=0;a<=i;a++)
{
if(Employee[n].EmpID==Worked[a].Emp_ID)
{
Employee[n].HourWorked=Employee[n].HourWorked+Worked[i].HrWork;
fprintf(fpLatestEmp,"%d|%30s|%d|%f|%d",Employee[n].EmpID,Employee[n].Name,Employee[n].Category,Employee[n].RatePerHr,Employee[n].HourWorked);
fprintf(fpPay,"%d|%d|%s|%d|%d",Worked[i].ClientID,Employee[n].EmpID,Employee[n].Name,Employee[n].HourWorked,Employee[n].RatePerHr);
break;
}
else
{
fprintf(fpLatestEmp,"%d|%30s|%d|%f|%d",Employee[n].EmpID,Employee[n].Name,Employee[n].Category,Employee[n].RatePerHr,Employee[n].HourWorked);
fprintf(fpPay,"%d|%d|%s|%d|%d",Worked[i].ClientID,Employee[n].EmpID,Employee[n].Name,Employee[n].HourWorked,Employee[n].RatePerHr);
}
}
}
}
fclose(fpPay);
fclose(fpRead);
fclose(fpHrWorked);
system("delete Temp.dat");
return 0;
}