实验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语言对比着学习,就需要注意这些不同之处,避免因为陷入其中一方的逻辑而找不出程序的错误。