Program Chapter 12 Grading Information: This Program is due on Sunday at Midnigh
ID: 3553942 • Letter: P
Question
Program Chapter 12
Grading Information: This Program is due on Sunday at Midnight
Comments are REQUIRED; flow charts and Pseudocode are NOT REQUIRED.
Directions Points
The file must be called <YourNameChapter12.java>
Example: KenDeweyChapter12.java
Ensure you include ALL files required to make your program compile and run.
I would like to see your .java files only.
Proper coding conventions required the first letter of the class start with a capital
letter and the first letter of each additional word start with a capital letter.
5%
Style Requirements
Refer to the Java Coding Conventions Document.
Add comments as required for all .java files.
10%
Overall Requirements
Provide a complete program that performs a simple substitution cipher. The program
should take plain text and a shift value and produce the encrypted text. Then it
should take encrypted text and a shift value and produce the plain text once again. A
different encrypted text and shift can be entered so make sure to get input.
Example:
EASTER shifted by 3 to right would become HDVWHU
HDVWHU shifted by 3 to left would become EASTER
This is how the early Caesar Cipher worked.
YourNameChapter12.java 80%Provide a main method. It should:
? Get input for a string and a shift value
? Convert to upper case
? Only perform the following items on alphabetic characters between A and Z
? Utilize a for loop which uses postfix incrementing operator
o Convert character to its ASCII equivalent (type cast)
o Shift by shift value entered above
? If you reach end of alphabet, wrap around
? Example: A shifted to the left 2 would become Y
o Convert back to its character equivalent (type cast)
o Output the new character
? Get input for a string and a shift value
? Perform same steps above to convert the encrypted text back to plain text
? Be sure to get input again as a different encrypted text may be entered
? Main method can call separate method to perform encryption/decryption but
not required.
Utilize postfix increment/decrement operations and compound assignment operators
for all math. Example: x++ or x+=2.
Mimic the sample session precisely.
Upload your page to the Dropbox.
NOTE: Complete your activity and submit it to the Dropbox.
5%
Total Points 100%
Sample Session:
Please enter text to encrypt
easter
Please enter shift value
3
HDVWHU
Please enter text to decrypt
hdvwhu
Please enter shift value
-3
EASTER
Press any key to continue . . .
Sample Session 2: : (Notice spaces removed from input)
Please enter text to encrypt
This Is A Test
Please enter shift value
3
WKLVLVDWHVW
Please enter text to decryptWKLVLVDWHVW
Please enter shift value
-3
THISISATEST
Press any key to continue . . .
Sample Session 3: (Notice the different shift and decrypt value)
Please enter text to encrypt
hello
Please enter shift value
3
KHOOR
Please enter text to decrypt
khoor
Please enter shift value
-5
FCJJM
Press any key to continue . . .
Explanation / Answer
import java.lang.*;
import java.util.*;
public class Cipher
{
public static void main(String[] args)
{
Scanner stdIn = new Scanner(System.in);
String encryptText; //text to encrypt
int shiftValue; //number of spaces to shift
String decryptText; //text to decrypt
//User enters text to encrypt
System.out.print("Please enter text to encrypt");
encryptText = stdIn.nextString();
//User enters shift value
System.out.println("Please enter shift value");
shiftValue = stdIn.nextInt();
//System returns encrypted string
String encryptedText = encrypt(encryptText , shiftValue); // text that has been encrypted
System.out.println(encryptedText);
//User enters text to decrypt
System.out.print("Please enter text to decrypt");
decryptText = stdIn.nextString();
//User enters shift value
System.out.println("Please enter shift value");
shiftValue = stdIn.nextInt();
//System returns decrypted string
String decryptedText = decrypt(decryptText , shiftValue); // text that has been decrypted
System.out.println(decryptedText);
}
//Shift and manipulate characters
public static String shift(String enteredText, int shiftValue)
{
String convertedText = "";
for(int i = 0; i< enteredText.length(); i++){
char lowerCase = enteredText.charAT(i);
//Convert to upper case letters
char lowerCase = Character.toUpperCase(lowerCase);
int charNumber = upperLetter;
//Shift letters and wrap text
int rotateLetters = (charNumber + shiftValue) % 26;
char shiftLetters = (char) rotateShift;
//Populate new string of characters
convertedText += shiftLetters;
}
return convertedText;
}
//Encryption
public static String encrypt(String enteredText, int shiftValue);
{
String encryptedString = rotate(enteredText , shiftValue);
return encryptedString;
}
//Decryption
public static String decrypt(String enteredText, int shiftValue);
{
int negativeShiftValue = (-1) * (shiftValue);
String decryptedString = rotate(enteredText , negativeShiftValue);
return decryptedString;
}
}// end main
} //end class Cipher
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.