admin 管理员组

文章数量: 887021


2023年12月22日发(作者:listat什么意思)

Java语言程序设计A实验指导

实验二

一、实验目的

1. 掌握Java数组的基本操作。

恺撒密码

2.掌握String类的生成、访问、修改等基本操作;

3.掌握StringBuffer类的生成、访问、修改等基本操作。

4. 掌握 Pattern和Matcher对象的用法,以及正则表达式的应用

二、实验要求

1.正确地定义数组;

2.正确对数组元素进行赋值、排序。

3.正确使用String类的方法;

4.正确使用StringBuffer类的方法。

5. 正确书写正则表达式和使用Pattern和Matcher对象

三、实验环境

1.计算机一台;

2.JDK、MyEclipse工具软件。

四、实验内容

1.编写Application程序,实现凯撒密码,输入明文自动输出相应的密文。

五、实验步骤

1.处理输入,每次读入一行。

2.将该行转换为字符数组,依次处理每个字符,英文字母转换成相应的密文,其他字符(如标点符号)的密文和明文相同。

3. 整体输出该行的密文。

4. 选作:允许用户扩展凯撒密码,指定字符替换的规则,即可以输入密钥

六、凯撒密码介绍

凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不被敌军知道,就使用这种特殊的方法进行通信,以确保信息传递的安全。他的原理很简单,说到底就是字母于字母之间的替换。下面让我们看一个简单的例子:“baidu”用凯撒密码法加密后字符串变为“edlgx”,它的原理是什么呢?把“baidu”中的每一个字母按字母表顺序向后移3位,所得的结果就是刚才我们所看到的密文。

七、实验结果

源代码为:

package youximima;

import .*;

public class Mima {

1

Java语言程序设计A实验指导

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

//Scanner s =new Scanner();

n("凯萨密码!");

n("请输入一串字符!");

int k=1;

while(k==1){

n("凯撒密码法加密后的字符串为:");

Scanner s =new Scanner();

String c=ne();

int i=();

if(i<=10)

{char a[]=Array();

n(a);

for(int j=0;j<;j++)

{ if(a[j]>='a'&&a[j]<='z')

if(a[j]=='x')a[j]='a';

else if(a[j]=='y')a[j]='b';

else if(a[j]=='z')a[j]='c';

else a[j]+=3;

if(a[j]>='A'&&a[j]<='Z')

if(a[j]=='X')a[j]='A';

else if(a[j]=='Y')a[j]='B';

else if(a[j]=='Z')a[j]='C';

else a[j]+=3;

}

("原文为:");

n(a);

}

}

else n("密码个数超过限制范围!");

n("需要继续吗? 若继续请按1, 退出按0!");

int m=t();k=m;

}

n("欢迎下次使用!");

}

结果为:

凯萨密码!

请输入一串字符!

凯撒密码法加密后的字符串为:

alk12@#xz

2

Java语言程序设计A实验指导

alk12@#xz

原文为:don12@#ac

需要继续吗? 若继续请按1, 退出按0!

1

凯撒密码法加密后的字符串为:

sjkfJKJ%^YZ

密码个数超过限制范围!

需要继续吗? 若继续请按1, 退出按0!

1

凯撒密码法加密后的字符串为:

SFJ*8^knyz

SFJ*8^knyz

原文为:VIM*8^nqbc

需要继续吗? 若继续请按1, 退出按0!

0

欢迎下次使用!

3


本文标签: 密码 实验 字符 使用 输入