博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
04-String 课后作业1
阅读量:5211 次
发布时间:2019-06-14

本文共 1660 字,大约阅读时间需要 5 分钟。

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

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

【设计思想】

定义一个字符串 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("输入错误.");
     }
 }

}

【程序结果截图】

 

转载于:https://www.cnblogs.com/DaisyYuanyq/p/7743210.html

你可能感兴趣的文章
Swift - UIView的常用属性和常用方法总结
查看>>
Swift - 异步加载各网站的favicon图标,并在单元格中显示
查看>>
Java编程思想总结笔记Chapter 5
查看>>
[LeetCode]662. Maximum Width of Binary Tree判断树的宽度
查看>>
WinForm聊天室
查看>>
Python 从零学起(纯基础) 笔记(一)
查看>>
【Python学习笔记】1.基础知识
查看>>
梦断代码阅读笔记02
查看>>
Java 线程安全问题
查看>>
selenium学习中遇到的问题
查看>>
大数据学习之一——了解简单概念
查看>>
P1-13:集成日志组件 logback 2彩色日志
查看>>
Linux升级内核教程(CentOS7)
查看>>
Lintcode: Partition Array
查看>>
分享适合个人站长的5类型网站
查看>>
类别的三个作用
查看>>
【SICP练习】85 练习2.57
查看>>
runC爆严重安全漏洞,主机可被攻击!使用容器的快打补丁
查看>>
Maximum Product Subarray
查看>>
solr相关配置翻译
查看>>