您的位置:首页 > 其它

课后作业

2015-10-25 16:58 211 查看
古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:



请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想、源代码、结果截图。
设计思想:
先输入string类型的字符,把字符转化为字符数组,若是加密则在a-w或A-W中则每个字符+3若在x-z或X-Z中则每个字符-23,;若是解密则在a-c或A-C中每个字符+23若在d-z或D-Z中则每个字符-3;在把字符数组转化为string类型,输出结果。
源代码:

//编写一个加密和解密程序 每个字母往后顺延3个位置

//李国帅 2015.10.25

import java.util.Scanner;

public class PassWord {

public static void main(String[] args){

System.out.println("加密请选1,解密请选2:");

String jiami,jiemi;

Scanner scan;

int i,j;

scan=new Scanner(System.in);

i = scan.nextInt();

if(i==1){

scan=new Scanner(System.in);

System.out.println("请输入要加密的字符:");

jiami=scan.nextLine();

char array[]=jiami.toCharArray();

for(j=0;j<jiami.length();j++){

if(array[j]>=65&&array[j]<=87||array[j]>=97&&array[j]<=119)

array[j]=(char) (array[j]+3);

else if((array[j]>=88&&array[j]<=90)||(array[j]>=120&&array[j]<=122))

array[j]=(char) (array[j]-23);

}

StringBuffer arr = new StringBuffer();

for(j=0;j<jiami.length();j++){

arr.append(array[j]);

}

String newjiami=arr.toString();

System.out.println("加密后的字符为:"+newjiami);

}

else

{

scan=new Scanner(System.in);

System.out.println("请输入密码:");

jiemi=scan.nextLine();

char array[]=jiemi.toCharArray();

for(j=0;j<jiemi.length();j++){

if(array[j]>=65&&array[j]<=67||array[j]>=97&&array[j]<=99){

array[j]=(char)(array[j]+23);

}

else if(array[j]>=68&&array[j]<=90||array[j]>=100&&array[j]<=122){

array[j]=(char)(array[j]-3);

}

}

StringBuffer arr = new StringBuffer();

for(j=0;j<jiemi.length();j++){

arr.append(array[j]);

}

String newjiemi=arr.toString();

System.out.println("解密后的字符为:"+newjiemi);

}

}

}

结果截图:




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: