Friday, 26 January 2018

Write a program to implement checksum method. GTU

/*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();
    }
}



No comments:

Post a Comment

It's time To increase blogging capability. To have a chance to contribute in digital world. Any Interested People who want to make t...