古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:
请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想、程序流程图、源代码、结果截图。
【设计思想】
定义一个字符串 s,通过键盘输入字符串;键入整型m来选加密还是解密;在类中定义一个setString()方法,来初始化s和加密解密后的字符串w,q;定义一个jiami()方法,在A-W或a-w中temp=(char)(s.charAt(j)+3);在X-Z或x-z中,temp=(char)(s.charAt(j)-23);w+=temp;定义一个jiemi()方法,在D-Z或d-z中temp=(char)(s.charAt(j)-3);在A-C或a-c中,temp=(char)(s.charAt(j)+23);w+=temp;
【程序流程图】
【程序源代码】
// 信1506-2 20163483 袁亚琴
import java.util.Scanner;public class StringCipher { String s,w,q; int i=0; char temp=0; char charArray[]=new char[100]; public void setString() { s=""; w=""; q=""; Scanner input=new Scanner(System.in); s=input.nextLine(); } public void jiami() { i=s.length(); for(int j=0;j<i;j++) { if(s.charAt(j)>64&&s.charAt(j)<88||(s.charAt(j)>96&&s.charAt(j)<120)) { temp=(char)(s.charAt(j)+3); } else if((s.charAt(j)>87&&s.charAt(j)<91)||(s.charAt(j)>119&&s.charAt(j)<123)) { temp=(char)(s.charAt(j)-23); } w+=temp; } System.out.println("加密后:"+w); } public void jiemi() { i=s.length(); for(int j=0;j<i;j++) { if(s.charAt(j)>67&&s.charAt(j)<91||(s.charAt(j)>99&&s.charAt(j)<123)) { temp=(char)(s.charAt(j)-3); } else if((s.charAt(j)>64&&s.charAt(j)<68)||(s.charAt(j)>96&&s.charAt(j)<100)) { temp=(char)(s.charAt(j)+23); } q+=temp; } System.out.println("加密后:"+q); } public static void main(String[] args) { System.out.println("请输入一段字符串:"); StringCipher str=new StringCipher(); str.setString(); int m; System.out.println("请输入要进行的操作:\n"+"1、加密字符串\n"+"2、解密字符串"); Scanner input=new Scanner(System.in); m=input.nextInt(); if(m==1) { str.jiami(); } else if(m==2) { str.jiemi(); } else { System.out.println("输入错误."); } }}
【程序结果截图】