This program is for implementing Hamming Code. This is a part of Mumbai University MCA Colleges Data Communication and Networking MCA Sem 4
Hope this Program is useful to you in some sense or other. Keep on following this blog for more Mumbai University MCA College Programs. Happy Programming and Studying.
#include<stdio.h>
#include<conio.h>
#include<math.h>
int d[11],s[11],r[11],c[11];
int p1,p2,p4,p8;
int n,i,j,ctr;
void Sender();
void Receiver();
void ham(int []);
void main()
{
int
ch;
clrscr();
printf("\n\n1.
SENDER");
printf("\n2.RECEIVER");
printf("\n3.
END");
while(1)
{
printf("\n\nEnter
your choice : ");
scanf("%d",&ch);
switch(ch)
{
case
1:
Sender();
break;
case
2:
Receiver();
break;
case
3:
exit();
}
}
getch();
}
void ham(int d[])
{
ctr=0;
for(i=0;i<11;i++)
{
if(i==0
|| i==2 || i==4 || i==6 || i==8 || i==10)
{
if(d[i]==1)
ctr++;
}
}
if(ctr%2==0)
p1=0;
else
p1=1;
ctr=0;
for(i=0;i<11;i++)
{
if(i==1
|| i==2 || i==5 || i==6 || i==9 || i==10)
{
if(d[i]==1)
ctr++;
}
}
if(ctr%2==0)
p2=0;
else
p2=1;
ctr=0;
for(i=0;i<11;i++)
{
if(i==3
|| i==4 || i==5 || i==6)
{
if(d[i]==1)
ctr++;
}
}
if(ctr%2==0)
p4=0;
else
p4=1;
ctr=0;
for(i=0;i<11;i++)
{
if(i==7
|| i==8 || i==9 || i==10)
{
if(d[i]==1)
ctr++;
}
}
if(ctr%2==0)
p8=0;
else
p8=1;
ctr=0;
d[0]=p1;
d[1]=p2;
d[3]=p4;
d[7]=p8;
for(i=0;i<11;i++)
s[i]=d[i];
}
void Sender()
{
printf("\n\nEnter
Binary data of 7 bits : ");
for(i=0;i<11;i++)
{
if(i==0
|| i==1 || i==3 || i==7)
{}
else
scanf("%d",&s[i]);
}
printf("\n\nData
: ");
for(i=0;i<11;i++)
printf("%d",s[i]);
ham(s);
printf("\n\nHamming
Data : ");
for(i=0;i<11;i++)
printf("%d",s[i]);
}
void Receiver()
{
int
e;
printf("\n\nEnter
Binary data of 11 bits : ");
for(i=0;i<11;i++)
scanf("%d",&r[i]);
for(i=0;i<11;i++)
c[i]=r[i];
printf("\n\nData
: ");
for(i=0;i<11;i++)
printf("%d",r[i]);
ham(r);
if(p1==0
&& p2==0 && p4==0 && p8==0)
printf("\n\nThe
Received Data is Right.");
else
{
e=0;
if(p1==1)
e=e+pow(2,0);
if(p2==1)
e=e+pow(2,1);
if(p4==1)
e=e+pow(2,2);
if(p8==1)
e=e+pow(2,3);
printf("\n\nThe
Received Data has Some ERROR.");
printf("\n\nThe
ERROR is at position : %d",e);
if(c[e-1]==1)
c[e-1]=0;
else
c[e-1]=1;
printf("\nThe Corrected Data :
");
for(i=0;i<11;i++)
printf("%d",c[i]);
}
}Hope this Program is useful to you in some sense or other. Keep on following this blog for more Mumbai University MCA College Programs. Happy Programming and Studying.
Download
No comments:
Post a Comment