《数据结构与面向对象程序设计》实验二实验报告20202309葛鹏宇
# 学号20202309 2021-2022-1 《数据结构与面向对象程序设计》实验2报告
课程:《程序设计与数据结构》
班级: 2023
姓名: 葛鹏宇
学号:20202309
实验教师:王志强
实验日期:2021年9月23日
必修/选修: 必修
## 1.实验内容
(1) 编写简单的计算器,完成加减乘除模运算。
(2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出。
(3) 编写测试代码,测试验证。
## 2. 实验过程及结果
实验代码如下:
import java.util.Scanner;
public class FIRST {
public static void main(String[] args) {
float a, b;
float result = 0;
String sym,judge;
do {
Scanner scan = new Scanner(System.in);
System.out.print("please enter the first number:");
a = scan.nextFloat();
sym = scan.nextLine();
System.out.print("please enter the operation symbol:");
sym = scan.nextLine();
System.out.print("please enter the second number:");
b = scan.nextFloat();
switch (sym) {
case "+":
result = a + b;
break;
case "-":
result = a - b;
break;
case "*":
case "x":
case "X":
result = a * b;
break;
case "/":
if (b == 0) {
System.out.println("error");
break;
} else {
result = a / b;
break;
}
default:
System.out.println("error");
}
System.out.println("the answer is " + result);
System.out.println("Go on? Please enter 'Y'or'N'");
judge=scan.nextLine();
judge=scan.nextLine();
}
while(judge.equals("y")||judge.equals("Y"));
}
}
可以实现加减乘除的运算,可以主动结束运行或重新输入数据运算。
经过数据测试,代码运行无误:
## 3. 实验过程中遇到的问题和解决过程
- 问题1:
第二步输入运算符号时跳过
- 问题1解决方案:直接跳过一个输入步骤,我根据以往经验判断是之前的第一个输入影响了第二个,可能是存在缓冲区的回车被接收,我就在第二次正式输入前先加上了一次输入,提走回车的命令,再进行正式的输入覆盖回车,解除影响。最后判断是否重新开始运算时也就考虑到这个方面的问题。
## 其他(感悟、思考等)
在编写代码时,需要考虑到一些背后的方面,可能在屏幕上看不到,但却要在脑子中清楚自己的代码的方方面面。这个程序功能方面还是较为简单,我还需要再深入的地学习Java的各种程序作用让这个计算器代码能完成更加多样的功能。
## 参考资料
- [《Java程序设计与数据结构教程(第4版)》]