20145210姚思羽《Java程序设计》实验一实验报告

实验一 Java开发环境的熟悉(Linux + Eclipse)

实验内容

1.使用JDK编译、运行简单的Java程序;

2.使用Eclipse 编辑、编译、运行、调试Java程序。

实验知识点

1.JVM、JRE、JDK的安装位置与区别;

2.命令行运行javac;java;javac -cp; java -cp;

3.PATH,CLASSPATH,SOURCEPATH的设定方法与应用;

4.包管理:package;import;javac -d ;

5.Eclipse(Netbeans)管理Java项目,调试:断点、单步执行等;

6.Java基础语法:类型与类型转换;变量;运算符;流程控制等;

7.JDK帮助文档的使用。

实验步骤

(一)命令行下 Java 程序开发

•JVM:(JAVA虚拟机)JVM是Java程序的操作系统,有了JVM,Java程序就可以达到“编辑一次,到处执行”的跨平台目的。JVM的可执行文件就是.class文档。

•JRE:(Java运行时环境)JRE是Java执行环境,包括Java SE API 与JVM、部署技术。

•JDK:(Java开发工具包)编译程序的工具程序由JDK提供,包括Java程序语言、工具程序与JRE。

•三者区别:

  •JDK 是用于开发的,而 JRE 是用于运行 Java 程序的
 
  •JDK 和 JRE 都包含了 JVM,从而使得我们可以运行 Java 程序

  •JVM 是java 编译程序的核心并且具有平台独立性

  •我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用

•以下为 JDK 与 JRE 的安装位置:

•编写.java 程序,运行javac后出现.class 文件:

(二)IDEA 下 Java 程序开发、调试

•首先新建一个窗口:点击右上角 File-New-Progect,弹出一个窗口,勾选其中的 Java 选项:

•给新的项目起一个名字:

•在 src 处右键新建 java 程序:

•运行程序:

import java.util.Scanner;

public class Exp1{
    public static void main(String[] args){
        System.out.println("请输入你的名字:");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.next();
        System.out.println("Hi " + name);
    }
}

•运行结果:

•断点调试:

  •在 IDEA 中选定要设置断点的代码行,在该行最左边单击鼠标左键

  •开启调试会话

•单步调试:

  •step over:点击图示中向下的箭头,程序向下执行一行

  •step into:点击step over 右边的斜向下的箭头,程序向下执行一行,如果该行有自定义方法,则运行进入自定义方法

(三)练习

•题目:实现凯撒密码,并进行测试

•代码如下:

import java.io.*;
import java.util.Scanner;

public class Caesar {
    public static void main(String[] args){
        System.out.print("请输入密钥:");
        Scanner s = new Scanner(System.in);
        int a = s.nextInt();
        C(a);
    }


    public static void C(int n){
        try{
            char b[];
            BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("请输入一段明文:");
            String str2 = br2.readLine();
            b = str2.toCharArray();
            System.out.println("密文为:");
             int k = n;
            for(int i = 0;i < str2.length();i++){
                char ch = (char)((b[i] - 'a' +k)%26 +'a');
                System.out.print(ch);
            }
            System.out.println("密钥 K = " + k);
        }catch(IOException e){
            System.out.println(e.getMessage());
        }
    }
}

•运行结果如下:

问题及解决

•问题:平常对于凯撒密码的加一个数字模26还是比较理解的,但是编写代码的时候却无从下手

•解决:采取数组的形式,把输入的数字放在一个数组里,然后一个一个进行加密,具体代码如下:

 for(int i = 0;i < str2.length();i++){
                char ch = (char)((b[i] - 'a' +k)%26 +'a');
                System.out.print(ch);
            }

本次实验的 PSP(Personal Software Process) 时间:

步骤 耗时 百分比
需求分析 40min 18.2%
设 计 50min 22.7%
代码实现 60min 27.3%
测 试 30min 13.6%
分析总结 40min 18.2%

posted on 2016-04-10 15:45  20145210姚思羽  阅读(427)  评论(3编辑  收藏  举报

导航