zoukankan      html  css  js  c++  java
  • 凯撒密码

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

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

    程序设计思想:

    首先输入一个字符串,然后利用函数将该字符串赋值给一个数组(char类型),然后利用for循环,将数组中的每个字符的ASCLL码+3,当字符为x,y,z,时,单独写出

    X->A;

    Y->B;

    Z->C;

    然后再将最后的得到的数组变成字符串输出。

    如果是破解密码,则将每个数组中的字符的ASCLL码都-3,对于a,b,c应该单独判断。

    A->X;

    B->Y;

    c->Z;

    然后再将其变成字符串输出。

    程序设计流程图:

    程序源代码:

    import java.util.Scanner;
    
    public class Password {
    public char Change(char a)
    {
    	char c=0;
    	if(a=='X')
    		c='A';
    	if(a=='Y')
    		c='B';
    	if(a=='Z')
    		c='Z';
    	if(a>='A'&&a<='W')
    		c=(char) (a+3);
    	return c;
    		
    }
    
    public char jiemi(char a)
    {
    	char c=0;
    	if(a=='A')
    		c='X';
    	if(a=='B')
    		c='Y';
    	if(a=='C')
    		c='Z';
    	if(a>='D'&&a<='Z')
    		c=(char) (a-3);
    	return c;
    		
    }
    
    	public static void main(String[] args) 
    	{
    				String s1;
    				String s2="";
    				char c;
    				int w;
    				Scanner input=new Scanner(System.in);
    				Password p=new Password();
    				System.out.println("请选择1.加密2.解密");
    				w=input.nextInt();
    		if(w==1)
    		{
    					System.out.println("请输入一条消息:");
    					s1=input.next();
    					char a[]=s1.toCharArray();
    				for(int i=0;i<a.length;i++)
    				{
    					if(a[i]<'A'&&a[i]>'Z')
    					{
    						System.out.println("输入有误");
    						System.exit(0);
    					}
    					c=p.Change(a[i]);
    					s2=s2+c;
    					
    				}
    		System.out.println("加密后的消息为:");
    		       System.out.println(s2);
    		}
    		else
    		{
    			System.out.println("请输入要解密的句子");
    			s1=input.next();
    			char a[]=s1.toCharArray();
    			for(int i=0;i<a.length;i++)
    			{
    
    				if(a[i]<'A'&&a[i]>'Z')
    				{
    					System.out.println("输入有误");
    					System.exit(0);
    				}
    				c=p.jiemi(a[i]);
    				s2=s2+c;
    			}
    			System.out.println("解密后的消息为:");
    		       System.out.println(s2);
    		}
    	}
    
    }
    

     程序截图: 

     

  • 相关阅读:
    连接上三星C5,播放音乐断音
    连接上LG NEXUS4播放音乐无声音输出,关机再开机回连再播放OK
    连接上LG G5时,“连接”提示音能听到明显拖尾杂音
    WebRTC原生开发和混合开发优缺点分析对比
    Safari即将支持WebRTC
    WebRTC通话过程中如何避免其它进程音量下降
    WebRTC 中RTT实现方法
    开发Rtmp推流端开发库的几种选择方案
    WebRTC中OPUS编码相关设置和分析
    WebRTC手记之初探
  • 原文地址:https://www.cnblogs.com/ljysy/p/7737670.html
Copyright © 2011-2022 走看看