zoukankan      html  css  js  c++  java
  • 20175314 实验一 Java开发环境的熟悉

    20175314 实验一 Java开发环境的熟悉

    一、实验报告封面

    课程:Java程序设计 班级:1753班 姓名:薛勐 学号:20175314
    指导教师:娄嘉鹏 实验日期:2019年4月2日
    实验时间:13:45 - 15:25 实验序号:一
    实验名称:Java开发环境的熟悉
    实验目的与要求:
    1、完成实验、撰写实验报告,注意实验报告重点是运行结果,遇到的问题以及分析。
    2、实验报告中统计自己的PSP(Personal Software Process)时间;
    3、掌握使用IDEA完成基础编程与程序调试的能力。

    二、实验内容

    1、使用JDK编译、运行简单的Java程序;
    2、使用IDEA 编辑、编译、运行、调试Java程序。
    3、完成实验,撰写实验报告,注意实验报告重点是运行结果,遇到的问题以及分析。
    4、实验报告中统计自己的PSP(Personal Software Process)时间;
    5、掌握使用IDEA完成基础编程与程序调试的能力。

    三、实验步骤

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

    • 建立“175314.exp1”的目录

    • 在“175314.exp1”目录下建立src,bin等目录

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

    • 使用cd ..返回到“175314.exp1”目录,输入javac -d bin src/Hello.java将源代码编译到“bin”目录,再输入java -cp bin xuem.Hello运行程序,接着再输入“薛勐”,得到结果。

    • 最后使用tree来查看目录结构,如下图(后来改过文件名):

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

    • 创建“HelloJDB”项目,在该项目下创建“HelloJDB”类,并输入代码,点击“run”运行代码(Alt+Shift+F10):

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

    • 点击“Step into(进入方法运行下一步)”(F7)或者“StepOver(直接运行完方法)”(F8),得到如下结果:

    • 设置条件断点,将程序里i的值设置为50:

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

    (三)练习

    • 题目:我的学号14%9+1=6,故需要完成第六题: 实现求排列数P(n,m)的功能,m,n从命令行输入,并进行测试(正常情况,异常情况,边界情况)。

    • 编程:进入新创建的“175314.exp1”项目,编写代码:

    public class Permutation {
        public static void main(String args[]) {
            Calculate Calculate = new Calculate();
            int n,m;
            n = Integer.parseInt(args[0]);
            m = Integer.parseInt(args[1]);
            if (n<=0||m<0||n<m) {             //排除异常情况
                System.out.println("请确保n>0,m>=0且n>=m!");
                System.exit(1);
            }
            int Result = Calculate.result(n, m);
            System.out.println("结果是:"+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) {         //计算阶乘
                x=1;
                for (int i=1;i<=a;i++) {
                    x=x*i;
                    }
                return x;
                }
    }
    
    • 命令行测试

    正常情况:

    异常情况:

    边界情况:

    测试结果符合要求

    • IDEA测试

    正常情况:

    异常情况:



    边界情况:


    测试结果符合要求

    四、遇到的问题

    关于最后的练习,我开始没有注意到要求“m,n从命令行输入”,所以最早使用的是Scanner语句进行参数输入,后来对代码进行了修改,利用Integer.parseInt(args[ ])语句在终端java的时候一起输入参数。
    修改前:

            import java.util.*;
            ...
            System.out.println("请输入总数n");//输入总的个数
            Scanner a = new Scanner(System.in);
            int n = a.nextInt();
            System.out.println("请输入个数m");//输入要选的个数
            Scanner b = new Scanner(System.in);
            int m = b.nextInt();
    

    修改后:

            int n,m;
            n = Integer.parseInt(args[0]);
            m = Integer.parseInt(args[1]);
    

    由上可得:命令行输入可以简化代码...(目前发现的唯一优势)

    五、感想与收获

    本次实验我的题目考察递归算法,一开始不会命令行输入,后来请教同学学习了命令行输入,所以我决定在Ubentu上的测试使用新代码进行命令行输入,在IDEA上的测试使用原代码是非命令行输入。
    平时Java的学习过程都是照着书上敲代码,这次实验的练习题,才能算得上是真正意义上自己设计一个Java程序。这次练习应用了很多方面的知识内容,目前所学的内容都基本用上了,巩固了以前的知识,也学会了将各个模块的知识结合在一起,虽然花的时间很多,跨度很长(断断续续地做了一周才完成),但是收获也很大。要想学好Java,一定要多练习代码。这里的练习指的不是照搬照抄,而是找一些简单的程序项目来自己进行设计练习。
    使用IDEA让我找回了过去学习C语言使用Dev-C++时编译运行的快捷和调试的便捷的感觉,虽然已经习惯使用了Ubentu编写Java程序,但我还是会在以后更多的尝试使用IDEA以做好未来Android开发实验的准备。
    做完本实验马上就要开始着手结对学习的任务,希望能很快从中发现结对学习的优越性。

    六、码云链接

    七、Personal Software Process时间

    步骤 耗时 百分比
    需求分析 10 5%
    设计 30 17%
    代码实现 80 44%
    测试 30 17%
    分析总结 30 17%
  • 相关阅读:
    [JavaScript] 根据字符串宽度截取字符串
    [JavaScript] 时间戳格式化为yyyy-MM-dd日期
    [JavaScript] 获取昨日前天的日期
    [As3.0] 获取本机信息
    [CSS3] 几种分割线实现方法
    [JS] js 判断用户是否在浏览当前页面
    [JS] 理解jquery的$.extend()、$.fn和$.fn.extend()
    [JS] 屏蔽右键
    [JS] jq绑定事件的参数传递
    [CSS3] 各种角度的三角形绘制
  • 原文地址:https://www.cnblogs.com/SANFENs/p/10617744.html
Copyright © 2011-2022 走看看