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%

20175314 实验一 Java开发环境的熟悉的更多相关文章

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

    实验内容 命令行下Java程序开发 IDEA下Java程序开发.调试 练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) 实现凯撒密码,并进行测试 实验要求 使用JDK编译 ...

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

    实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...

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

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

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

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

  5. 20145225《Java程序设计》实验一 Java开发环境的熟悉(Linux + Eclipse)

    20145225<Java程序设计> 实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑 ...

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

    20145208实验一 Java开发环境的熟悉 使用JDK编译.运行简单的java程序 命令行下程序开发 在命令行下建立实验目录,然后创建并进入该目录后的子目录. 编译并运行一个代码 使用IDEA 编 ...

  7. 实验一 Java开发环境的熟悉(Linux + Eclipse)

    学号 20175206 实验一 <Java开发环境的熟悉>实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实 ...

  8. 实验一 Java开发环境的熟悉(Linux + Idea) 20175301李锦然

    https://gitee.com/ShengHuoZaiDaXue/20175301.git 实验一 Java开发环境的熟悉(Linux + Idea) 实验内容 1.使用JDK编译.运行简单的Ja ...

  9. 2018-2019-2 实验一 Java开发环境的熟悉

    实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA编辑.编译.运行.调试Java程序 实验知识点 1. JVM.JRE.JDK的安装位置与区别: 2. 命令行运行javac:ja ...

随机推荐

  1. 公众号及H5支付

    本篇主要记录微信支付中公众号及H5支付全过程. 1|1准备篇 公众号或者服务号(并开通微信支付功能).商户平台中开通JSAPI支付.H5支付. 1|2配置篇 公众号或者服务号中 -------开发-- ...

  2. 《Linux内核原理与分析》第六周作业

    课本:第五章 系统调用的三层机制(下) 中断向量0x80和system_call中断服务程序入口的关系 0x80对应着system_call中断服务程序入口,在start_kernel函数中调用了tr ...

  3. websocket 心跳重连

    websocket 的基本使用: var ws = new WebSocket(url); ws.onclose = function () { //something reconnect(); // ...

  4. Django项目在linux系统中虚拟环境部署

    1.在linux系统下,安装virtualenv 命令:pip install virtualenv 2.项目部署前的准备 1. Django web project deployment 1.1.  ...

  5. 使用mysqlproxy实现mysql读写分离

    先说一下什么是读写分离吧. 以三台虚拟机为例,搭建一主一从一代理,全部配置好之后,当从proxy插入数据时,该数据会同时插入主数据库,因为主从关系,从数据库也会有数据.当把从数据库执行slave st ...

  6. grep 使用

    如果需要搜索含空格的字符串,加双引号 | grep "cd /tmp" 参考链接 1.grep 后加单引号.双引号和不加引号的区别

  7. mac 中host设置方法

    在开发中,有的接口为了安全考虑,只能通过指定的域名去反问,这时本地启动的 localhost 就无法获取到数据,需要去更改电脑的host文件配置,下面介绍mac 电脑的设置方法 1. 打开终端,输入一 ...

  8. InnoDB存储引擎文件

    InnoDB存储引擎文件 MySQL数据库包括数据库本身的文件和存储引擎文件.数据库自身的文件由参数文件(my.cnf).错误日志文件.慢查询日志文件.查询日志文件.二进制日志文件.套接字文件.pid ...

  9. Centos7 下的SVN安装与配置

    Centos7 下的SVN安装与配置 1.关闭防火墙 临时关闭防火墙 systemctl stop firewalld 永久防火墙开机自关闭 systemctl disable firewalld 临 ...

  10. Delphi IdHTTP1下载文件防止假死 (

    在Form1中添加控件:两个Indy控件:IdAntiFreeze1,IdHTTP1;一个按钮 :Button1;一个进度条 :ProgressBar1 显示下载速度 procedure TForm1 ...