20145226夏艺华 《Java程序设计》实验报告一

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

实验内容

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

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

实验步骤

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

  • 首先双击桌面上的Xface终端图标,打开终端(类似Windows下的cmd),之后会自动运行shell程序,如下图所示:

  • 输入cd Code命令进入Code目录,如下图所示:

  • 输入mkdir 20135100 命令建立实验目录,使用ls命令或dir命令查看建立的目录情况。如下图所示:

  • 输入mkdir exp1建立第一个实验目录,然后输入cd exp1进入实验一目录,可以输入pwd命令查看当前工作路径,如下图所示:

  • 输入gedit Hello.java或vim Hello.java(建议大家花点时间学习一下Vim)编辑Hello.java,并输入以下代码:

package xyh;
import java.util.Scanner;
public class Hello{
    public static void main(String[] args){
        System.out.println("Input your first name, please:");
        Scanner s = new Scanner(System.in);
        String name = s.next();
        System.out.println("Hello " + name + " !");
    }
}

上图中敲代码时敲掉了一个“;”。

  • 输入javac -d . Hello.java命令编译代码,输入java xyh.Hello命令运行
    程序。结果如下图所示:
  • 修改代码后再次运行:

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

  • 打开IDEA,如下图所示:

  • 在IDEA中单击Create New Project,如下图所示:

  • 输入项目名称xyh,并单击Finish按钮完成新建项目,如下图所示:

  • 新建Java类,输入代码:

/**
 * Created by XiaYihua on 2017/1/29.
 */
import java.util.Scanner;

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

  • 单击运行按钮(或使用Ctrl+F11快捷键),就可以在控制台(Console)中看到运行结果。如下图所示:

  • 单击Window->Open Perspective->Debug打开调试视图,设置断点并单步运行,如下图所示:



(三)练习实现凯撒密码,并进行测试

  • 凯撒密码代码如下:
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());
        }
    }
}

运行结果:

问题

凯撒密码移位操作的实现?

解决

采取数组的形式,把输入的数字放在一个数组里,然后逐个进行移位加密,核心代码如下:

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 @ 2017-01-31 12:32  夏艺华20145226  阅读(411)  评论(0编辑  收藏  举报