20202308 2021-2022-1 《数据结构与面向对象程序设计》实验二报告

课程:《程序设计与数据结构》
班级: 2023
姓名: 叶宸卉
学号:20202308
实验教师:王志强
实验日期:2021年9月23日
必修/选修: 必修
(一)实验内容
(1) 编写简单的计算器,完成加减乘除模运算。
(2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出。
(3) 编写测试代码,测试验证。(https://www.cnblogs.com/rocedu/p/4472842.html)

(二) 实验过程及结果
第一步:创建文件

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


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

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


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

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

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


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

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

第三步:编译运行

主函数的运行结果如下:

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

问题1:

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

问题1解决方案:

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

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

问题2:

在编写最后是否需要循环的语句时,编写能顺利通过编译,但是在运行时却不能实现循环功能
并且这段语句我认为是符合逻辑,至少很符合C语言的逻辑的。
感悟:
Java和C语言虽然有许多共通的逻辑和语法,但是在一些特殊情况下,他们还是有略微不同。若将Java和C语言对比着学习,就需要注意这些不同之处,避免因为陷入其中一方的逻辑而找不出程序的错误。

posted @ 2021-09-29 22:47  20202308叶宸卉  阅读(32)  评论(0编辑  收藏  举报