04-String 课后作业1
古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:
请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想、程序流程图、源代码、结果截图。
【设计思想】
定义一个字符串 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("输入错误.");
}
}
}
【程序结果截图】