多边形的周长与面积计算

多边形的周长与面积计算

父类

package com.ZBC;

public abstract class shape {
    private double length;
    private double angle;
    abstract double Area();
    abstract double Girth();

    public double getLength() {
        return length;
    }

    public void setLength(double length) {
        this.length = length;
    }

    public double getAngle() {
        return angle;
    }

    public void setAngle(double angle) {
        this.angle = angle;
    }
}

圆形类

package com.ZBC;

public class Circular extends shape {
    private double r;
    public Circular(){

    }

    public Circular(double r){
        this.r = r;
    }

    public double getR() {
        return r;
    }

    public void setR(double r) {
        this.r = r;
    }

    public double Area(){   //求面积,取π为3.14
        return r*r*3.14;
    }

    public double Girth(){  求周长,取π为3.14
        return 2*r*3.14;
    }

}

矩形类

package com.ZBC;

public class Rectangle extends shape {
    private double length;
    private double width;

    public Rectangle(){

    }

    public Rectangle(double length,double width){
        this.length=length;
        this.width=width;
    }

    public double getLength() {
        return length;
    }

    public void setLength(double length) {
        this.length = length;
    }

    public double getWidth() {
        return width;
    }

    public void setWidth(double width) {
        this.width = width;
    }

    public double Area(){  //求面积
        return length*width;
    }

三角形

package com.ZBC;

public class Triangle extends shape {
    private double a;
    private double b;
    private double c;

    public Triangle(){
        
    }

    public Triangle(double a,double b,double c){
        this.a=a;
        this.b=b;
        this.c=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;
    }

    public double Area(){
        double p=(a+b+c)/2;
        return Math.sqrt(p*(p-a)*(p-b)*(p-c));
    }

    public double Girth(){
        return a+b+c;
    }

    public boolean isok(){
        if(a+b<=c||a+c<=b||c+b<=a)
            return false;
        return true;
    }
}

界面

package com.ZBC;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Interface extends JFrame {
    public Interface(){
        setTitle("多边形的周长与面积计算");
       setBounds(400,200,660,480);
       setLocationRelativeTo(null);
       setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        //所需图片
        ImageIcon Triangle =new ImageIcon("src/com/ZBC/Triangle.jpg");
        ImageIcon Rectangle =new ImageIcon("src/com/ZBC/Rectangle.jpg");
        ImageIcon Circular =new ImageIcon("src/com/ZBC/Circular.jpg");
        ImageIcon bg =new ImageIcon("src/com/ZBC/Bg.jpg");

        Container c =getContentPane();

        //文本框
        JTextField Circular_r = new JTextField();
        JTextField Rectangle_length =new JTextField();
        JTextField Rectangle_width =new JTextField();
        JTextField Triangle_a =new JTextField();
        JTextField Triangle_b =new JTextField();
        JTextField Triangle_c =new JTextField();
        JTextField Circular_area =new JTextField();
        JTextField Circular_girth =new JTextField();
        JTextField Rectangle_area=new JTextField();
        JTextField Rectangle_girth =new JTextField();
        JTextField Triangle_area =new JTextField();
        JTextField Triangle_girth =new JTextField();

        //标签
        JLabel jl1=new JLabel("圆形");
        JLabel jl2=new JLabel("矩形");
        JLabel jl3=new JLabel("三角形");
        JLabel jl4=new JLabel("请输入圆的半径:");
        JLabel jl5=new JLabel("请输入矩形的长:");
        JLabel jl6=new JLabel("请输入矩形的宽:");
        JLabel jl7=new JLabel("请输入三角形的边长:");
        JLabel jl8=new JLabel("请输入三角形的边长:");
        JLabel jl9=new JLabel("请输入三角形的边长:");
        JLabel jl10=new JLabel("圆的面积:");
        JLabel jl11=new JLabel("圆的周长:");
        JLabel jl12=new JLabel("矩形的面积:");
        JLabel jl13=new JLabel("矩形的周长:");
        JLabel jl14=new JLabel("三角形的面积:");
        JLabel jl15=new JLabel("三角形的周长:");
        JLabel bcg=new JLabel();

  

        //按钮组件
        JButton btn1 =new JButton("");
        JButton btn2 =new JButton("");
        JButton btn3 =new JButton("");

        //设置按钮
        btn1.setBounds(20,40,80,80);
        btn2.setBounds(20,160,80,80);
        btn3.setBounds(20,280,80,80);

        //设置图片的大小
        Triangle.setImage(Triangle.getImage().getScaledInstance(80,80,1000));
        Rectangle.setImage(Rectangle.getImage().getScaledInstance(80,80,1000));
        Circular.setImage(Circular.getImage().getScaledInstance(80,80,1000));
        bg.setImage(bg.getImage().getScaledInstance(700,500,1000));

        //把图片绑定在按钮上�
        btn1.setIcon(Circular);
        btn2.setIcon(Rectangle);
        btn3.setIcon(Triangle);
        bcg.setIcon(bg);

        //设置文本框的位置及大小
        Circular_r.setBounds(230,70,80,20);
        Rectangle_length.setBounds(230,170,80,20);
        Rectangle_width.setBounds(230,210,80,20);
        Triangle_a.setBounds(230,280,80,20);
        Triangle_b.setBounds(230,310,80,20);
        Triangle_c.setBounds(230,340,80,20);
        Circular_area.setBounds(450,60,80,20);
        Circular_girth.setBounds(450,100,80,20);
        Rectangle_area.setBounds(450,170,80,20);
        Rectangle_girth.setBounds(450,210,80,20);
        Triangle_area.setBounds(450,290,80,20);
        Triangle_girth.setBounds(450,330,80,20);

        //设置标签的位置及其大小
        jl1.setBounds(50,120,60,20);
        jl2.setBounds(50,240,60,20);
        jl3.setBounds(40,360,60,20);
        jl4.setBounds(130,70,120,20);
        jl5.setBounds(130,170,120,20);
        jl6.setBounds(130,210,120,20);
        jl7.setBounds(110,280,120,20);
        jl8.setBounds(110,310,120,20);
        jl9.setBounds(110,340,120,20);
        jl10.setBounds(370,60,120,20);
        jl11.setBounds(370,100,60,20);
        jl12.setBounds(360,170,120,20);
        jl13.setBounds(360,210,120,20);
        jl14.setBounds(350,290,120,20);
        jl15.setBounds(350,330,120,20);
        bcg.setBounds(-20,-10,700,500);

        //将各个组件添加到容器
        c.add(btn1);
        c.add(btn2);
        c.add(btn3);
        c.add(Circular_r);
        c.add(Rectangle_length);
        c.add(Rectangle_width);
        c.add(Triangle_a);
        c.add(Triangle_b);
        c.add(Triangle_c);
        c.add(Circular_area);
        c.add(Circular_girth);
        c.add(Rectangle_area);
        c.add(Rectangle_girth);
        c.add(Triangle_area);
        c.add(Triangle_girth);
        c.add(jl1);
        c.add(jl2);
        c.add(jl3);
        c.add(jl4);
        c.add(jl5);
        c.add(jl6);
        c.add(jl7);
        c.add(jl8);
        c.add(jl9);
        c.add(jl10);
        c.add(jl11);
        c.add(jl12);
        c.add(jl13);
        c.add(jl14);
        c.add(jl15);
        c.add(bcg);

        //动作
        btn1.addActionListener  (new ActionListener() {
            @Override
            public void actionPerformed  (ActionEvent e) {
             try {
              Circular circular = new Circular();
              String crs = Circular_r.getText();
              circular.setR(Double.parseDouble(crs));
              Circular_area.setText(String.format("%.6f", circular.Area()));
              Circular_girth.setText(String.format("%.6f", circular.Girth()));
             }catch (Exception e2){
              JOptionPane.showMessageDialog(null,"输入的格式有误,请重新输入!");
              Circular_r.setText("");
              Circular_area.setText("");
              Circular_girth.setText("");
              return;
             }
            }
        });
        btn2.addActionListener(new ActionListener() {
         @Override
         public void actionPerformed(ActionEvent e) {
          try{
          Rectangle rectangle = new Rectangle();
          String rcs_l = Rectangle_length.getText();
          String rcs_w =Rectangle_width.getText();
          rectangle.setLength(Double.parseDouble(rcs_l));
          rectangle.setWidth(Double.parseDouble(rcs_w));
          Rectangle_area.setText(String.format("%.6f",rectangle.Area()));
          Rectangle_girth.setText(String.format(".%6f",rectangle.Girth()));
         }catch(Exception e2){
           JOptionPane.showMessageDialog(null,"输入的格式有误,请重新输入!");
           Rectangle_length.setText("");
           Rectangle_width.setText("");
           Rectangle_girth.setText("");
           Rectangle_area.setText("");
           return;
          }
         }
        });
        btn3.addActionListener(new ActionListener() {
         @Override
         public void actionPerformed(ActionEvent e) {
          try{
           Triangle triangle =new Triangle();
           String  tri_a =Triangle_a.getText();
           String  tri_b =Triangle_b.getText();
           String  tri_c=Triangle_c.getText();
           triangle.setA(Double.parseDouble(tri_a));
           triangle.setB(Double.parseDouble(tri_b));
           triangle.setC(Double.parseDouble(tri_c));
           if(!triangle.isok()){
            JOptionPane.showMessageDialog(null,"您输入的数据无法构成三角形!");
            Triangle_a.setText("");
            Triangle_b.setText("");
            Triangle_c.setText("");
            Triangle_girth.setText("");
            Triangle_area.setText("");
            return ;
           }
           Triangle_area.setText(String.format("%.6f",triangle.Area()));
           Triangle_girth.setText(String.format("%.6f",triangle.Girth()));
          }catch(Exception e2){
           JOptionPane.showMessageDialog(null,"输入的格式有误,请重新输入!");
           Triangle_a.setText("");
           Triangle_b.setText("");
           Triangle_c.setText("");
           Triangle_girth.setText("");
           Triangle_area.setText("");
           return ;
          }
         }
        });
        setVisible(true);
    }
}

Main方法

package com.ZBC;

public class Main {

    public static void main(String[] args) {
	new Interface(); //创建页面
    }
}

运行结果:
在这里插入图片描述无法构成三角形
在这里插入图片描述界面

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水星没有记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值