问题:

古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:

请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想、程序流程图、源代码、结果截图。

 

设计思想:

输入一个字符串,将字符串每个位置的字符强制转化为int型,将所得到的ascll代码加3,a-z的Ascll码为97-122,如果加3之后超过122则从97开始。

最后将字符串每个位置用+3之后的字符代替。输出加密后的字符串。解密字符串原理同上。

流程图:

 

源代码:


//翟超科 信1605-3 20163607
import java.util.Scanner;

public class JiamiString
{

  public static String s;
  static Scanner in=new Scanner(System.in);
  public static void jiami()
  {
    System.out.println("请输入一个字符串:");
    s=in.next();
    System.out.println("加密后的字符串为:");
    for(int i=0;i<s.length();i++)
    {
      int t=s.charAt(i);
      if(t+3>122&&(t+3)<126)
      {
        t=t-29;
        s=s.replace(s.charAt(i),(char)t);
      }
      if(t==32)
      {
        s=s.replace(s.charAt(i),' ');
      }
      else
      {
        s=s.replace(s.charAt(i),(char)(t+3));
      }

    }

    System.out.println(s);
  }
  static void jiemi()
  {
    System.out.println("请输入一个加密的字符串:");
    s=in.next();
    System.out.println("解密后的字符串为:");
    for(int i=0;i<s.length();i++)
    {
      int t=s.charAt(i);
      if(t-3<97)
      {  
        t=t+29;
        s=s.replace(s.charAt(i),(char)t);
      }
      if(t==32)
      {
        s=s.replace(s.charAt(i),' ');
      }
      else
      {
        s=s.replace(s.charAt(i),(char)(t-3));
      }

    }

    System.out.println(s);
  }
  static void print()
  {
    System.out.println("欢迎来到字符串解密系统");
    System.out.println(" 1、字符串加密");
    System.out.println(" 2、字符串解密");
    System.out.println(" 3、退出");
    System.out.println("请输入相应的操作:");
  }
  static void run()
  {
    while(true)
    {
      print();
      int t=in.nextInt();
      switch(t)
      {
        case 1:
          jiami();
          break;  
        case 2:
          jiemi();
          break;
        case 3:
          System.out.println("退出成功");
          System.exit(0);
      }

    }
  }
  public static void main(String[] args)
  {
    // TODO 自动生成的方法存根
    run();
  }
}

 程序截图:

 

转载于:https://www.cnblogs.com/2016-zck/p/7737532.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐