父类
public abstract class Fu {
private double area;//面积
private double girth;//周长
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//get、set方法
public double getArea() {
return area;
}
public void setArea(double area) {
this.area = area;
}
public double getGirth() {
return girth;
}
public void setGirth(double girth) {
this.girth = girth;
}
}
```java
圆
import java.text.DecimalFormat;
public class Circle extends Fu implements Computed{
private double r;
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
@Override
public double s() {
// TODO Auto-generated method stub
double src = Math.PI * r * r;
src = (double) Math.round(src * 100) / 100;
return src;
}
@Override
public double l() {
// TODO Auto-generated method stub
double zhouchang = Math.PI * 2 * r;
zhouchang = (double) Math.round(zhouchang * 100) / 100;
return zhouchang;
}
}
```java
方形
import java.text.DecimalFormat;
public class Square extends Fu implements Computed{
private double a;//长
private double b;//宽
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
}
public double getB() {
return b;
}
public void setB(double b) {
this.b = b;
}
@Override
public double l() {
// TODO Auto-generated method stub
double src = a * 2 + b * 2;
DecimalFormat df= new DecimalFormat("#.##");
/*src = (double) Math.round(src * 100) / 100;*/
return Double.parseDouble(df.format(src));
}
@Override
public double s() {
// TODO Auto-generated method stub
double src = a * b;
src = (double) Math.round(src * 100) / 100;
return src;
}
}
三角形
public class Triangle extends Fu implements Computed {
// 定义三条边的长度
private double a;
private double b;
private double c;
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
}
public double getB() {
return b;
}
public void setB(double b) {
this.b = b;
}
public double getC() {
return c;
}
public void setC(double c) {
this.c = c;
}
@Override
public double l() {
// TODO Auto-generated method stub
double src = a + b + c;
return src;
}
@Override
public double s() {
// TODO Auto-generated method stub
double l = l();
double src = Math.sqrt(l * (l - a) * (l - b) * (l - c));
src = (double) Math.round(src * 100) / 100;
return src;
}
}
接口类
public interface Computed {
public double s();//面积
public double l();//周长
}
测试类(main方法)
import java.util.Scanner;
public class Test {
Scanner sc = new Scanner(System.in);
String[] history = new String[100];//实现对数据的存储
public Test() {
while(true) {
System.out.println("请选择:1.圆形2.三角形3.方形4.查看记录");
int choose = sc.nextInt();
switch(choose) {
case 1:
Circle circle = new Circle();
circle.setName("圆形");
System.out.println("请输入半径:");
circle.setR(sc.nextDouble());
circle.setArea(circle.s());
circle.setGirth(circle.l());
show(circle);
break;
case 2:
Triangle triangle = new Triangle();
triangle.setName("三角形");
System.out.println("请分别输入三边长");
triangle.setA(sc.nextDouble());
triangle.setB(sc.nextDouble());
triangle.setC(sc.nextDouble());
triangle.setArea(triangle.s());
triangle.setGirth(triangle.l());
show(triangle);
break;
case 3:
Square square = new Square();
square.setName("方形");
System.out.println("请分别输入长、宽:");
square.setA(sc.nextDouble());
square.setB(sc.nextDouble());
square.setArea(square.s());
square.setGirth(square.l());
show(square);
break;
case 4:
String asd = "";
for (int i = 0; i < history.length; i++) {
if(history[i] != null) {
asd += history[i]+",";
}
}
System.out.println(asd.substring(0,asd.length()-1));
break;
default:
System.out.println("输入有误!");
break;
}
}
}
public void show(Fu fu) {
//拼接字符串存储
String aaa = fu.getName()+"面积是"+fu.getArea()+"周长是"+fu.getGirth();
for (int i = 0; i < history.length; i++) {
if(history[i] == null) {
history[i] = aaa;
break;
}
}
while(true) {
System.out.println("您要计算的是:1.面积2.周长3.放回上一级");
int choose = sc.nextInt();
switch(choose) {
case 1:
System.out.println("面积是:"+fu.getArea());
break;
case 2:
System.out.println("周长是:"+fu.getGirth());
break;
case 3:
return;
}
}
}
public static void main(String[] args) {
System.out.println("******欢迎使用面积周长计算器*******");
Test a = new Test();
}
}