一个窗口,用户输入三个数,你判断能否构成三角形以及面积

package triangle1;

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

public class triangle1 {

    JFrame frame1 = new JFrame("three sides");
    JFrame frame2 = new JFrame("the area");
    JFrame frame3 = new JFrame("error information");
    JLabel label1 = new JLabel("Please input three sides of the triangle:");
    JLabel label2 = new JLabel();
    JLabel label3 = new JLabel("error occurring!");
    JTextField textfield1 = new JTextField(7);
    JTextField textfield2 = new JTextField(7);
    JTextField textfield3 = new JTextField(7);
    JButton button1 = new JButton("OK");
    JButton button2 = new JButton("OK");
    JButton button3 = new JButton("OK");

    public triangle1() {
        frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame1.getContentPane().setLayout(new java.awt.FlowLayout());
        frame2.getContentPane().setLayout(new java.awt.FlowLayout());
        frame3.getContentPane().setLayout(new java.awt.FlowLayout());

        button1.addActionListener((ActionListener) new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                if (!textfield1.getText().equals("") && !textfield2.getText().equals("") && !textfield3.getText().equals("")) {


                    double a = Double.parseDouble(textfield1.getText());
                    double b = Double.parseDouble(textfield2.getText());
                    double c = Double.parseDouble(textfield3.getText());
                    if ((a + b) > c && (b + c) > a && (c + a) > b) {
                        double s = (a + b + c) / 2;
                        double area = s * (s - a) * (s - b) * (s - c);
                        label2.setText("The area of the triangle is" + area);

                        frame2.show();
                    } else {
                        frame3.show();
                    }
                } else {
                    frame3.show();
                }

            }
        });

        button2.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                frame2.dispose();
            }
        });

        button3.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                frame3.dispose();
            }
        });

        frame1.getContentPane().add(label1);
        frame1.getContentPane().add(textfield1);
        frame1.getContentPane().add(textfield2);
        frame1.getContentPane().add(textfield3);
        frame1.getContentPane().add(button1);
        frame2.getContentPane().add(label2);
        frame2.getContentPane().add(button2);
        frame3.getContentPane().add(label3);
        frame3.getContentPane().add(button3);

        frame1.setSize(400, 200);
        frame2.setSize(400, 200);
        frame3.setSize(400, 200);

    }

    public static void main(String[] args) {
        triangle1 triangle11 = new triangle1();
        triangle11.show();
    }

    private void show() {
        frame1.show();
    }
}

判断输入的数字是否能组成一个三角形并计算其面积(如果可能),我们需要考虑两个条件:首先,任意两边之和必须大于第边,这样才能形成一个三角形;其次,对于直角三角形,我们可以使用海伦公式来求解面积。 以下是一个简单的 Python 函数,它接受边长作为参数,检查它们是否满足三角形条件,并根据需要计算面积(如果为直角三角形): ```python import math def is_valid_triangle(side_a, side_b, side_c): # 检查能否构成三角形 if not (side_a + side_b > side_c and side_a + side_c > side_b and side_b + side_c > side_a): return False def calculate_area_if_right_triangle(side_a, side_b): # 只有当两边的平方和等于第边的平方时,才是直角三角形 if side_a**2 + side_b**2 == side_c**2: # 根据半周长公式计算面积(对于直角三角形) s = (side_a + side_b + side_c) / 2 area = math.sqrt(s * (s - side_a) * (s - side_b) * (s - side_c)) return area else: return None # 接收用户输入 side_a = float(input("请输入一个边长: ")) side_b = float(input("请输入第二个边长: ")) side_c = float(input("请输入个边长: ")) if is_valid_triangle(side_a, side_b, side_c): triangle_type = "直角三角形" if (side_a**2 + side_b**2 == side_c**2) else "普通三角形" print(f"{triangle_type}是可以形成的,面积为:") area = calculate_area_if_right_triangle(side_a, side_b) if area: print(area) else: print("这个数不能构成三角形") ``` 运行这个程序后,用户将被提示输入三角形条边长。如果输入边能构成三角形,程序会进一步确定是否为直角三角形,并计算其面积。如果没有构成三角形,则输出相应的消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值