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的大小写之类的,给我提了个醒,以后要多加练习。

2018-2019-2-20175225 实验一 《Java开发环境的熟悉》实验报告的更多相关文章

  1. 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...

  2. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20175316 盛茂淞 2018-2019-2 <Java程序设计>实验一 Java开发环境的熟悉 实验报告 一.实验要求 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA ...

  3. 20165327《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20165327<Java程序设计>实验二 <Java面向对象程序设计>实验报告 实验二 <Java面向对象程序设计> 一.实验报告封面 课程:Java程序设计 班 ...

  4. 20165205 实验一 java开发环境的熟悉 实验报告

    20165205 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:刘喆君 学号:20165205 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验 ...

  5. 20162327实验一Java开发环境的熟悉实验报告

    20162327 <程序设计与数据结构>第一次实验报告 基础知识 1.JDB的使用 使用JDB调试程序需要以下五个步骤: 1.设置断点 stop in 2.run 3.print 4.ne ...

  6. 实验一Java开发环境的熟悉

    实验一Java开发环境的熟悉 实验内容 •命令行下Java程序开发 •IDEA下Java程序开发.调试 •练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) •实现凯撒密码 ...

  7. 20175316 盛茂淞 实验一 Java开发环境的熟悉

    20175316 盛茂淞 实验一 Java开发环境的熟悉 实验目的 使用JDK编译.运行简单的Java程序 实验要求 1.建立"自己学号exp1"的目录 2.在"自己学号 ...

  8. 20155327实验一 Java开发环境的熟悉

    20155327实验一 Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的java程序 2.使用IDEA编辑.编译.运行.调试java程序 实验步骤 1.使用JDK编译.运行简单的jav ...

  9. 20165233 实验一 Java开发环境的熟悉

    20165233 实验一 Java开发环境的熟悉 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 2.完成实验.撰写实验 ...

  10. 20155231 java实验一 Java开发环境的熟悉

    20155231 java实验一 Java开发环境的熟悉 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 完成实验.撰写实验 ...

随机推荐

  1. dpdk-18.11网卡多队列RSS设置

    背景 最近在做将基于dpdk-16.11.1开发的程序,转移到基于dpdk-18.11版本下开发.遇到了网卡RSS配置的问题,在这里纪录一下. 问题 dpdk-16.11.1 在dpdk-16.11. ...

  2. Python 安装 (win10)

    1. 下载python 网址: python.org 版本: 2.7 安装包名字: Windows x86-64 MSI installer 一路next. 2. 配置环境变量: path 里面添加p ...

  3. vedio-js的视频插件用法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. scrollbar样式设置

    转载:https://segmentfault.com/a/1190000012800450?utm_source=tag-newest author:specialCoder 一 前言 在CSS 中 ...

  5. 北京2018网络赛A题

    题意:给你一个迷宫,迷宫有开始节点和结束节点,问你从开始走到结束的最小时间,其中,#代表这个点有毒气,身上必须带着氧气瓶才行,B代表每次进入这个点可以带一个氧气瓶,最多身上带五个,P代表进入这个点加速 ...

  6. magento 由于Httpd进程增多,导致CPU占用100%问题

    由于Httpd进程增多,导致CPU占用100%问题 magento for version 2.2.3 前些天一直导致CPU无法控制的增多问题. 根据报错我设置了如下内容: [Mysql]mysql. ...

  7. yii2在控制器中调用另一个控制器方法

    Yii::$app->runAction(控制器/方法名);

  8. css:a:visited限制

    :active 对于:active伪类可以在div上生效.没有限制 :visited使用限制 :visited只适用于带href的a标签.如果给a标签绑定了click事件,那跳转的url必须跟href ...

  9. 洛谷P3159 交换棋子 神奇的网络流

    神奇的建模...原题链接 如果你真的把交换看成交换,就\(GG\)了.首先我们要把交换看成是白棋的移动. 然后,很容易的就想到建模的大致思路:建立超级源点S和超级汇点T,从S向初始局面每个白棋所在的格 ...

  10. (二叉树 BFS) leetcode 107. Binary Tree Level Order Traversal II

    Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...