#include<stdio.h>
struct clientdata
{ char lastname[15];
char firstname[10];
int acctnum;
int telnum;};
int enterchoice(void);
void binfile(FILE *readptr);
void updaterecord(FILE *fptr);
void newrecord(FILE *fptr);
void deleterecord(FILE *fptr);
int main()
{
FILE *cfptr;
int choice;
if ((cfptr=fopen("credit.dat","rb"))==NULL)
{
printf("file couldnt be opend.\n");
}
else{
while ((choice=enterchoice() )!=5)
{
switch(choice)
{
case 1:
       binfile( cfptr );
       break;
case 2:
       updaterecord( cfptr );
       break;
case 3:
      newrecord( cfptr );
      break;
case 4:
      deleterecord ( cfptr );
      break;
default:
       printf("error choice\n" );
break;
}
}
fclose(cfptr);
}
return(0);
}
void binfile(FILE *readptr)
{
FILE *writeptr;
struct clientdata client={""};
if ((writeptr=fopen("client.bin","wb"))==NULL){
printf("file can't  be opened\n");
}
else
{
rewind(readptr);
fprintf(writeptr,"%-6s%-16s%-11s%10s\n","acct","last name","first name","telnum");
while (!feof(readptr)) {
fread (&client,sizeof(struct clientdata),1,readptr);
if (client.acctnum!=0)
{
fprintf(writeptr,"%-6d%-16s%-11s%10d\n" ,client.acctnum,client.lastname,client.firstname,client.telnum);}}
fclose(writeptr);
}
}
void updatrecord (FILE *fptr)
{int account;
double transaction;
struct clientdata client= {""};
printf("enter the number to update(1-15):");
scanf("%d",&account);
fseek( fptr,(account -1) *sizeof (struct clientdata),SEEK_SET);
fread(&client,sizeof (struct clientdata),1,fptr);
if (client.acctnum==0)
{
printf("account %d has no information\n",account);}
else
{
printf("%-6d%-16s%-11s%10d\n\n",client.acctnum,client.lastname,client.firstname,client.telnum);
fseek ( fptr,(account-1) *sizeof (struct clientdata),1,fptr);
}
}
void deleterecord(FILE *fptr)
{
struct clientdata client;
struct clientdata blankclient={""};
int account;
printf("enter acc to delet (1-15):");
scanf("%d",&account);
fseek (fptr,(account-1) * sizeof(struct clientdata),SEEK_SET );
fread(&client,sizeof(struct clientdata),1,fptr);
if (client.acctnum==0){
printf("name %d does not exist.\n",account);
}
else{
fseek(fptr,(account-1)*sizeof(struct clientdata),SEEK_SET);
fwrite(&blankclient,sizeof(struct clientdata),1,fptr);
}
}
void newrecord(FILE *fptr)
struct clientdata client={""};
int account;
printf("enter new account\n");
scanf("%d",&account);
fseek(fptr,(account-1) *sizeof(struct clientdata),SEEK_SET);
fread(&client,sizeof(struct clientdata),1,fptr);
if (client.acctnum!=0){
printf("account %d aleady contains information.\n",client.acctnum);
}
else{
printf("enterlastname,firstname,telnum\n");
scanf("%s%s%d",&cilent.lastname,&client.firestname,&client.telnum);
clientnum=account;
fseek(fptr,(clientacct-1) *sizeo(struct clientdata),SEEK_SET);
fread(&client,sizeof( struct clientdata,1,fptr);
}
int enterchoise (void)
{
int menuchoice;
printf("\nenter you choice\n"
	"1_store a formatted text file of name called\n"
	"2_updata an name\n"
	"3-add anew cliecnt\n"
	"4_delet an client\n"
	"5-end program\n");
	scanf("%d",&menuchoice);
	return menuchoice;
	}











































