实验要求

  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. js实现点击按钮显示某个区域 然后点击页面中任意其他位置,隐藏该区域

    $(".licat-header-list").on("click",function(e){ $(this).addClass("active&qu ...

  2. Mac下的mongodb安装

    mac下的mongodb安装主要有两种方式,一是手工安装,需在官网下载源文件,二是通过homebrew,至于homebrew不做介绍.既然是Mac系统下,我认为直接通过homebrew安装最好,省事还 ...

  3. Java基础知识强化之集合框架笔记78:ConcurrentHashMap之 ConcurrentHashMap、Hashtable、HashMap、TreeMap区别

    1. Hashtable: (1)是一个包含单向链的二维数组,table数组中是Entry<K,V>存储,entry对象: (2)放入的value不能为空: (3)线程安全的,所有方法均用 ...

  4. - (void)addConstraints:(NSArray<__kindof NSLayoutConstraint *> *)constraints

    Adds multiple constraints on the layout of the receiving view or its subviews.   All constraints mus ...

  5. [Noip2007]Core树网的核

    嘟嘟嘟 首先求树的直径两次bfs即可,实际上bfs就是最短路,因为树上路径是唯一的,所以用任何一种遍历方法都行(spfa和dijkstra当然也可以). 可以证明,只要求出任意一条直径就行了,为什么呢 ...

  6. 随手练——HDU 1237 表达式求值(输入格式典型)

    坑了老子半天,结果是 float 范围不够!!! 基本思想: 开一个符号栈,一个数字栈: 碰到数字就入栈,碰到符号就与栈顶符号进行对比,如果当前符号优先级小于栈顶符号,数字栈弹出两个数进行栈顶符号运算 ...

  7. [19/04/19-星期五] Java的动态性_脚本(Script,脚本)引擎执行JavaScript代码

    一.概念 Java脚本引擎是jdk 6.0之后的新功能. 使得Java应用程序可以通过一套固定的接口与各种脚本引擎交互,从而达到在Java平台上调用各种脚本语言的目的. Java脚本API是连接Jav ...

  8. Mysql注入攻击与防御(思维导图笔记)

  9. use tool wget for windows download

    1.什么是wget Wget是一个在网络上进行下载的简单而强大的自由软件,其本身也是GNU计划的一部分.它的名字是"World Wide Web"和"Get"的 ...

  10. PAT——1037. 在霍格沃茨找零钱

    如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易.”现在,给定 ...