JAVA第一次实验 ——凯撒密码
课程:Java程序设计 班级:1352 姓名:黄伟业 学号:20135215
成绩: 指导教师:娄嘉鹏 实验日期:2015.4.15
实验密级: 预习程度: 实验时间:19:30~22:30
仪器组次: 必修/选修:选修 实验序号:1
实验名称: JAVA开发环境的熟悉
一、 实验内容
1. 使用JDK编译、运行简单的Java程序
2.使用Eclipse 编辑、编译、运行、调试Java程序
二、实验内容
(一) 命令行下Java程序开发
(二)Eclipse下Java程序开发、调试
(三)练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序)
5. 实现求正整数1-N之间所有质数的功能,并进行测试。
三、实验过程
实验一、
命令行下java程序的开发
- 首先双击桌面上的Xface终端图标。
- 打开终端(类似Windows下的cmd),之后会自动运行shell程序。
- 输入cd Code命令进入Code目录。
- 输入mkdir 20135215 命令建立实验目录,可以使用ls命令或dir命令查看建立的目录情况。
- 输入cd 20135218命令进入实验目录,再输入mkdir exp1建立第一个实验目录,然后输入cd exp1进入实验一目录,可以输入pwd命令查看当前工作路径。
- 输入gedit Hello.java,编辑Hello.java,并输入以下代码:
1 package ljp;
2 import java.util.Scanner;
3 public class Hello{
4 public static void main(String[] args){
5 System.out.println("Input your first name, please:");
6 Scanner s = new Scanner(System.in);
7 String name = s.next();
8 System.out.println("Hello " + name + " !");
9 }
实验二、
利用eclipse编程。注意要将建立的类保存到包文件夹中。编写制定程序。重点在调试程序,单击Window->Open Perspective->Debug打开调试视图。
设置断点,在要设置断点的位置前面,双击标有行数前面的部分,可快捷设置断点。
调试的快捷键是F11,单步调试,进入函数快捷键为F5,不进入函数快捷键F6,一般调试都不进入函数,当函数出现问题时,再进入函数。
在指定位置进行调试,使用快捷键为F8的Resume功能。
通过将鼠标移到变量处,可以查看此时变量的值。
条件断点,一般用于循环语句中。在要调试的语句行左边单击鼠标右键,选择“Breakpoint Properties...”,输入需要的循环条件。
package ljp;
public class HelloJDB
{
public static void main(String[] args)
{
int i=5;
int j=6;
int sum=add(i,j);
System.out.println(sum);
sum=0;
for(i=0;i<100;i++)
sum+=i;
System.out.println(sum);
}
public static int add(int augend,int addend)
{
int sum=augend+addend;
return sum;
}
}

实验三、
凯撒密码
package lala;
import java.util.Scanner;
public class Lala
{
void mj()
{
Scanner in = new Scanner(System.in);
System.out.print("请选择操作(1.加密 2.解密):");
int n=in.nextInt();
if(n == 1)
{
System.out.print("请输入待加密的字符串:");
String str = in.next();
String jm="";
int key = 3;//凯撒密码加密,向后移位3位
for(int i = 0;i < str.length();i++)
{
char c = str.charAt(i);
if(c >= 'a'&&c <= 'z')
{
if(c>='x'&&c<='z')
{
c-=26;
c+=key;
}
else
{
c+=key;
}
}
else if(c >= 'A'&&c <= 'Z')
{
if(c>='X'&&c<='Z')
{
c-=26;
c+=key;
}
else
{
c+=key;
}
}
jm += c;
}
System.out.print("加密后的字符串是:"+jm);
System.out.print("\n输入任意建继续,0结束程序:");
n=in.nextInt();
if(n==0)
{
System.out.print(" 谢谢使用本程序,欢迎再次使用!");
}
else
{
this.mj();
}
}
else if(n == 2)
{
System.out.print("请输入待解密的字符串:");
String str = in.next();
String jm="";
int key = -3;//凯撒密码解密,向前移位3位
for(int i = 0;i < str.length();i++)
{
char c = str.charAt(i);
if(c >= 'a'&&c <= 'z')
{
if(c>='a'&&c<='c')
{
c+=26;
c+=key;
}
else
{
c+=key;
}
}
else if(c >= 'A'&&c <= 'Z')
{
if(c>='A'&&c<='C')
{
c+=26;
c+=key;
}
else
{
c+=key;
}
}
jm += c;
}
System.out.println("解密后的字符串:"+jm);
System.out.print("\n输入任意建继续,0结束程序:");
n=in.nextInt();
if(n==0)
{
System.out.print(" 谢谢使用本程序,欢迎再次使用!");
}
else
{
this.mj();
}
}
else
{
System.out.print("请输入1或2,其他字符无效!\n输入任意建继续,0结束程序:");
n=in.nextInt();
if(n==0)
{
System.out.print(" 谢谢使用本程序,欢迎再次使用!");
}
else
{
this.mj();
}
}
}
public static void main(String[] args)
{
Lala mj=new Lala();
System.out.println("******欢迎使用凯撒密码******");
mj.mj();
}
}
- 单击运行按钮(或使用Ctrl+F11快捷键),就可以在控制台(Console)中看到运行结果
- 下面我们练习调试程序,首先我们通过单击Window->Open Perspective->Debug打开调试视图
- 调试程序首先要会设置断点和单步运行。设置断点比较简单,然后单击调试按钮(或使用F11快捷键)开始调试Java程序,我们可以看到程序停留在了第4行注意,此时第4行代码并没有执行,我们可以把鼠标放到变量名上来查看变量的值,此时i的值并不是5,我们通过单步运行让程序运行到第5行,单步运行有两种:Step Into(快捷捷F5)和Step Over(快捷捷F5),这两种单步运行功能在运行语句时没有区别,在执行函数调用语句时,Step Into会跳入函数实现,Step Over会直接执行完函数,实际使用中我们优先使用Step Over,只有函数执行出错了,说明程序问题在被调用函数中,这时再回来通过Step Into进入函数进行调试。我们单击一下Step Over图标(或F6),程序停在了第5行,这时查看变量i的值,会看到i等于5。
10. 1单步执行效率比较慢,如果我们感觉到第6行到第10行的代码没有问题了,想让程序直接运行到第11行,怎么办?首先我们要在第11行设置断点,然后单击Resume图标(快捷键F8),程序就运行到了第11行
11. 单步执行效率比较慢还导致另外一个问题,比如一个大循环中间出了问题怎么办?这时可以通过条件断点解决问题。调试循环代码时,会有一个值我们特别关注,这时在Variable标签中查看变量的值,比如我们此时比较关注sum,每次单步执行都可以看到sum的变化情况了,设置条件断点,我们在第11行左边单击鼠标右键,选择Breakpoint Properties...


|
步骤 |
耗时 |
百分比 |
|
需求分析 |
20% |
|
|
设计 |
30% |
|
|
代码实现 |
30% |
|
|
测试 |
10% |
|
|
分析总结 |
10% |

JAVA第一次实验 ——凯撒密码的更多相关文章
- 20155210 潘滢昊 Java第一次实验---凯撒密码
Java第一次实验---凯撒密码 实验内容 实现凯撒密码,并进行测试. 实验代码 import java.io.*; import java.util.Scanner; public class ks ...
- JAVA第一次实验 ——凯撒密码的实现
JAVA实验一 编写程序实现凯撒密码 201352330 潘俊洋 一.实验说明 凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加 ...
- java:凯撒密码及String的应用
一,凯撒密码 古罗马皇帝凯撒在打仗时曾使用过以下方法加密军事情报 现在用java实现 程序设计思想: 1,字符串首先要转化为字符数组,才能依次加密 2,当原来的字符为X,Y,Z时,加密后要转化为A,B ...
- 凯撒密码加密解密--JAVA实现(基础)
凯撒密码一种代换密码,据说凯撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码.凯撒密码的基本思想是:通过把字母移动一定的位数来实现加密和解密.明文中的所有字母都在字母表上向后(或向前) ...
- Java 第十一届 蓝桥杯 省模拟赛 凯撒密码加密
凯撒密码加密 题目 问题描述 给定一个单词,请使用凯撒密码将这个单词加密. 凯撒密码是一种替换加密的技术,单词中的所有字母都在字母表上向后偏移3位后被替换成密文.即a变为d,b变为e,-,w变为z,x ...
- Java第一次实验
北京电子科技学院(BESTI) 实验报告 课程: java实验 班级:1352 姓名:吕松鸿 学号:20135229 成绩: 指导教师: 娄嘉鹏 实验日期及时间:20 ...
- 凯撒密码 CH Round #57 - Story of the OI Class
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2357%20-%20Story%20of%20the%20OI%20Class/凯撒密码 题解:刚开始想map, ...
- Python的一个解释凯撒密码的程序
#!/usr/bin/env python # -*- coding: utf-8 -*- ''' { Title:CaserCode Author:naiquan Type:crypto Detai ...
- 凯撒密码移位python
#!/usr/bin/python'''凯撒密码'''a="gmbhqwertghjkcvbzn"s=[""]*len(a)for j in range(26) ...
随机推荐
- “error : unknown filesystem”的解决的方法
解决方法例如以下: 1:首先使用ls命令显示出ubuntu分区的安装信息: 1 grub rescue>ls 通常会罗列出全部磁盘的分区信息,比方(hd0,msdos1)(hd0,msdos2) ...
- MySQL数据库 utf-8与utf8mb4
MySQL的“utf8”实际上不是真正的UTF-8. MySQL中的“utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节. MySQL ...
- pandas对excel处理过程中的总结
在处理excel数据时需要将一组具有相同标签值的数据给按标签抽取出来,同样的标签值对应着同一个类别,这项操作让我对pandas的聚合功能有了更深刻的认识. 所谓聚合groupby,实际上是指将向量或者 ...
- 学习scalaenv
背景 最近由于工作需要, 我总是在不同的scala项目间流动开发. 这就遇到一个很棘手的问题, 这几个项目用的scala版本不一致, 老项目用的是 scala 2.11.8, 新项目用的是 scala ...
- Oracle的 EXEC SQL CONTEXT学习
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL杂记页 回到顶级页面:PostgreSQL索引页 [作者 高健@博客园 luckyjackgao@gmail. ...
- VS2013在Windows7 64位上变慢的解决方法
重装了windows7系统,又重装了vs2013,发现在打开vs2013.编译工程及调试的时候,vs2013都会变的比较慢,参考网上资料,这里列出几种可能的解决方法: 1. 打开工具--&g ...
- cmp(x,y)
cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1.
- 2_C语言中的数据类型 (七)printf与scanf
1 字符串格式化输出和输入 1.1 字符串在计算机内部的存储方式 字符串是内存中一段连续的char空间,以’\0’结尾 “”是C语言表达字符串的方式 1.2 ...
- cogs1685 【NOI2014】魔法森林 Link-Cut Tree
LCT练手好题啊. SPFA的做♂FA是把边按照a排序,然后加一条权值为b的边跑SPFA,不断更新答案.很好的做♂FA,但复杂度无♂FA保证. LCT的做♂FA类似,也是把边按照a排序,然后也是加一条 ...
- intellIJ IDEA配置maven相关问题记录
IntellIJ IDEA 配置 Maven 以及 修改 默认 Repository 参考:https://www.cnblogs.com/phpdragon/p/7216626.html non-m ...