设计一个能计算矩形、三角形、圆形面积的计算器,根据用户输入的参数(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
查看评论