飞道的博客

Java 设计一个自动计算矩形 三角形 圆形面积的计算器

401人阅读  评论(0)

设计一个能计算矩形、三角形、圆形面积的计算器,根据用户输入的参数(int)自动判断是形状,并自动计算出面积打印出来。

用面向对象的思维,(新手学Java,大佬勿喷)

我们先创建一个Calculator类,存放长、宽、高等属性

/**
 * @lxc Java\jdk-9.0.4
 * 设计一个自动计算矩形,三角形,圆形面积的计算器
 * 根据用户的输入判断是什么形状
 */
public class Calculator {
   
    public int type;//设置矩形、三角形、圆形的类型 0-2
    public double width;//设置矩形的长 && 设置圆的半径 && 三角形的底
    public double height;//设置矩形的宽 && 三角形的高
    public double result;//每个计算类型的结果
    //set get
    public double getHeight() {
   
        return height;
    }
    public void setHeight(double height) {
   
        this.height = height;
    }
    public double getWidth() {
   
        return width;
    }
    public void setWidth(double width) {
   
        this.width = width;
    }
    public int getType() {
   
        return type;
    }
    public void setType(int type) {
   
        this.type = type;
    }
    public double getResult() {
   
        return result;
    }
    public void setResult(double result) {
   
        this.result = result;
    }
}

将矩形,三角形,圆形的面积计算函数,以及他们的标识type用对象封装

RectangleClass 矩形

public class RectangleClass extends Calculator{
   
    Calculator re = new Calculator();
    //无参构造函数,重写type的值
    public RectangleClass(){
   
        type = 0;
    }
    //设置一个计算长宽高的方法
    public void methodre(double width, double height){
   
        re.setWidth(width);
        re.setHeight(height);
        //计算矩形的面积
        re.setResult(re.getHeight() * re.getWidth());
        System.out.println("矩形的面积为:" + re.getResult());
    }
}

TriangleClass 三角形

public class TriangleClass extends Calculator{
   
    Calculator tr = new Calculator();
    //无参构造函数,重写type的值
    public TriangleClass(){
   
        type = 1;
    }
    //设置一个计算长宽高的方法
    public void methodtr(double height, double width){
   
        tr.setWidth(width);
        tr.setHeight(height);
        //计算三角形的面积
        tr.setResult((tr.getWidth() * tr.getHeight()) / 2);
        System.out.println("三角形的面积为:" + tr.getResult());
    }
}

RoundClass 圆形

public class RoundClass extends Calculator{
   
    Calculator ro = new Calculator();
    //无参构造函数,重写type的值
    public RoundClass(){
   
        type = 2;
    }
    //设置一个计算长宽高的方法
    public void methodro(double width){
   
        double pi = Math.PI;
        ro.setWidth(width);
        //Math.pow(a,x) a代表值,x代表次方
        //计算圆形的面积
        ro.setResult(pi * Math.pow(ro.getWidth(),2));
        System.out.println("圆形的面积为:" + ro.getResult());

    }
}

TestCalculator 主函数

import java.util.Scanner;

public class TestCalculator {
   
    public static void main(String[] args) {
   
        //创建矩形0、圆形1、三角形2、
        RectangleClass re = new RectangleClass();
        RoundClass ro = new RoundClass();
        TriangleClass tr = new TriangleClass();
        //设计一个计算器,判断是矩形、三角形、圆形
        boolean flag = true;

        while (flag){
   
            Scanner input = new Scanner(System.in);
            System.out.println("====程序开数输入T 结束输入F====");
            String str = input.next();
            switch (str){
   
                case "T":
                    System.out.println("请输入要计算的类型--- 0 代表矩形 --- 1 代表三角形 --- 2代表圆形 ---");
                    int figure = input.nextInt();
                    if (re.getType() == figure){
   
                        System.out.println("请输入矩形的长");
                        double x = input.nextDouble();
                        System.out.println("请输入矩形的宽");
                        double y = input.nextDouble();
                        re.methodre(x,y);

                    }else if (tr.getType() == figure){
   
                        System.out.println("请输入三角形的底");
                        double x = input.nextDouble();
                        System.out.println("请输入三角形的高");
                        double h = input.nextDouble();
                        tr.methodtr(x,h);

                    }else if (ro.getType() == figure){
   
                        System.out.println("请输入圆形的半径");
                        double r = input.nextDouble();
                        ro.methodro(r);

                    }else {
   
                        System.out.println("请输入0-2之间的值!!!");
                    }
                    break;
                case "F":
                    //重写flag,终止程序
                    flag = false;
                    System.out.println("程序结束");
                    break;
                default:
                    System.out.println("请输入T或者F!!!");
                    break;
            }
        }
    }
}

转载:https://blog.csdn.net/qq_48715321/article/details/115499069
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场