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. springboot mybatis 整合

    新建项目在上一篇. 第二步:创建表和相应的实体类 实体类:user.java package com.qtt.im.entity; import java.io.Serializable; publi ...

  2. MySQL中的用户与授权

    grant all on *.* to root@'192.168.20.49'; grant select on *.* to root@192.168.20.49 ; -- dba 可以查询 My ...

  3. Java数据库学习之SQL语句动态拼接

    public class UserDaoImpl implements UserDao { @Override public List<User> getUserByPage(PageIn ...

  4. nginx的配置与应用

    Nginx在应用程序中主要有以下作用(应用):1.解决跨域.2.请求过滤.3.配置Gzip.4.负载均衡.5.静态资源服务器. Nginx的配置结构 Nginx主要是通过修改配置文件nginx.con ...

  5. mybatis-generator自动生成代码插件

    mybatis自动生成代码(实体类.Dao接口等)是很成熟的了,就是使用mybatis-generator插件. 它是一个开源的插件,使用maven构建最好,可以很方便的执行 插件官方简介: http ...

  6. [PRIMITIVE TECHNOLOGY]澳洲小哥的黑皮豆/black been/摩顿湾板栗(栗子)/Moreton Bay Chestnut

    wiki:https://en.wikipedia.org/wiki/Castanospermum inner:http://blog.sciencenet.cn/blog-309517-770951 ...

  7. ArrayDataProvider数据分页

    模型 public function search($page=10){ $lists = self::find()->orderBy('id DESC')->all(); $dataPr ...

  8. Educational Codeforces Round 63 (Rated for Div. 2)

    传送门 A. Reverse a Substring 题意: 给你一串 s,让你判断能否通过反转区间[l,r]的元素,使得反转后的串的字典序小于 s: 如果能,输出 "YES",并 ...

  9. redis3.2.10单实例安装测试

    redis3.2.10单实例安装测试 主要是实际使用环境中使用,为了方便快速部署,特意记录如下: # root用户 yum -y install make gcc-c++ cmake bison-de ...

  10. 贝叶斯A/B测试 - 一种计算两种概率分布差异性的方法过程

    1. 控制变量 0x1:控制变量主要思想 科学中对于多因素(多变量)的问题,常常采用控制因素(变量)的方法,吧多因素的问题变成多个单因素的问题.每一次只改变其中的某一个因素,而控制其余几个因素不变,从 ...