• 20165223 实验一 Java开发环境的熟悉


    目录

    一、实验报告封面

    北京电子科技学院(BESTI)

    实 验 报 告

    课程 Java程序设计 班级 1652班
    姓名 蔡霓 学号 20165223
    成绩 指导教师 娄嘉鹏
    实验日期 2018年4月2日 实验密级 非密级
    预习程度 已预习 实验时间 13:45 - 15:25
    必修/选修 选修 实验序号

    实验名称:Java开发环境的熟悉

    实验目的

    1. 使用JDK编译、运行简单的Java程序;
    2. 使用IDEA编辑、编译、运行、调试Java程序;

    实验要求

    1. 学会使用IDEA调试程序,参考博客Intellj IDEA 简易教程
    2. 熟悉Linux下的各种命令的使用,参考博客Linux 基础入门(新版)
    3. 熟练掌握vim编辑器的使用,参考博客Vim编辑器
    4. 学会在命令行中调试Java程序参考博客Java中使用JDB

    实验知识点

    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程序开发

    0 参考实验要求

    1 建立“自己学号exp1”的目录

    2 在“自己学号exp1”目录下建立src,bin等目录

    3 javac,java的执行在“自己学号exp1”目录

    4 提交 Linux或Window或macOS中命令行下运行Java的全屏截图, 运行结果包含自己学号等证明自己身份的信息

    5 代码提交码云

    • 实验步骤与截图

    • 实验代码

    import java.util.Scanner;
    public class HelloCN {
    	public static void main (String args[]){
    		System.out.println("请输入学号:");
    		Scanner s = new Scanner(System.in);
    		String number = s.next();
    		System.out.println("Hello"+number+"蔡霓!"); 
    		System.out.println("Welcom JAVA World!");
    	}
    }
    

    (二)IDEA中的JAVA程序开发

    0 参考http://www.cnblogs.com/rocedu/p/6371315.html

    1 提交Linux或Window或macOS环境中IDEA中调试设置条件断点的全屏截图,截图打上自己学号的水印

    2 其他内容包括截图在实验报告中体现

    • 实验步骤与截图

    • 创建类HelloJDB

    • 点击RUN运行程序

    • 设置条件断点 i==50

    • Debug调试程序

    • 实验代码
    public class HelloJDB {
            public static void main(String[] args) {
                    int i = 5;
                    int j = 6;
                    int sum = add(i, j);
                    System.out.println(sum);
    
                    sum = 0;
                    for(i=0; i< 100; i++)
                            sum += i;
    
                    System.out.println(sum);
            }
    
            public static int add(int augend, int addend){
                    int sum = augend + addend;
                    return sum;
            }
    }
    

    (三)自主练习

    要求:通过命令行和IDEA两种方式实现,学号后两位与题目总数取余的结果再加1就是题号,在IDEA下练习调试程序

    题目(第6题):实现求排列数P(n,m)的功能,m,n从命令行输入,并进行测试(正常情况,异常情况,边界情况)

    • 实验分析

      • 排列数:P(n,m)=n!/(n-m)!
      • n和m的大小关系要求:0<m<=n
      • 阶乘的代码编写:
      result = 1;
      result = result*n;
      n--;
      
    • 实验代码

    import java.util.*;
    public class Pnm {
        static Scanner in=new Scanner(System.in);
        public static void main(String args[]) {
        System.out.println("请输入n:");
        int n = in.nextInt();
        System.out.println("请输入m:");
        int m=in.nextInt();
        count(n,m);
        }
        public static void count(int n,int m){
            if(n<m||n<0||m<=0){
                System.out.println("输入错误,请重新输入");
                System.out.println("确保0<m<=n");
                    return ;
            }
            int result=1;
            for (int i=0;i<m;i++){
                result*=n;
                n--;
            }
            System.out.println("Pnm="+result);
        }
    }
    
    • 实验步骤和截图
    • 命令行实现
      • 编写:vi src/Pnm.java
      • 编译:javac -d bin src/Pnm.java
      • 运行:java -cp bin Pnm

    正常情况(排列和全排列)

    异常情况(三种)

    边界情况(两种)

    • IDEA实现

    正常情况(排列和全排列)

    异常情况(三种)

    边界情况(两种)

    三、实验总结

    • 遇到的问题

    第二个实验中,相同的代码在IDEA中可以正常运行,但在命令行中会出现下面错误:

    将代码中的int i=0改为i=0即可:

    • 分析与总结
      第一次实验相相对较容易,于是我利用周末时间就完成了这次实验的三个小内容。因为前面五周的铺垫,对第一二部分掌握的熟练,很快就完成了。而在进行第三部分实验的时候,明显感受到有些力不从心,可以说根源还是在没法独立完成程序编写,对java编程的思想不够熟练。在本次实验中,我也分别感受了vim编辑器和IDEA各自的优缺点,学习了JDB调试,了解了调试对程序的重要性。在今后的学习中也要更多的使用IDEA进行编程,并且多联系JDB调试,争取掌握这项能力,提高编程效率。

    • 参考资料

    1. 实验一 Java开发环境的熟悉(Linux + Eclipse)
    2. Intellj IDEA 简易教程
    3. Linux 基础入门(新版)
    4. Vim编辑器
    5. Java中使用JDB
    6. Markdown页内跳转实现方法

    四、PSP时间

    实验步骤 耗时 百分比
    题目分析 5min 4%
    思路设计 10min 9%
    代码实现 70min 60%
    调试测试 20min 18%
    实验总结 10min 9%
  • 相关阅读:
    模式的作用就是解耦,解耦,再解耦,让事情变简单、可控制。
    系统的同构性分析
    “以客观事物(object)的形式来组织程序”
    String的indexOf()的三种情况
    关于finally关键字
    openSession和getCurrentSession的区别?
    eclipse括号跳转
    final修饰的类能不能创建一个对象
    使用svn从恢复到某个版本的时候会报错
    关于TableModel的中获取表格数据的问题
  • 原文地址:https://www.cnblogs.com/moddy13162201/p/8689234.html
Copyright © 2020-2023  润新知