20165214 实验一 Java开发环境的熟悉
20165214 实验一 Java开发环境的熟悉
一、实验报告封面
课程:Java程序设计 班级:1652班 姓名:朱文远 学号:20165214
指导教师:娄嘉鹏 实验日期:2018年4月2日
实验时间:13:45 - 15:25 实验序号:一
实验名称:Java开发环境的熟悉
实验目的与要求:
1、完成实验、撰写实验报告,注意实验报告重点是运行结果,遇到的问题以及分析。
2、实验报告中统计自己的PSP(Personal Software Process)时间;
3、掌握使用IDEA完成基础编程与程序调试的能力。
二、实验内容:
1、使用JDK编译、运行简单的Java程序;
2、使用IDEA 编辑、编译、运行、调试Java程序。
三、实验步骤
(一)命令行下Java程序开发
建立“2165214/exp1”的目录
在“20165214/exp1”目录下建立src,bin等目录
在“src”目录输入
vi Hello.java
进入编译界面,输入如下程序:
使用
cd ..
返回到“exp”目录下,输入javac -d bin src/Hello.java
将源代码编译到“bin”目录下;接着再输入java -cp bin zwy.Hello
运行程序,接着输入“朱文远”,得到结果。最后使用tree来查看目录结构,如下图:
(二)IDEA下Java程序开发、调试
1、创建“HelloJDB”项目,在该项目下创建“HelloJDB”类,并输入代码:
2、点击“run”运行代码(或快捷键Alt+Shift+F10):
3、在要求的行数左边点击一下,设置断点(或快捷键Ctrl+F8),然后点击Debug(或者使用快捷键Alt+Shift+F9),得到如下结果:
4、点击“Step into”(或快捷键F7)或者“StepOver”(或快捷键F8)来使程序运行到下一步
- 4.1这里我们要清楚,Step into可以进入方法运行下一步,而Step Over是直接运行完方法。这里我们使用Step over,得到如下结果:
- 4.1这里我们要清楚,Step into可以进入方法运行下一步,而Step Over是直接运行完方法。这里我们使用Step over,得到如下结果:
5、设置条件断点,将程序里i的值设置为50:
6、点击Resume(或快捷键F9)直接运行程序到下一个断点,也就是上一步设置的条件断点:
(三)练习
- 1、题目:我的学号14%9再+1等于6,所以我需要完成第六题: 实现求排列数P(n,m)的功能,m,n从命令行输入,并进行测试(正常情况,异常情况,边界情况)。
- 2、分析:要清楚排列式的计算方法为
P(n,m)=n!/(n-m)!
,且要求0<m<=n
,m可以等于0,n不能等于0(数学规定P(n,0)=1
)。 - 3、编程:进入新创建的“20165214zwy”项目,编写代码
Pratice.java\主函数
import java.io.*;
import java.util.*;
public class Pratice {
public static void main(String args[]) {
Count count=new Count();
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();
try {
count.sum(n,m);
int total= count.getTotal();
System.out.println("结果为"+total);
}
catch(WrongException e)
{
System.out.println("输入出现错误");
System.out.println(e.Mess());
}
}
}
Count.java\计算
class Count{
int jie,N,M;
public void sum(int n,int m) throws WrongException { //计算结果
if(n<=0||m<0||n<m){
throw new WrongException("确保n>0,m>=0且n<=m!"); //当输入错误时抛出异常
}
N = Jiecheng(n);
M = Jiecheng(n-m);
}
public int Jiecheng(int a){ //计算阶乘
jie=1;
for(int i=1;i<=a;i++){
jie=jie*i;
}
return jie;
}
public int getTotal() { //返回计算值
return (N/M);
}
}
WrongException.java\自定义异常类
class WrongException extends Exception { //自定义异常
String Message;
public WrongException(String s) {
Message = s;
}
public String Mess( ){
return Message;
}
}
4、测试
4.1、IDEA测试:
正常情况:
异常情况(3种):
①
②
③边界情况(2种):
①
②
4.2、命令行测试:
正常情况:
异常情况(3种):
①
②
③边界情况(2种):
①
②
测试结果正确。
四、遇到的问题
- 问题1:
- 问题1解决方案:错误没有定义N,M就直接使用。第一次改的时候我是把定义放在方法sum里面,然后发现还是不能通过,错误原因是getTotal方法中的N,M没有定义。这就引发了我的思考。为什么在前面的sum类定义的不能在后面的使用呢?当我把N,M的定义放到方法外去,再编译,程序就能运行出来了。想了一会,想起来之前看过:局部变量的范围只是在方法内。于是我的问题就解决了。
- 问题2:
- 问题2解决方案:方法在声明要产生的异常时应该使用的是关键字throws而不是throw。
五、感想与收获
平时在学习Java的过程中,我们大多都在跟着书里面敲代码,即时是课后的题目,在教材里都可以找到相似的问题。这次实验在做练习题的时候,才能算得上是真正的自己设计一个Java程序。虽然花的时间比较多,但是收获也很多。这次练习应用了很多方面的内容,把目前为止学的内容都给串了起来,巩固了以前的知识,也学会了将各个模块的知识结合在一起,收获很大。
还有一点感受就是,要想学好Java,一定要多练习代码。这里的练习指的不是照搬照抄写,而是找一些题目来自己练习。
本来还想根据第十章的内容把这个问题设计成有对话框的程序。尝试了一会,失败了。。第十章还不够扎实,接下来得再花时间来补一补,争取在下次实验实现这个想法。
五、[码云链接](https://gitee.com/BESTI-IS-JAVA-2018/20165214ZWY/tree/master/20165214/
六、PSP时间
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 5min | 5% |
设计 | 10min | 10% |
代码实现 | 60min | 60% |
测试 | 3min | 3% |
分析总结 | 22min | 22% |
20165214 实验一 Java开发环境的熟悉的更多相关文章
- 20145205 实验一 Java开发环境的熟悉
实验内容 命令行下Java程序开发 IDEA下Java程序开发.调试 练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) 实现凯撒密码,并进行测试 实验要求 使用JDK编译 ...
- 实验一 Java开发环境的熟悉
实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...
- 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...
- 实验一Java开发环境的熟悉
实验一Java开发环境的熟悉 实验内容 •命令行下Java程序开发 •IDEA下Java程序开发.调试 •练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) •实现凯撒密码 ...
- 20145225《Java程序设计》实验一 Java开发环境的熟悉(Linux + Eclipse)
20145225<Java程序设计> 实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑 ...
- 20145208实验一 Java开发环境的熟悉
20145208实验一 Java开发环境的熟悉 使用JDK编译.运行简单的java程序 命令行下程序开发 在命令行下建立实验目录,然后创建并进入该目录后的子目录. 编译并运行一个代码 使用IDEA 编 ...
- 实验一 Java开发环境的熟悉(Linux + Eclipse)
学号 20175206 实验一 <Java开发环境的熟悉>实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实 ...
- 实验一 Java开发环境的熟悉(Linux + Idea) 20175301李锦然
https://gitee.com/ShengHuoZaiDaXue/20175301.git 实验一 Java开发环境的熟悉(Linux + Idea) 实验内容 1.使用JDK编译.运行简单的Ja ...
- 2018-2019-2 实验一 Java开发环境的熟悉
实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA编辑.编译.运行.调试Java程序 实验知识点 1. JVM.JRE.JDK的安装位置与区别: 2. 命令行运行javac:ja ...
随机推荐
- Vue.js,select中的option用ajax想循环控制值的显示 v-model可以实现但提示报错,这是为什么?
应该将v-model换成:value,因为v-model只能绑定一个值,无法绑定多个值 <select v-model="citys"> <optio ...
- Luffy之虚拟环境.项目搭建,目录日志等配置信息
1. 项目开发前 1.1 虚拟环境virtualenv 如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新版本会覆盖以前的 ...
- python基础之字符串以及切片等操作
1.字符类型 1.整型 int 2. str 字符串 3.bool 布尔值 4.list 表格,常用于大量数据的存储 用[ ]表示 5.tuple 元祖 ,不能发生改变()表示 6.dict 字 ...
- c 语言连续输入字符型数据
#include<stdio.h> #include<stdlib.h> void Input1(char* &str){ // /* 这种情况下想要逐个输入字符串数组 ...
- 第一阶段——站立会议总结DAY01
1.昨天做了什么:无 2.今天准备做什么:准备开始做个人中心界面,首先是创建页面 3.遇到的困难:“无从下手”,怕写完某个界面之后就会找不到相关的名字接口什么的.
- win7 64安装msyql
https://www.cnblogs.com/orrz/p/5456247.html 1:下载安装包,等待等待的过程,OK,在短暂的等待后,下载完成,解压先,简单起见,解压到D盘吧,D:\mysql ...
- js定义类
以下是es5标准里定义类的方法: function Point(x,y){ this.x=x; this.y=y; } Point.prototype.toString=function(){ ret ...
- Python---字典常用方法总结
字典是一种key-value的数据类型,字典里必须写Key和value,字典的优点是取数方便和速度快.字典的特性: 1.字典是无序的,因为它没有下标,用key来当索引,所以是无序的 2.字典的key必 ...
- Ubuntu 14.04(64位)+GTX970+CUDA8.0+Tensorflow配置 (双显卡NVIDIA+Intel集成显卡) ------本内容是长时间的积累,有时间再详细整理
(后面内容是本人初次玩GPU时,遇到很多坑的问题总结及尝试解决办法.由于买独立的GPU安装会涉及到设备的兼容问题,这里建议还是购买GPU一体机(比如https://item.jd.com/396477 ...
- spring context 继承
<web-app> <display-name>Archetype Created Web Application</display-name> <conte ...