2018-2019-2-20175225 实验一 《Java开发环境的熟悉》实验报告

2018-2019-2-20175225 实验一 《Java开发环境的熟悉》实验报告

一、实验内容及知识点

  • 实验内容

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

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

  • 实验知识点

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

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

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

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

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

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

    7. JDK帮助文档的使用。

二、实验步骤

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

  • 根据要求建立2175214/exp1的目录

  • 20175214/exp1目录下建立src,bin等目录

  • src目录输入vim Hello.java进入编译界面,输入如下程序:

  • 使用cd ..返回到exp目录下,输入javac -d bin src/Hello.java将源代码编译到bin目录下;

  • 输入java -cp bin Hello运行程序,输入名字,得到结果。

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

  • 1、创建HelloJDB项目,在该项目下创建HelloJDB类,并输入代码:

  • 2、点击run运行代码(或快捷键Alt+Shift+F10):

  • 3、在要求的行数左边点击一下,设置断点(Ctrl+F8),然后点击Debug(Alt+Shift+F9),得到如下结果:

  • 4、然后单击菜单「Run」->「Debug...」Alt+Shift+F9)开始调试Java程序,得到如下结果:

  • 5、点击Step intoF7)或者StepOverF8)来使程序运行到下一步;

    • PS: Step into可以进入方法运行下一步,而Step Over是直接运行完方法.
  • 6、设置条件断点,将程序里i的值设置为50:

  • 7、点击Resume(或快捷键F9)直接运行程序到下一个断点,也就是上一步设置的条件断点:

(三)练习

  • 1、题目选择:学号20175214,做第六题:
第六题: 实现求排列数P(n,m)的功能,m,n从命令行输入,并进行测试(正常情况,异常情况,边界情况)。
  • 2、设计分析:排列式公式P(n,m)=n!/(n-m)!0<m<=n,m可以等于0,n不能等于0,P(n,0)=1

  • 3、编程实现:

import java.util.*;

public class Permutation {
    public static void main(String args[]) {
        Calculate Calculate = new Calculate();

        System.out.println("Please input n:");
        Scanner reader1 = new Scanner(System.in);      //输入n
        int n = reader1.nextInt();
        System.out.println("Please input m:");
        Scanner reader2 = new Scanner(System.in);      //输入m
        int m = reader2.nextInt();
        if (n <= 0 || m < 0 || n < m) {                //排除异常情况
            System.out.println("Input error:!");
            System.exit(1);
        }
        int Result = Calculate.result(n, m);
        System.out.println("The result is: " + Result);  //输出结果
    }
}

class Calculate {                         //计算排列数
    int x, p, q;

    public int result(int n, int m) {     //计算结果并返回
        p = Factorial(n);                 //调用阶乘方法
        q = Factorial(n - m);
        return (p / q);                   //返回结果
    }

    public int Factorial(int a) {         //计算阶乘
        if (a > 0) {
            x = 1;
            for (int i = 1; i <= a; i++) {
                x = x * i;
            }
            return x;
        } else return 1;
    }

}
  • 4、程序测试

    - 正常情况
    


  - 异常情况


  - 边界情况


  • 5、遇到的问题
    • 1、运行输入3 3出现如下报错:

    • 解决:通过调试,以及测试其他数据,发现是阶乘方法未考虑参数为零的情况,修改成如下后解决:

三、实验体会与总结

  • 这次是第一次用IDEA进行调试,比JDB好用,快捷得多,界面也更加友好,快捷键不够熟练,平时用多试试。

  • 平时在学习Java的过程中,我大多都是在原样敲书里的代码,没有自己的思考,这次实验是真正自己设计并测试的程序,但是出现了很多我以前以为不会出现的愚蠢的错误,比如scanner的大小写之类的,给我提了个醒,以后要多加练习。

即便不高谈理想,也要心存信仰。
原文地址:https://www.cnblogs.com/fzlzc/p/10632799.html