实验要求

  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. DZ拿shell总结

    今天碰到一个dz的站,好久没拿了 ,拿下shell觉得应该总结一下 Uc_server默认密码 其实有了UC_SERVER就是有了网站的全部权限了,有了UC_SERVER你可以重置管理员密码 可以进后 ...

  2. 2、Sublime Text 3 快捷键(实用,快速换行等)

    选择类 Ctrl+D :选中光标所占的文本,继续操作则会选中下一个相同的文本. Alt+F3:选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑.举个栗子:快速选中并更改所有相同的变量名.函 ...

  3. 【MySQL-123】MySQL8.0.12 安装于Win10

    参考blog:MySQL8.0.12 安装及配置 [坑一]输入net start mysql时,MYSQL服务无法启动. 问题:第三步my.ini文件编码错误. 解决方案:https://blog.c ...

  4. Java中使用OpenSSL生成的RSA公私钥

    RSA是什么:RSA公钥加密算法是1977年由Ron Rivest.Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的.RSA取名来自开发他们三者的名字.RSA是目前最有影响力的 ...

  5. PAT——1041. 考试座位号

    每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座 ...

  6. 分享一下不错的样式,适用于Gridview,兼容性还不错!

    使用方法很简单, 1.设置Gridview的[CssClass]属性为[tbinfo] 2.设置Gridview的[BorderWidth]属性为[0] 3.设置Gridview的[CellSpaci ...

  7. 获取 当前显示的 UIViewController

    UIViewController * findBestVC(UIViewController *vc) { if (vc.presentedViewController) { return findB ...

  8. 网页静态化解决方案-Freemarker

    1.1    技术简介与使用 1.1.1     简介 为什么使用: 1.  减轻数据库的访问压力,静态化比较适合大规模且相对变化不太频繁的数据: 2.  有利于SEO(搜索引擎优化); 纯的HTML ...

  9. Instruments Time profiler 调优APP 之图片解码

    以前闲时用instruments的Time profiler调试过APP,发现用tableView: cellForRowAtIndexPath: 中cell的图片设置耗时较多,之前改了一下,如下 d ...

  10. CentOS7 minimal(最小化安装)后增加的软件安装

    1.net-tools 安装,因为习惯使用ifconfig命令 2.wget安装,下载工具必不可少 3.vim安装,相比于vi个人更喜欢vim 4.yum-plugin-priorities安装,用于 ...