zoukankan      html  css  js  c++  java
  • 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的大小写之类的,给我提了个醒,以后要多加练习。

    即便不高谈理想,也要心存信仰。
  • 相关阅读:
    Topcoder SRM656div1 250 ( 期望DP )
    SCAU 2015 GDCPC team_training1
    第五次群赛暨清明节专场
    HDU 2783 You’ll be Working on the Railroad(最短路)
    HDU 4013 Distinct Subtrees(树的最小表示)
    HDU 4014 Jimmy’s travel plan(图计数)
    SCAU 2015 GDCPC team_training0
    HDU 1024 Max Sum Plus Plus (递推)
    UVA 12849 Mother’s Jam Puzzle( 高斯消元 )
    HDU 4285 circuits( 插头dp , k回路 )
  • 原文地址:https://www.cnblogs.com/fzlzc/p/10632799.html
Copyright © 2011-2022 走看看