实验2报告

20182320 2019-2020-1 《数据结构与面向对象程序设计》实验2报告

课程:《程序设计与数据结构》

班级: 1823

姓名: 郑力元

学号:20182320

实验教师:王志强

实验日期:2019年9月17日
必修/选修: 必修

1.实验内容

(1) 编写简单的计算器,完成加减乘除模运算。

(2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出。

(3) 编写测试代码,测试验证。(https://www.cnblogs.com/rocedu/p/4472842.html)

2. 实验过程及结果

第一步:创建文件

  • 和日常一样,创建bin和src文件夹:

  • src里面创建有三个.java文件,我这里分别命名为calculator、Calculator和Test,他们分别用于编写计算器的方法、编写主方法和测试:

第二步:编写代码

  • 我们首先编写具有计算器功能的子函数代码,代码如下:

    这个子函数需要接收来自主函数的传参,参数的类型为图中画横线的括号内的内容。

其次,这个函数使用了switch语句,用于检测用户需要进行什么类型的运算(+-*/).

  • 其次,我们编写主函数,其代码如下:

    主函数主要负责执行对计算器函数的调用、实现接受用户输入的数字和符号和程序最后的循环功能。

  • 最后我们编写测试文件,测试具有计算器功能的子函数是否能正常实现功能。代码如下:

第三步:编译运行

  • 主函数的运行结果如下:

    功能正常。

第四步:测试

  • 运行测试程序结果如下:

    测试通过。

3. 实验过程中遇到的问题和解决过程

  • 问题1:

在Java中使用for()语句,和在C中不同。若如下使用,会报错:

  • 问题1解决方案:

显然,报错提示应将“1”替换成布尔类型的值,而间接说明Java中的布尔类型的值并不简单以“1”和“0”表示。

因此,我们将“1”去掉,程序会默认执行循环,功能类似于C语言中的for(;1;)语句。

  • 问题2:

在编写最后是否需要循环的语句时,我如下编写,能顺利通过编译,但是在运行时却不能实现循环功能:


并且这段语句我认为是符合逻辑,至少很符合C语言的逻辑的。

  • 问题2解决方案:

将上面的检测循环代码修改为如下:

功能就能正常实现了

其他(感悟、思考等)

Java和C语言虽然有许多共通的逻辑和语法,但是在一些特殊情况下,他们还是有略微不同。若将Java和C语言对比着学习,就需要注意这些不同之处,避免因为陷入其中一方的逻辑而找不出程序的错误。

参考资料

posted @ 2019-09-22 15:43  郑力元  阅读(220)  评论(0编辑  收藏  举报