Overall Requirements Provide a complete program that performs a simple substitut
ID: 3532739 • Letter: O
Question
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 left would become HDVWHU
HDVWHU shifted by 3 to right would become EASTER
This is how the early Caesar Cipher worked.
YourNameProg3.java
Provide a main method. It should:
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.
Total Points
Sample Session:
Please enter text to encrypt
easter
Please enter shift value
3
BXPQBO
Please enter text to decrypt
bxpqbo
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
QEFPFPXQBPQ
Please enter text to decrypt
qefpfpxqbpq
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
EBIIL
Please enter text to decrypt
ebiil
Please enter shift value
5
ZWDDG
Press any key to continue . . .
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 left would become HDVWHU
HDVWHU shifted by 3 to right would become EASTER
This is how the early Caesar Cipher worked.
YourNameProg3.java
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
- Convert character to its ASCII equivalent (type cast)
- Shift buy shift value entered above
- If you reach end of alphabet, wrap around
- Example: A shifted to the left 2 would become Y
- Convert back to its character equivalent (type cast)
- 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
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.
Total Points
Sample Session:
Please enter text to encrypt
easter
Please enter shift value
3
BXPQBO
Please enter text to decrypt
bxpqbo
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
QEFPFPXQBPQ
Please enter text to decrypt
qefpfpxqbpq
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
EBIIL
Please enter text to decrypt
ebiil
Please enter shift value
5
ZWDDG
Press any key to continue . . .
Explanation / Answer
import java.util.Scanner;
public class substitutionCipher {
public static void main(String args[]) {
String str;
Scanner inS = new Scanner(System.in);
Scanner inI = new Scanner(System.in);
int choice;
int option;
do {
int i;
int offset;
System.out.println("Please enter text to encrypt");
str = inS.nextLine();
System.out.println("Please enter shift value");
offset = inI.nextInt();
str=str.toUpperCase();
String tempStr;
if(offset>0)
{
tempStr= encrypt(str, offset);}
else
{
tempStr = decrypt(str, offset);
}
System.out.println(tempStr);
// choice==2 , perform decryption
System.out.println("Please enter text to decrypt");
str = inS.nextLine();
System.out.println("Please enter shift value");
offset = inI.nextInt();
str=str.toUpperCase();
if(offset>0)
{
tempStr= encrypt(str, offset);}
else
{
tempStr = decrypt(str, offset);
}
System.out.println(tempStr);
System.out.println("Press 2 to continue . . . or 1. to exit");
option = inI.nextInt();
} while (option != 1);
}
public static String encrypt(String str, int offset) {
int ch;
String S="";
for(int i=0;i<str.length();i++)
if(str.charAt(i)!=' ')
{
if((ch=(int)str.charAt(i)-offset)<65)
ch+=26;
S+=(char)ch;
}
return S;
}
public static String decrypt(String str, int offset) {
int ch;
String S="";
for(int i=0;i<str.length();i++)
if(str.charAt(i)!=' ')
{
if((ch=(int)str.charAt(i)-offset)>90)
ch-=26;
S+=(char)ch;
}
return S;
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.