You are on page 1of 3

import java.util.

Scanner;
public class gen
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
System.out.println("----------------------------------------------");
System.out.print("Enter the Order of the matrix (m*n): ");
int m=sc.nextInt();int n=sc.nextInt();
int g[][]=new int[m][n];int code[][]=new int[n][1];int ncode[][]=new int [n][1];
int nncode[][]=new int [n][1];
int joint[][]=new int[m][n];
int c[][]=new int[m][n-m];int ct[][]=new int[n-m][m];int id[][]=new int[m][m];
int mul[][]=new int[1][m];int k;int sum=0,jj=0;int zz=0;
int ch=0;

while(ch<=4)
{
System.out.println("----------------------------------------------");
System.out.print("1.Enter Data\n2.Encode\n3.Decode\n4.Exit");
System.out.print("\nEnter your choice: ");
ch=sc.nextInt();
System.out.println("----------------------------------------------");
switch(ch)
{
case 1:
System.out.println("Enter the Generator Matrix: ");
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
g[i][j]=sc.nextInt();
System.out.print("\nEnter the Code word ("+n+" bits):");
for(int i=0;i<n;i++)
code[i][0]=sc.nextInt();
break;

case 2:
for(int i=0;i<m;i++)
for(int j=0;j<m;j++)
id[i][j]=g[i][j];

for(int i=0;i<m;i++)
{ k=0;
for(int j=m;j<n;j++)
{
c[i][k]=g[i][j];
k++;
}
}
System.out.println("\n The A Matrix \n");
for(int i=0;i<m;i++)
{for(int j=0;j<n-m;j++)
System.out.print(c[i][j]+" ");
System.out.println();
}

for(int i=0;i<m;i++)
{ for(int j=0;j<n-m;j++)
ct[i][j]=c[j][i];
}
System.out.println("\n The A' Matrix \n");
for(int i=0;i<n-m;i++)
{ for(int j=0;j<m;j++)
System.out.print(ct[i][j]+" ");
System.out.println();
}
System.out.println("\n The Identity Matrix \n");
for(int i=0;i<m;i++)
{ for(int j=0;j<m;j++)
System.out.print(id[i][j]+" ");
System.out.println();
}

for(int i=0;i<n-m;i++)
for(int j=0;j<m;j++)
{ joint[i][j]=ct[i][j];
jj=j;
}
jj++;
for(int i=0;i<m;i++) { for(int j=0;j<m;j++)
{
joint[i][j+jj]=id[i][j];
}
}
System.out.println("\n The Parity Matrix \n");
for(int i=0;i<m;i++)
{ for(int j=0;j<n;j++)
System.out.print(joint[i][j]+" ");
System.out.println();
}
int after[][]=new int[m][1];
int after1[][]=new int[m][1];

for (int i=0;i<m;i++)


{
for (int j=0;j<=0;j++)
{
for (k=0;k<n;k++)
{
sum = sum + joint[i][k]*code[k][j];
}

after[i][0] = sum;
sum = 0;
}
}

for(int i=0;i<m;i++)
{
if(after[i][0]%2==0)
after1[i][0]=0;
else
after1[i][0]=after[i][0];
}

int res=0;
for(int i=m-1;i>=0;i--)
res+=(after1[i][0]*(Math.pow(10,m-1)));
String s=String.valueOf(res);
zz=Integer.parseInt(s,2);
if(zz==0)
{System.out.println("\nNo error In the Code word"); break; }
else
System.out.println("\nChange the "+zz+" bit of the code word");
break;
case 3:
for(int i=0;i<n;i++)
ncode[i][0]=code[i][0];

if(ncode[zz-1][0]==1)
ncode[zz-1][0]=0;
else if(ncode[zz-1][0]==0)
ncode[zz-1][0]=1;

System.out.print("Enter the new CodeWord: ");


for(int i=0;i<n;i++)
nncode[i][0]=sc.nextInt();

for(int i=0;i<n;i++)
{
if(nncode[i][0]==ncode[i][0])
continue;
else
{ System.out.print("Error");
return;
}
}
System.out.print("No error :)\n");
break;
case 4: return;
}//end of switch
}//end of while
}//end of main
}//end of class

You might also like