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语句使用时要考虑到对应类型。

参考资料

posted @ 2020-10-11 12:49  20192312吴欣欣  阅读(68)  评论(0编辑  收藏