课程: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程序的开发

  1. 首先双击桌面上的Xface终端图标。
  2. 打开终端(类似Windows下的cmd),之后会自动运行shell程序。
  3. 输入cd Code命令进入Code目录。
  4. 输入mkdir 20135215 命令建立实验目录,可以使用ls命令或dir命令查看建立的目录情况。
  5. 输入cd 20135218命令进入实验目录,再输入mkdir exp1建立第一个实验目录,然后输入cd exp1进入实验一目录,可以输入pwd命令查看当前工作路径。
  6. 输入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();

}

}

  1. 单击运行按钮(或使用Ctrl+F11快捷键),就可以在控制台(Console)中看到运行结果
  2. 下面我们练习调试程序,首先我们通过单击Window->Open Perspective->Debug打开调试视图
  3. 调试程序首先要会设置断点单步运行。设置断点比较简单,然后单击调试按钮(或使用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第一次实验 ——凯撒密码的更多相关文章

  1. 20155210 潘滢昊 Java第一次实验---凯撒密码

    Java第一次实验---凯撒密码 实验内容 实现凯撒密码,并进行测试. 实验代码 import java.io.*; import java.util.Scanner; public class ks ...

  2. JAVA第一次实验 ——凯撒密码的实现

    JAVA实验一   编写程序实现凯撒密码 201352330 潘俊洋 一.实验说明 凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加 ...

  3. java:凯撒密码及String的应用

    一,凯撒密码 古罗马皇帝凯撒在打仗时曾使用过以下方法加密军事情报 现在用java实现 程序设计思想: 1,字符串首先要转化为字符数组,才能依次加密 2,当原来的字符为X,Y,Z时,加密后要转化为A,B ...

  4. 凯撒密码加密解密--JAVA实现(基础)

    凯撒密码一种代换密码,据说凯撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码.凯撒密码的基本思想是:通过把字母移动一定的位数来实现加密和解密.明文中的所有字母都在字母表上向后(或向前) ...

  5. Java 第十一届 蓝桥杯 省模拟赛 凯撒密码加密

    凯撒密码加密 题目 问题描述 给定一个单词,请使用凯撒密码将这个单词加密. 凯撒密码是一种替换加密的技术,单词中的所有字母都在字母表上向后偏移3位后被替换成密文.即a变为d,b变为e,-,w变为z,x ...

  6. Java第一次实验

    北京电子科技学院(BESTI) 实验报告   课程: java实验    班级:1352     姓名:吕松鸿     学号:20135229  成绩: 指导教师: 娄嘉鹏    实验日期及时间:20 ...

  7. 凯撒密码 CH Round #57 - Story of the OI Class

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2357%20-%20Story%20of%20the%20OI%20Class/凯撒密码 题解:刚开始想map, ...

  8. Python的一个解释凯撒密码的程序

    #!/usr/bin/env python # -*- coding: utf-8 -*- ''' { Title:CaserCode Author:naiquan Type:crypto Detai ...

  9. 凯撒密码移位python

    #!/usr/bin/python'''凯撒密码'''a="gmbhqwertghjkcvbzn"s=[""]*len(a)for j in range(26) ...

随机推荐

  1. 第8章 自己写库-构建库函数雏形—零死角玩转STM32-F429系列

    第8章     自己写库—构建库函数雏形 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fi ...

  2. 使用Python编写简单网络爬虫抓取视频下载资源

    我第一次接触爬虫这东西是在今年的5月份,当时写了一个博客搜索引擎.所用到的爬虫也挺智能的,起码比电影来了这个站用到的爬虫水平高多了! 回到用Python写爬虫的话题. Python一直是我主要使用的脚 ...

  3. 【ui】amazeui前端框架

    amazeui Amaze UI是一款较全面的轻量级 (更适于mobile,但也可以用于web)的前端框架. 她综合了业界一些优良插件,直接拿来用而不用一个个去搜索

  4. php基础知识考察点:自定义函数及内部函数考察点

    1.变量的作用域和静态变量 函数的参数以及参数的引用传递 函数的返回值以及引用返回 外部文件的导入 系统内置函数的考察 变量的作用域也称为变量的范围,变量的范围即他定义上下文的背景(也是它生效的范围) ...

  5. Scala_单例对象

    在 Scala 中,是没有 static 这个东西的,但是它也为我们提供了单例模式的实现方法,那就是使用关键字 object. 对象的无参构造器在第一次使用时被调用,且单例对象没有有残构造器. Enu ...

  6. JavaWeb基础—HttpServletResponse

    HttpServletResponse对象代表服务器的响应. 这个对象中封装了向客户端发送数据.发送响应头,发送响应状态码的方法. 几个方法: 向客户端发送数据: getOutputStream() ...

  7. 20145209刘一阳《JAVA程序设计》第八周课堂测试

    第八周课堂测试 1.下面代码中共有(C)个线程? public class ThreadTest { public static void main(String args[]){ MyThread ...

  8. Mac下 通过 VMware Fusion 配置 windows 虚拟机的详细步骤

    内容中包含 base64string 图片造成字符过多,拒绝显示

  9. Python_sklearn机器学习库学习笔记(四)decision_tree(决策树)

    # 决策树 import pandas as pd from sklearn.tree import DecisionTreeClassifier from sklearn.cross_validat ...

  10. 微信小程序中的 hover-class

    微信小程序中,可以用 hover-class 属性来指定元素的点击态效果.但是在在使用中要注意,大部分组件是不支持该属性的. 目前支持 hover-class 属性的组件有三个:view.button ...