问题的前景:

设计思想:
这个问题主要分为两大块:其一,加密问题:加密就是要将自己想要保护的文件内容进行变化使其不易泄露,在这个问题里的文件内容变化就是要将输入的字符的对应的ASCII进行加三,然后再将它转换为字符串输出即可,在代码的方法体中就要将输入的字符串转化为数组(to.CharArray());然后再将存储字符串的数组进行强制转换转换为整形的数组,最后将整形的数组进行加三的操作,最后再转化为字符数组即可。其二,就是解密问题,解密就是将输入的字符串转换为字符数组,然后字符数组转化为整形的数组,将整形的数组进行减三的操作就行,然后再转化为字符数组进行输出即可。
程序流程图:

源代码:
//凯瑟密码 信1605-3 赵春辉 20163464
import java.util.Scanner;
public class Caserkey
{
int list2[]=new int[10];//定义一个长度为10的整形的数组。
int list4[]=new int[10];//
int setkey(String qwe)//创建一个含参的setkey方法
{
char list1[]=qwe.toCharArray();//将输入的字符串转化在数组中
for(int i=0;i<list1.length;i++)
list2[i]=list1[i];//将char类型的数组转化为int型的数组
for(int i=0;i<list1.length;i++)
list1[i]=(char) (list2[i]+3);//将int型的数组进行加密(+3操作);
System.out.println(list1);//将加密以后的密文输出出来
return 1;
}
int getkey(String asd)//创建的有返回值的getkey方法
{
char list3[]=asd.toCharArray();//将输入的密文转化为数组存储
for(int i=0;i<list3.length;i++)
list4[i]=list3[i];//将char类型的数组转化为int型的数组
for(int i=0;i<list3.length;i++)
list3[i]=(char)(list4[i]-3);//将int型数组的密文进行解密操作(-3)
System.out.println(list3);//将加密以后的密文输出出来
return 1;
}
public static void main(String args[])
{
Caserkey caser=new Caserkey();
Scanner scanner=new Scanner(System.in);
System.out.println("please chose 1(setkey) or chose 0(getkey):");
int chose=scanner.nextInt();
if(chose==1)
{
System.out.println("enter your setkey");
String string1=scanner.next();
caser.setkey(string1);
}
else
if(chose==0)
{
System.out.println("pease enter your miwen:");
String string2=scanner.next();
caser.getkey(string2);
}
else
System.out.println("sorry,you input error!");
}
}
结果截图:


