import java.util.*;
import javax.swing.*;
class Cyclic_Reduncany_Check
{
static StringBuffer Frame=new StringBuffer();
static StringBuffer Generator=new StringBuffer();
static StringBuffer Message=new StringBuffer();
static StringBuffer Remainder=new StringBuffer();
static StringBuffer Quotient=new StringBuffer();
static StringBuffer Zero=new StringBuffer();
static StringBuffer TransmittedFrame=new StringBuffer();
static int fl,gl,ml,pointer,turn=0;
public static void main(String args[])
{
Object[] options = {"Transmission End", "Receiving End"};
int selection = JOptionPane.showOptionDialog(null,"Select the Terminal",null, JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE, null,options, options[0]);
if(selection == JOptionPane.YES_NO_OPTION)
{
input_t();
length_t();
initialise_t();
calculate_t();
output_t();
}
else
{
input_r();
length_r();
initialise_r();
calculate_r();
output_r();
}
}
static void input_t()
{
Scanner sc=new Scanner(System.in);
Frame.append(JOptionPane.showInputDialog("Enter the Frame"));
Generator.append(JOptionPane.showInputDialog("Enter the Generator"));
}
static void length_t()
{
fl=Frame.length();
gl=Generator.length();
ml=gl+fl-1;
pointer=gl;
}
static void initialise_t()
{
Message.append(Frame);
for(int i=0;i<gl-1;i++)
{
Message.append("0");
}
Remainder.append(Message.substring(0,gl));
for(int i=0;i<gl;i++)
Zero.append("0");
}
static void calculate_t()
{
for(;pointer<ml;pointer++)
{
if(Remainder.charAt(0)=='1')
{
Remainder=exor(Remainder,Generator);
Remainder.deleteCharAt(0);
Remainder.append(Message.charAt(pointer));
Quotient.append('1');
}
else
{
Remainder=exor(Remainder,Zero);
Remainder.deleteCharAt(0);
Remainder.append(Message.charAt(pointer));
Quotient.append('0');
}
}
Remainder.deleteCharAt(0);
Quotient.append('0');
TransmittedFrame=Frame;
TransmittedFrame.append(Remainder);
}
static StringBuffer exor(StringBuffer Frame,StringBuffer Remainder)
{
StringBuffer exor=new StringBuffer();
for(int i=0;i<gl;i++)
{
if(Frame.charAt(i)==Remainder.charAt(i))
exor.append('0');
else
exor.append('1');
}
return exor;
}
static void output_t()
{
JOptionPane.showMessageDialog(null,"Frame : "+Frame+
"\n"+"Generator : "+Generator+
"\n"+"Quotient : "+Quotient+
"\n"+"Remainder : "+Remainder+
"\n"+"Transmitted Frame : "+TransmittedFrame);
}
static void input_r()
{
Scanner sc=new Scanner(System.in);
Frame.append(JOptionPane.showInputDialog("Enter the Recieved Frame"));
Generator.append(JOptionPane.showInputDialog("Enter the Generator"));
}
static void length_r()
{
fl=Frame.length();
gl=Generator.length();
ml=fl;
pointer=gl;
}
static void initialise_r()
{
Message.append(Frame);
Remainder.append(Message.substring(0,gl));
for(int i=0;i<gl;i++)
Zero.append("0");
}
static void calculate_r()
{
for(;pointer<ml;pointer++)
{
if(Remainder.charAt(0)=='1')
{
Remainder=exor(Remainder,Generator);
Remainder.deleteCharAt(0);
Remainder.append(Message.charAt(pointer));
Quotient.append('1');
}
else
{
Remainder=exor(Remainder,Zero);
Remainder.deleteCharAt(0);
Remainder.append(Message.charAt(pointer));
Quotient.append('0');
}
}
Quotient.append('0');
TransmittedFrame=Frame;
TransmittedFrame.append(Remainder);
}
public static boolean check()
{
for(int i=0;i<gl;i++)
{
if(Remainder.charAt(i)!=Zero.charAt(i))
{
return false;
}
}
return true;
}
static void output_r()
{
if(check())
{
JOptionPane.showMessageDialog(null,"Correctly recieved");
}
else
{
JOptionPane.showMessageDialog(null,"Incorrect Message Recieved");
}
}
}
import javax.swing.*;
class Cyclic_Reduncany_Check
{
static StringBuffer Frame=new StringBuffer();
static StringBuffer Generator=new StringBuffer();
static StringBuffer Message=new StringBuffer();
static StringBuffer Remainder=new StringBuffer();
static StringBuffer Quotient=new StringBuffer();
static StringBuffer Zero=new StringBuffer();
static StringBuffer TransmittedFrame=new StringBuffer();
static int fl,gl,ml,pointer,turn=0;
public static void main(String args[])
{
Object[] options = {"Transmission End", "Receiving End"};
int selection = JOptionPane.showOptionDialog(null,"Select the Terminal",null, JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE, null,options, options[0]);
if(selection == JOptionPane.YES_NO_OPTION)
{
input_t();
length_t();
initialise_t();
calculate_t();
output_t();
}
else
{
input_r();
length_r();
initialise_r();
calculate_r();
output_r();
}
}
static void input_t()
{
Scanner sc=new Scanner(System.in);
Frame.append(JOptionPane.showInputDialog("Enter the Frame"));
Generator.append(JOptionPane.showInputDialog("Enter the Generator"));
}
static void length_t()
{
fl=Frame.length();
gl=Generator.length();
ml=gl+fl-1;
pointer=gl;
}
static void initialise_t()
{
Message.append(Frame);
for(int i=0;i<gl-1;i++)
{
Message.append("0");
}
Remainder.append(Message.substring(0,gl));
for(int i=0;i<gl;i++)
Zero.append("0");
}
static void calculate_t()
{
for(;pointer<ml;pointer++)
{
if(Remainder.charAt(0)=='1')
{
Remainder=exor(Remainder,Generator);
Remainder.deleteCharAt(0);
Remainder.append(Message.charAt(pointer));
Quotient.append('1');
}
else
{
Remainder=exor(Remainder,Zero);
Remainder.deleteCharAt(0);
Remainder.append(Message.charAt(pointer));
Quotient.append('0');
}
}
Remainder.deleteCharAt(0);
Quotient.append('0');
TransmittedFrame=Frame;
TransmittedFrame.append(Remainder);
}
static StringBuffer exor(StringBuffer Frame,StringBuffer Remainder)
{
StringBuffer exor=new StringBuffer();
for(int i=0;i<gl;i++)
{
if(Frame.charAt(i)==Remainder.charAt(i))
exor.append('0');
else
exor.append('1');
}
return exor;
}
static void output_t()
{
JOptionPane.showMessageDialog(null,"Frame : "+Frame+
"\n"+"Generator : "+Generator+
"\n"+"Quotient : "+Quotient+
"\n"+"Remainder : "+Remainder+
"\n"+"Transmitted Frame : "+TransmittedFrame);
}
static void input_r()
{
Scanner sc=new Scanner(System.in);
Frame.append(JOptionPane.showInputDialog("Enter the Recieved Frame"));
Generator.append(JOptionPane.showInputDialog("Enter the Generator"));
}
static void length_r()
{
fl=Frame.length();
gl=Generator.length();
ml=fl;
pointer=gl;
}
static void initialise_r()
{
Message.append(Frame);
Remainder.append(Message.substring(0,gl));
for(int i=0;i<gl;i++)
Zero.append("0");
}
static void calculate_r()
{
for(;pointer<ml;pointer++)
{
if(Remainder.charAt(0)=='1')
{
Remainder=exor(Remainder,Generator);
Remainder.deleteCharAt(0);
Remainder.append(Message.charAt(pointer));
Quotient.append('1');
}
else
{
Remainder=exor(Remainder,Zero);
Remainder.deleteCharAt(0);
Remainder.append(Message.charAt(pointer));
Quotient.append('0');
}
}
Quotient.append('0');
TransmittedFrame=Frame;
TransmittedFrame.append(Remainder);
}
public static boolean check()
{
for(int i=0;i<gl;i++)
{
if(Remainder.charAt(i)!=Zero.charAt(i))
{
return false;
}
}
return true;
}
static void output_r()
{
if(check())
{
JOptionPane.showMessageDialog(null,"Correctly recieved");
}
else
{
JOptionPane.showMessageDialog(null,"Incorrect Message Recieved");
}
}
}
No comments:
Post a Comment