Please help solve this Java problem. Source code for MessageEncoder.java and MessageDecoder.Java is below. Filename: MessageEncoder.java public interface MessageEncoder { /**...


Please help solve this Java problem.  Source code for MessageEncoder.java and MessageDecoder.Java is below.



Filename: MessageEncoder.java



public interface MessageEncoder {

    /**

     * The method that encodes text

     * @param plainText the text to encode

     * @return the encoded text

     */

    public abstract String encode(String plainText);

}



Filename: MessageDecoder.Java




public interface MessageDecoder {

    /**

     * This method will decode the cypher text

     * @param cipherText the encoded message

     * @return the decoded text

     */

    public abstract String decode(String cipherText);

}




Create the classes SubstitutionCipher and ShuffleCipher, as described below:<br>1. SubstitutionCipher implements the interfaces MessageEncoder and MessageDecoder.<br>The constructor should have one parameter called shift. Define the method encode so that<br>each letter is shifted by the value in shift. For example, if shift is 3, a will be replaced<br>by d, b will be replaced by e, c will be replaced by f, and so on. (Hint: You may wish to<br>define a private method that shifts a single character.)<br>2. ShuffleCipher that implements the interface MessageEncoder and MessageDecoder. The<br>constructor should have one parameter called n. Define the method encode so that the<br>message is shuffled n times. To perform one shuffle, split the message in half and then<br>take characters from each half alternately. For example, if the message is abcdefghi, the<br>halves are abcde and fghi. The shuffled message is afbgchdie. (Hint: You may wish to<br>define a private method that performs one shuffle.)<br>3. Create a JavaFX application that uses a TextField to get a message and encode or decode<br>it using the classes described above. Use buttons to control the kind of cipher used and to<br>specify whether to encode or decode the message. Also use a TextField to get the number<br>used in the constructor for the ciphers. Also include a counter to show the number of<br>messages encoded or decoded.<br>

Extracted text: Create the classes SubstitutionCipher and ShuffleCipher, as described below: 1. SubstitutionCipher implements the interfaces MessageEncoder and MessageDecoder. The constructor should have one parameter called shift. Define the method encode so that each letter is shifted by the value in shift. For example, if shift is 3, a will be replaced by d, b will be replaced by e, c will be replaced by f, and so on. (Hint: You may wish to define a private method that shifts a single character.) 2. ShuffleCipher that implements the interface MessageEncoder and MessageDecoder. The constructor should have one parameter called n. Define the method encode so that the message is shuffled n times. To perform one shuffle, split the message in half and then take characters from each half alternately. For example, if the message is abcdefghi, the halves are abcde and fghi. The shuffled message is afbgchdie. (Hint: You may wish to define a private method that performs one shuffle.) 3. Create a JavaFX application that uses a TextField to get a message and encode or decode it using the classes described above. Use buttons to control the kind of cipher used and to specify whether to encode or decode the message. Also use a TextField to get the number used in the constructor for the ciphers. Also include a counter to show the number of messages encoded or decoded.
Jun 08, 2022
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here