20192310 实验二 《数据结构与面向对象程序设计》实验报告
20192310 2020-2021-1 《数据结构与面向对象程序设计》实验二报告
课程:《程序设计与数据结构》
班级: 1923
姓名: 严嘉钰
学号:20192310
实验教师:王志强
实验日期:2020年10月8日
必修/选修: 必修
1.实验内容
(1) 编写简单的计算器,完成加减乘除模运算。
(2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出。
(3) 编写测试代码,测试验证。
2. 实验过程及结果
按照要求编写代码,我的代码为:
import java.util.Scanner;
public class test10081 {
public static void main(String[] args) {
float num1, num2, result;
int judge, judge1;
do {
System.out.println("请输入你想进行运算的两个数:");
Scanner scan = new Scanner(System.in);
num1 = scan.nextFloat();
num2 = scan.nextFloat();
System.out.println("请选择你需要进行的运算类型:\n1.加法\n2.减法\n3.乘法\n4.除法\n5.求模\n");
judge = scan.nextInt();
if (judge==4&&num2==0||judge==5&&num2==0)
System.out.println("被除数为0,错误");
while (judge != 1 && judge != 2 && judge != 3 && judge != 4 && judge != 5)
{
System.out.println("请重新选择运算类型:");
judge = scan.nextInt();
}
result = calculate(judge, num1, num2);
System.out.println("运算结果为:\n" + result);
System.out.println("是否继续下一次运算?\n1.是\n2.否\n");
judge1 = scan.nextInt();
if (judge1 != 1) break;
} while (judge1 == 1);
}
public static float calculate(int judge, float num1, float num2) {
float result = 0;
switch (judge) {
case 1:
result = num1 + num2;
break;
case 2:
result = num1 - num2;
break;
case 3:
result = num1 * num2;
break;
case 4:
result = num1 / num2;
break;
case 5:
result = num1 % num2;
break;
}
return result;
}
}
可以看到运行结果如上
编写的测试代码如下:
public class test10081Test {
public static void main(String[] args) {
if (test10081.calculate(1,10,10)!=20)
System.out.println("加法运算失败");
else if (test10081.calculate(2,10,10)!=0)
System.out.println("减法运算失败");
else if (test10081.calculate(3,10,10)!=100)
System.out.println("乘法运算失败");
else if (test10081.calculate(4,10,10)!=1)
System.out.println("除法运算失败");
else if (test10081.calculate(5,25,10)!=5)
System.out.println("求模运算失败");
else System.out.println("全部通过测试!");
}
}
可以看到全部通过测试
3. 实验过程中遇到的问题和解决过程
- 问题1:测试代码不会编写
- 问题1解决方案:将主函数与运算函数分离,在测试代码中只测试运算函数是否正确工作
其他(感悟、思考等)
一个最简单的小程序也需要程序员不少的心血,码农不易