/*Write a program to implement Error detecting checksum method.*/
#include<stdio.h>
#include<string.h>
int decimal(int n1,int n2,int n3,int n4)
{
return(n1*1+n2*2+n3*4+n4*8);
}
void receiver()
{
printf("\t \t******RECEIVER****** \n");
int i=0,n1=0,sum=0,d1,d2,d3,d4;
char c;
FILE *fp;
fp=fopen("TEXT.txt","r");
if(getc(fp)==EOF)
{
printf("\n***NO DATA SEND, SEND SOME DATA USING SENDER***\n");
}
else
{
fseek(fp,0l,0);
int a[100],b[100];
while((fscanf(fp,"%d",&a[i]))!=EOF)
{
printf("\n%d VALUE IS: %d",i+1,a[i]);
sum=sum+a[i];
i=i+1;
}
printf("\nSUM: %d\n",sum);
while(sum>15)
{
while(sum!=0)
{
b[n1]=sum%2;
sum=sum/2;
n1++;
}
for(i=0;i<n1;i=i+4)
{
d1=b[i];
if(i+1>=n1)
{
d2=0,d3=0,d4=0;
}
else if(i+2>=n1)
{
d2=b[i+1];
d3=0,d4=0;
}
else if(i+3>=n1)
{
d2=b[i+1];
d3=b[i+2];
d4=0;
}
else
{
d2=b[i+1];
d3=b[i+2];
d4=b[i+3];
}
sum=sum+decimal(d1,d2,d3,d4);
}
}
printf("WRAP SUM : %d \n",sum);
printf("CHECKSUM : %d \n",15-sum);
if(15-sum==0)
{
printf("\n\n*****INPUT MESSAGE IS CORRECT*****\n");
}
else
{
printf("\n\n*****INPUT MESSAGE IS INCORRECT*****\n");
}
}
}
void sender()
{
printf("\t \t******SENDER****** \n");
int n,i,n1=0,sum=0,d1,d2,d3,d4;
FILE *fp;
fp=fopen("TEXT.txt","w");
printf("ENTER THE NUMBER OF DIGITS YOU WANT TO SEND \n");
scanf("%d",&n);
int a[n],b[100];
for(i=0;i<n;i++)
{
printf("\nENTER %d VALUE:",i+1);
scanf("%d",&a[i]);
fprintf(fp,"%d ",a[i]);
sum=sum+a[i];
}
printf("\nSUM: %d\n",sum);
while(sum>15)
{
while(sum!=0)
{
b[n1]=sum%2;
sum=sum/2;
n1++;
}
for(i=0;i<n1;i=i+4)
{
d1=b[i];
if(i+1>=n1)
{
d2=0,d3=0,d4=0;
}
else if(i+2>=n1)
{
d2=b[i+1];
d3=0,d4=0;
}
else if(i+3>=n1)
{
d2=b[i+1];
d3=b[i+2];
d4=0;
}
else
{
d2=b[i+1];
d3=b[i+2];
d4=b[i+3];
}
sum=sum+decimal(d1,d2,d3,d4);
}
}
printf("WRAP SUM : %d \n",sum);
printf("CHECKSUM : %d \n",15-sum);
fprintf(fp,"%d",15-sum);
fclose(fp);
}
main()
{
int i;
printf("1-SEND THE DATA 2-RECEIVE THE DATA");
scanf("%d",&i);
if(i==1)
{
sender();
}
else
{
receiver();
}
}
#include<stdio.h>
#include<string.h>
int decimal(int n1,int n2,int n3,int n4)
{
return(n1*1+n2*2+n3*4+n4*8);
}
void receiver()
{
printf("\t \t******RECEIVER****** \n");
int i=0,n1=0,sum=0,d1,d2,d3,d4;
char c;
FILE *fp;
fp=fopen("TEXT.txt","r");
if(getc(fp)==EOF)
{
printf("\n***NO DATA SEND, SEND SOME DATA USING SENDER***\n");
}
else
{
fseek(fp,0l,0);
int a[100],b[100];
while((fscanf(fp,"%d",&a[i]))!=EOF)
{
printf("\n%d VALUE IS: %d",i+1,a[i]);
sum=sum+a[i];
i=i+1;
}
printf("\nSUM: %d\n",sum);
while(sum>15)
{
while(sum!=0)
{
b[n1]=sum%2;
sum=sum/2;
n1++;
}
for(i=0;i<n1;i=i+4)
{
d1=b[i];
if(i+1>=n1)
{
d2=0,d3=0,d4=0;
}
else if(i+2>=n1)
{
d2=b[i+1];
d3=0,d4=0;
}
else if(i+3>=n1)
{
d2=b[i+1];
d3=b[i+2];
d4=0;
}
else
{
d2=b[i+1];
d3=b[i+2];
d4=b[i+3];
}
sum=sum+decimal(d1,d2,d3,d4);
}
}
printf("WRAP SUM : %d \n",sum);
printf("CHECKSUM : %d \n",15-sum);
if(15-sum==0)
{
printf("\n\n*****INPUT MESSAGE IS CORRECT*****\n");
}
else
{
printf("\n\n*****INPUT MESSAGE IS INCORRECT*****\n");
}
}
}
void sender()
{
printf("\t \t******SENDER****** \n");
int n,i,n1=0,sum=0,d1,d2,d3,d4;
FILE *fp;
fp=fopen("TEXT.txt","w");
printf("ENTER THE NUMBER OF DIGITS YOU WANT TO SEND \n");
scanf("%d",&n);
int a[n],b[100];
for(i=0;i<n;i++)
{
printf("\nENTER %d VALUE:",i+1);
scanf("%d",&a[i]);
fprintf(fp,"%d ",a[i]);
sum=sum+a[i];
}
printf("\nSUM: %d\n",sum);
while(sum>15)
{
while(sum!=0)
{
b[n1]=sum%2;
sum=sum/2;
n1++;
}
for(i=0;i<n1;i=i+4)
{
d1=b[i];
if(i+1>=n1)
{
d2=0,d3=0,d4=0;
}
else if(i+2>=n1)
{
d2=b[i+1];
d3=0,d4=0;
}
else if(i+3>=n1)
{
d2=b[i+1];
d3=b[i+2];
d4=0;
}
else
{
d2=b[i+1];
d3=b[i+2];
d4=b[i+3];
}
sum=sum+decimal(d1,d2,d3,d4);
}
}
printf("WRAP SUM : %d \n",sum);
printf("CHECKSUM : %d \n",15-sum);
fprintf(fp,"%d",15-sum);
fclose(fp);
}
main()
{
int i;
printf("1-SEND THE DATA 2-RECEIVE THE DATA");
scanf("%d",&i);
if(i==1)
{
sender();
}
else
{
receiver();
}
}
No comments:
Post a Comment