实验要求

  1. 使用JDK编译、运行简单的Java程序;

  2. 使用IDEA 编辑、编译、运行、调试Java程序。

实验内容

命令行下Java程序开发

  • 打开windows下的cmd → 输入cd Code命令进入Code目录 → 输入md 20155321test建立以自己学号命名的文件夹 → 输入cd 2015531`test进入文件夹 → 输入md exp1建立“实验一”文件夹 → 输入cd exp1进入“实验一”文件夹

  • 利用vim编辑器编辑java程序并在命令行环境下进行编译、运行

IDEA下Java程序开发、调试

  • 建立HelloJDB类进行代码的调试:

  • 在需要的地方设置断点

  • 点击dubug进行单步调试

  • 当循环内部出现问题时,可在相应的行数设置断点并右击,在出现的对话框里输入自己需要调试的数值,例如i==50,再使用快捷键F9即可得到运行结果。

实现四则运算,并进行测试

前期准备

  • 安装JDK并配置环境变量
  • 下载IEDA,安装完毕后在IDEA界面中配置JDK,为后期运行IDEA调试程序做好准备

需求分析

  • 四则运算,即实现基本的加减乘除运算法则,最后使结果能在屏幕上正确输出
  • 需要一个主类设置主函数,利用主函数来调用其他类实现输入与计算功能,注意主函数尽量简洁
  • 需要一个“计算器”类,提供操作数的输入接口,供主函数调用
  • 需要一个“四则运算”类,专门针对加减乘除运算进行处理,此类被“计算器”类调用

设计

  • 四则运算类的设计
  1. 专门被计算器类进行调用,接收计算器类向此类传递的2个操作数和1个操作符

  2. 根据不同的操作符进行运算,并输出结果

  • 计算器类的设计
  1. 声明java.util.Scanner;以提供用户输入2个操作数和1个操作符的功能;

  2. 声明java.math.BigDecimal;,具体原因后面进行分析

  3. 该类被主类调用使用

  4. 该类调用四则运算类,向四则运算类传递用户输入的值

  • 主类的设计
  1. 因为在计算器类中已经把所有的功能进行了封装,因此主类只需要创建一个计算器类对象

  2. 创建好对象后只需调用此类中的方法即可

代码实现 & 测试

IDEA环境下开发
  • 打开IDEA,将实验一所有代码放在exp1包下,便于编译运行调试
  • 分别创建class SiZeYunSuanclass Calculatorclass CalculatorTest
  • SiZeYunSuan代码
class SiZeYunSuan {
private BigDecimal a;
private BigDecimal b;
private String c; void fun(BigDecimal a, BigDecimal b, String c) {
switch (c) {
case "+":
System.out.println(a.add(b));
break;
case "-":
System.out.println(a.subtract(b));
break;
case "*":
System.out.println(a.multiply(b));
break;
case "/":
if (b.equals(0))
System.out.println("Error !");
else {
System.out.println(a.divide(b));
break;
}
default:
System.out.println("Error!");
} } }
  • Calculator代码
class Calculator{
private BigDecimal a;
private BigDecimal b;
private String c; void seta(BigDecimal a){
a = this.a;
} BigDecimal geta() {
return a;
} void setb(BigDecimal b){
b = this.b;
} BigDecimal getb() {
return b;
} void setc(String c){
c = this.c;
} String getc() {
return c;
} void printFuntion(){ Scanner scanner1 = new Scanner(System.in); //第一个操作符
Scanner scanner2 = new Scanner(System.in); //第二个操作符
Scanner scanner3 = new Scanner(System.in); //第三个操作符 System.out.println("请输入第一个操作数");
a = scanner1.nextBigDecimal();
System.out.println("请输入第二个操作数");
b = scanner2.nextBigDecimal();
System.out.println("请输入操作符");
c = scanner3.next(); SiZeYunSuan siZeYunSuan = new SiZeYunSuan();
siZeYunSuan.fun(a,b,c);
}
}
  • CalculatorTest(主类,包含主函数)代码
public class CalculatorTest {
public static void main(String[] args) {
Calculator calculator = new Calculator();
calculator.printFuntion();
}
}
  • 调试
  1. 组合键Ctrl+Shift+F10即可编译运行

  1. 在一开始调试的时候,输入类似的值时无法得到一个精确的答案,例如答案应是0.5的时候程序显示的结果却是0.499999,结合课本的知识我知道因为我把操作数的类型定义为double型,而这是不精确的。在调试下我便使用BigDecimal类把数据进行一定的处理并使用这个类中原本就存在的加减乘除函数,最终便可得到精确答案

命令行下开发
  • 代码一样,在DOS命令行下编译执行该代码
  • 在命令行下运行出现了乱码问题

看了20155303同学的博客知道因为windows下默认的编码方式与IDEA设置的编码方式不同,将编码方式转为UTF-8即可成功运行。

分析总结(遇到问题及解决办法)
  • 此次我的题目是四则运算,因为之前有用C语言编过相关的程序,所以刚开始编写的时候还觉得挺简单的。但是在真正编程的时候就遇到了一些问题,通过反复尝试最终调试成功。

  • 问题一:在四则运算中若输入double型的数据,计算的结果可能不够精确

    解决方案:根据书本上介绍过的方法,利用BigDecimal进行封装

  • 问题二:在是命令行中出现了乱码问题,

    解决方案:看了同学的博客后明白如何解决

其他

  • 第一次的Java实验是我第一次封装对象并调用对象完成了一个简单的小程序。我发现在自己看到题目后思考和编程的过程中都更加倾向于面向过程,而不是面向对象。可能之前一直在使用C语言以及目前除了Java课外其它的课均是使用C语言进行编程,因此很容易编程面向过程的样子,特别是本次实验的内容也不是很难,对面向对象的编程方式,把功能封装成对象再调用对象这种模式有些陌生,之后还要改变一下思考模式

  • 本次实验总的来说不是很困难,但是也提醒了我一件事。之前看书的时候看别人的代码觉得不难,但是在自己敲代码的过程中却发现这里有问题,那里又不确定,我觉得这个的原因一方面是看代码始终和敲代码之间有一定的差距,一方面是我们目前看的代码量也比较小。之后的学习中也要多注意这个问题

PSP(Personal Software Process)时间

步骤 耗时 百分比
需求分析 10min 10%
设计 10min 10%
代码实现 50min 50%
测试 15min 15%
分析总结 15min 15%

20155321 《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)的更多相关文章

  1. 20145314郑凯杰 《Java程序设计》实验一 Java开发环境的熟悉(Windows + Eclipse)实验报告

    20145314郑凯杰 <Java程序设计>实验一 Java开发环境的熟悉(Windows + Eclipse)实验报告 实验要求 •使用JDK编译.运行简单的Java程序: •使用Ecl ...

  2. 20145316《Java程序设计》实验一:Java开发环境的熟悉(Windows + IDEA)

    20145316<Java程序设计>实验一:Java开发环境的熟悉(Windows + IDEA) 一.DOC命令行下Java程序开发 1.打开cmd,输入 mkdir 20145316命 ...

  3. 20145239 实验一 Java开发环境的熟悉(Windows + IDEA)

    实验一 Java开发环境的熟悉(Windows + IDEA) 实验内容 1.使用JDK编译.运行简单的Java程序:2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验知识点 1.JV ...

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

    20145301<Java程序设计>实验报告一:Java开发环境的熟悉 课程:Java程序设计 实验名称:Java开发环境的熟悉 实验目的与要求: 1.没有Linux基础的同学建议先学习& ...

  5. 2018-2019-2-20175303 实验二 《Java开发环境的熟悉》实验报告

    2018-2019-2-20175303 实验二 <Java开发环境的熟悉>实验报告 姓名:柴轩达       学号:20175303     班级:1753       实验课程:JAV ...

  6. 2018-2019-2-20175225 实验二《Java开发环境的熟悉》实验报告

    姓名:张元瑞 学号:20175225 班级:1752 实验课程:JAVA程序设计 实验名称:Java面向对象程序设计 实验时间:2019.4.16 指导老师:娄嘉鹏 实验内容 测试点一 - " ...

  7. 20145312《Java第一次实验报告》

    20145312<Java第一次实验报告> Java开发环境的熟悉(Windows+Idea) 一.实验内容 使用Idea编辑.编译.运行.调试Java程序. 使用JDK编译.运行简单的J ...

  8. 20155320《Java程序设计》实验一(Java开发环境的熟悉)实验报告

    20155320<Java程序设计>实验一(Java开发环境的熟悉)实验报告 实验内容及步骤 (一)命令行下Java程序开发 步骤一:首先在cmd中输入d:和cd ljq20155320进 ...

  9. 20145212《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDE)

    20145212<Java程序设计>实验报告一:Java开发环境的熟悉(Windows+IDE) 实验内容及步骤 1.命令行下的JAVA程序开发 建立并进入实验目录: 撰写简单的Hello ...

  10. 20145213《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)

    20145213<Java程序设计>实验报告一:Java开发环境的熟悉(Windows+IDEA) 实验要求 使用JDK编译.运行简单的Java程序. 使用IDEA编辑.编译.运行.调试J ...

随机推荐

  1. Scala模式匹配和样例类

    Scala有一个十分强大的模式匹配机制,可以应用到很多场合:如switch语句.类型检查等.并且Scala还提供了样例类,对模式匹配进行了优化,可以快速进行匹配. 1.字符匹配     def mai ...

  2. 【转】深入浅出 iOS 之生命周期

    [iOS]深入浅出 iOS 之生命周期 深入浅出 iOS 之生命周期  http://blog.csdn.net/kesalin/article/details/6691766 罗朝辉(http:// ...

  3. web-ctf随机数安全

    rand() 函数在产生随机数的时候没有调用 srand(),则产生的随机数是有规律可询的. 产生的随机数可以用下面这个公式预测 : state[i] = state[i-3] + state[i-3 ...

  4. verilog实现的16位CPU设计

    verilog实现的16位CPU设计 整体电路图 CPU状态图 idle代表没有工作,exec代表在工作 实验设计思路 五级流水线,增加硬件消耗换取时间的做法. 具体每一部分写什么将由代码部分指明. ...

  5. python自动化测试框架学习

    今天发现python有多个框架可以用于自动化测试方面,下面整理了下splinter和urllib2框架,对于pywinauto框架和ruby框架先记录下以后需要用到再学习. python有个splin ...

  6. No.6 - 利用 CSS animation 制作一个炫酷的 Slider

    *{ margin:; padding:; } div{ margin: auto; width: 800px; height: 681px; position: relative; overflow ...

  7. spring中的default-lazy-init参数和lazy-init

    在spring的配置中的根节点上有个  default-lazy-init="true"配置:   1.spring的default-lazy-init参数  此参数表示延时加载, ...

  8. 关于python接口基础到进阶随笔

    想了很久,闲来无事,今天想了下还是总结了下写下来,部分参考官方源码理解,还有就是这么久的理解, 如果觉得有帮助请记得点赞 先讲下接口url组成拿后台服务为例 通常一个后台请求url格式: http:/ ...

  9. Android 异步开发之 AsyncQueryHandler 批量添加联系人

    AsyncQueryHandler: 官方解释是一个异步帮助类(A helper class to help make handling asynchronous ContentResolver qu ...

  10. 支付宝在ios应用上的开发[转]

    前奏 现在随着移动开发的快速发展,越来越多的应用要求在线支付功能.最近做了一个关于支付宝支付功能的应用,在使用支付宝的过程中,遇到一些不必要的弯路,因此,写了这篇文章总结一下关于ios开发如何使用支付 ...