20192312吴欣欣 实验二 《数据结构与面向对象程序设计》实验报告
20192312 2020-2021-1 《数据结构与面向对象程序设计》实验二报告
课程:《程序设计与数据结构》
班级: 1923
姓名: 吴欣欣
学号:20192312
实验教师:王志强
实验日期:2020年10月11日
必修/选修: 必修
1.实验内容
(1) 编写简单的计算器,完成加减乘除模运算。
(2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出。
(3) 编写测试代码,测试验证。(https://www.cnblogs.com/rocedu/p/4472842.html)
2. 实验过程及结果
1.代码
package week5;
import java.awt.desktop.OpenURIEvent;
import java.util.*;
public class calculate {
public static void main(String[] args) {
Scanner scan =new Scanner(System.in);
float a,b;
String m,n;
do{
System.out.print("Please input a and b:");
a=scan.nextFloat();
b=scan.nextFloat();
System.out.print("Enter the operation(+ or - or * or / or %):");
m=scan.next();
switch(m.charAt(0)){
case '+': System.out.println("a+b="+add(a,b));break;
case '-': System.out.println("a-b="+sub(a,b));break;
case '*': System.out.println("a*b="+mul(a,b));break;
case '/': System.out.println("a/b="+div(a,b));break;
case '%': System.out.println("a%b="+mod(a,b));break;
}
System.out.printf("Do you want to play again?(Y/y or N/n)");
n=scan.next();
}while(n.equalsIgnoreCase("y"));
}
public static float add(float a,float b){return a+b;}
public static float sub(float a,float b){return a-b;}
public static float mul(float a,float b){return a*b;}
public static float div(float a,float b){return a/b;}
public static int mod(float a,float b)
{
Scanner m=new Scanner(System.in);
float num1,num2;
int c,d;
do{
num1=a-(int)a;
num2=b-(int)b;
if(num1!=0||num2!=0)
{System.out.println("Please input int type numbers to complete the % operation");
System.out.print("Please input a and b:");
a=m.nextFloat();
b=m.nextFloat();}
}while((a-(int)a)!=0||(b-(int)b!=0));
c=(int)a;
d=(int)b;
return c%d;
}
}
2.测试代码
package week5;
public class calculateTest {
public static void main(String[] args){
if (calculate.add(3,1)==4)
{ System.out.println("Test1 passed.");}
if (calculate.sub(3,1)==2)
System.out.println("Test2 passed.");
if (calculate.mul(6,2)==12)
System.out.println("Test3 passed.");
if (calculate.div(4,2)==2)
System.out.println("Test4 passed.");
if (calculate.mod(5,4)==1)
System.out.println("Test5 passed.");
}
}
3.上传码云
3. 实验过程中遇到的问题和解决过程
- 问题1:使用switch 语句时报错
- 问题1解决方案:使用switch语句对应变量类型为char型,case对应的字符需改为‘’
其他(感悟、思考等)
使用循环语句时应考虑到边缘条件与使用范围。
switch语句使用时要考虑到对应类型。