2018-2019-2-20175225 实验一 《Java开发环境的熟悉》实验报告
2018-2019-2-20175225 实验一 《Java开发环境的熟悉》实验报告
一、实验内容及知识点
实验内容
1.使用JDK编译、运行简单的Java程序;
2.使用IDEA编辑、编译、运行、调试Java程序。
实验知识点
JVM、JRE、JDK的安装位置与区别;
命令行运行javac;java;javac -cp; java -cp;
PATH,CLASSPATH,SOURCEPATH的设定方法与应用;
包管理:package;import;javac -d ;
IDEA管理Java项目,调试:断点、单步执行等;
Java基础语法:类型与类型转换;变量;运算符;流程控制等;
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 into(F7)或者StepOver(F8)来使程序运行到下一步;- PS:
Step into可以进入方法运行下一步,而Step Over是直接运行完方法.

- PS:
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开发环境的熟悉》实验报告的更多相关文章
- 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...
- 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20175316 盛茂淞 2018-2019-2 <Java程序设计>实验一 Java开发环境的熟悉 实验报告 一.实验要求 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA ...
- 20165327《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20165327<Java程序设计>实验二 <Java面向对象程序设计>实验报告 实验二 <Java面向对象程序设计> 一.实验报告封面 课程:Java程序设计 班 ...
- 20165205 实验一 java开发环境的熟悉 实验报告
20165205 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:刘喆君 学号:20165205 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验 ...
- 20162327实验一Java开发环境的熟悉实验报告
20162327 <程序设计与数据结构>第一次实验报告 基础知识 1.JDB的使用 使用JDB调试程序需要以下五个步骤: 1.设置断点 stop in 2.run 3.print 4.ne ...
- 实验一Java开发环境的熟悉
实验一Java开发环境的熟悉 实验内容 •命令行下Java程序开发 •IDEA下Java程序开发.调试 •练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) •实现凯撒密码 ...
- 20175316 盛茂淞 实验一 Java开发环境的熟悉
20175316 盛茂淞 实验一 Java开发环境的熟悉 实验目的 使用JDK编译.运行简单的Java程序 实验要求 1.建立"自己学号exp1"的目录 2.在"自己学号 ...
- 20155327实验一 Java开发环境的熟悉
20155327实验一 Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的java程序 2.使用IDEA编辑.编译.运行.调试java程序 实验步骤 1.使用JDK编译.运行简单的jav ...
- 20165233 实验一 Java开发环境的熟悉
20165233 实验一 Java开发环境的熟悉 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 2.完成实验.撰写实验 ...
- 20155231 java实验一 Java开发环境的熟悉
20155231 java实验一 Java开发环境的熟悉 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 完成实验.撰写实验 ...
随机推荐
- springboot mybatis 整合
新建项目在上一篇. 第二步:创建表和相应的实体类 实体类:user.java package com.qtt.im.entity; import java.io.Serializable; publi ...
- MySQL中的用户与授权
grant all on *.* to root@'192.168.20.49'; grant select on *.* to root@192.168.20.49 ; -- dba 可以查询 My ...
- Java数据库学习之SQL语句动态拼接
public class UserDaoImpl implements UserDao { @Override public List<User> getUserByPage(PageIn ...
- nginx的配置与应用
Nginx在应用程序中主要有以下作用(应用):1.解决跨域.2.请求过滤.3.配置Gzip.4.负载均衡.5.静态资源服务器. Nginx的配置结构 Nginx主要是通过修改配置文件nginx.con ...
- mybatis-generator自动生成代码插件
mybatis自动生成代码(实体类.Dao接口等)是很成熟的了,就是使用mybatis-generator插件. 它是一个开源的插件,使用maven构建最好,可以很方便的执行 插件官方简介: http ...
- [PRIMITIVE TECHNOLOGY]澳洲小哥的黑皮豆/black been/摩顿湾板栗(栗子)/Moreton Bay Chestnut
wiki:https://en.wikipedia.org/wiki/Castanospermum inner:http://blog.sciencenet.cn/blog-309517-770951 ...
- ArrayDataProvider数据分页
模型 public function search($page=10){ $lists = self::find()->orderBy('id DESC')->all(); $dataPr ...
- Educational Codeforces Round 63 (Rated for Div. 2)
传送门 A. Reverse a Substring 题意: 给你一串 s,让你判断能否通过反转区间[l,r]的元素,使得反转后的串的字典序小于 s: 如果能,输出 "YES",并 ...
- redis3.2.10单实例安装测试
redis3.2.10单实例安装测试 主要是实际使用环境中使用,为了方便快速部署,特意记录如下: # root用户 yum -y install make gcc-c++ cmake bison-de ...
- 贝叶斯A/B测试 - 一种计算两种概率分布差异性的方法过程
1. 控制变量 0x1:控制变量主要思想 科学中对于多因素(多变量)的问题,常常采用控制因素(变量)的方法,吧多因素的问题变成多个单因素的问题.每一次只改变其中的某一个因素,而控制其余几个因素不变,从 ...