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("输入错误.");
     }
 }

}

【程序结果截图】

 

posted @ 2017-10-27 14:46  DaisyYuan  阅读(139)  评论(0编辑  收藏  举报