第4次作业类测试代码+019+李悦洲

类图:

代码:

package swingDesign;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Triangle extends JFrame {

    private JPanel contentPane;
    private JTextField aside;
    private JTextField bside;
    private JTextField cside;
    private JTextField resulttext;
    private JTextField square;
    private JTextField length;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Triangle frame = new Triangle();
                    frame.getContentPane().setLayout(null);
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public Triangle() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setLayout(null);
        setContentPane(contentPane);

        JLabel lab = new JLabel("\u8BF7\u8F93\u5165\u4E09\u89D2\u5F62\u7684\u4E09\u6761\u8FB9\uFF1A");
        lab.setFont(new Font("黑体", Font.PLAIN, 14));
        contentPane.add(lab);
        lab.setBounds(129, 10, 196, 32);

        JLabel laba = new JLabel("a:");
        laba.setFont(new Font("黑体", Font.PLAIN, 14));
        contentPane.add(laba);
        laba.setBounds(64, 73, 36, 23);

        JLabel labb = new JLabel("b:");
        labb.setFont(new Font("黑体", Font.PLAIN, 14));
        labb.setBounds(187, 73, 36, 23);
        contentPane.add(labb);

        JLabel labc = new JLabel("c:");
        labc.setFont(new Font("黑体", Font.PLAIN, 14));
        labc.setBounds(307, 73, 36, 23);
        contentPane.add(labc);

        aside = new JTextField();
        aside.setBounds(84, 73, 66, 21);
        contentPane.add(aside);
        aside.setColumns(10);

        bside = new JTextField();
        bside.setBounds(206, 73, 66, 21);
        contentPane.add(bside);
        bside.setColumns(10);

        cside = new JTextField();
        cside.setBounds(329, 73, 66, 21);
        contentPane.add(cside);
        cside.setColumns(10);

        final JButton btnOk = new JButton("OK");
        btnOk.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                 if(e.getSource()==btnOk)
                                      {
                                          Caculate cacu =new Caculate();
                                          int a=0,b=0,c=0;
                                          String A,B,C;
                                          A=aside.getText().toString();
                                          B=bside.getText().toString();
                                          C=cside.getText().toString();

                                          //判断是否为数字
                                          if(A.matches("[0-9]+") && B.matches("[0-9]+") && C.matches("[0-9]+"))
                                         {
                                             a = Integer.parseInt(A);
                                             b = Integer.parseInt(B);
                                             c = Integer.parseInt(C);
                                             resulttext.setText(cacu.triangle(a,b,c));
                                             square.setText(cacu.square(a,b,c)+"");
                                             length.setText(cacu.length(a,b,c)+"");
                                         }
                                         else
                                          {
                                              resulttext.setText("输入有误,请重新输入");
                                          }
                                     }
            }
        });
        btnOk.setFont(new Font("宋体", Font.PLAIN, 14));
        btnOk.setBounds(118, 119, 79, 23);
        contentPane.add(btnOk);

        final JButton btnCancel = new JButton("CANCEL");
        btnCancel.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if(e.getSource()==btnCancel)
                {
                    aside.setText("");
                    bside.setText("");
                    cside.setText("");
                    resulttext.setText("");
                    square.setText("");
                    length.setText("");
                     JOptionPane.showMessageDialog(null,"已重置");
                }
            }
        });
        btnCancel.setFont(new Font("宋体", Font.PLAIN, 14));
        btnCancel.setBounds(246, 119, 79, 23);
        contentPane.add(btnCancel);

        JLabel label = new JLabel("\u8FD9\u4E2A\u4E09\u89D2\u5F62\u662F:");
        label.setFont(new Font("宋体", Font.PLAIN, 14));
        label.setBounds(84, 164, 113, 23);
        contentPane.add(label);

        resulttext = new JTextField();
        resulttext.setBounds(183, 165, 136, 21);
        contentPane.add(resulttext);
        resulttext.setColumns(10);

        JLabel label_1 = new JLabel("\u9762\u79EF\u662F:");
        label_1.setFont(new Font("宋体", Font.PLAIN, 14));
        label_1.setBounds(64, 208, 54, 15);
        contentPane.add(label_1);

        square = new JTextField();
        square.setBounds(111, 205, 66, 21);
        contentPane.add(square);
        square.setColumns(10);

        JLabel label_2 = new JLabel("\u5468\u957F\u662F:");
        label_2.setFont(new Font("宋体", Font.PLAIN, 14));
        label_2.setBounds(233, 208, 54, 15);
        contentPane.add(label_2);

        length = new JTextField();
        length.setBounds(283, 205, 66, 21);
        contentPane.add(length);
        length.setColumns(10);
    }
}
package swingDesign;

import java.text.DecimalFormat;

public class Caculate {

    public final static int DENGBIAN = 0;
    public final static int DENGYAO  = 1;
    public final static int ZHIJIAO  = 2;
    public final static int YIBAN    = 3;

    private int a;
    private int b;
    private int c;

    protected int checkType()//判断三角形种类
    {
        if(a==b&&a==c&&b==c)
            return DENGBIAN;
        if(a==b||a==c||b==c)
            return DENGYAO;
        if(a*a+b*b==c*c||a*a==b*b+c*c||b*b==a*a+c*c)
            return ZHIJIAO;
        return YIBAN;
    }

    protected boolean checkTheOne()//检查范围条件
     {
         if((a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100))
             return true;
         else
             return false;
     } 

    protected boolean checkTheTwo()//检查是否组成三角形
     {
         if((a<(b+c))&&(b<(a+c))&&(c<(a+b)))
             return true;
         else
             return false;
     }

    public String triangle( int a, int b, int c)//题目要求的函数
     {
        String ch = null;
        this.a = a;
        this.b = b;
        this.c = c;

        if(!checkTheOne())
        {
            ch = "边的值不在范围内";
        }
        else if(!checkTheTwo())
        {
            ch = "不构成三角形";
        }
        else
        {
            switch(checkType())
            {
            case DENGBIAN:      ch = "等边三角形";break;
            case DENGYAO:       ch = "等腰三角形";break;
            case ZHIJIAO:       ch = "直角三角形";break;
            case YIBAN:         ch = "一般三角形";break;
            }
        }
        return ch;
     }

    public String square(int a,int b,int c)
    {
        String temp = triangle(a, b, c);
        DecimalFormat df = new DecimalFormat("#.00");
        float result=0;
        float p;
        String mianjiresult = null;
        if(!temp.equals("边的值不在范围内") &&!temp.equals("不构成三角形"))
        {
            p=(float) ((a+b+c)/2.0);
            result=(float) (Math.sqrt(p*(p-a)*(p-b)*(p-c)));
            mianjiresult=df.format(result);
        }
        return mianjiresult;
    }

    public int length(int a,int b,int c)
    {
        String temp = triangle(a, b, c);
        int result=0;
        if(!temp.equals("边的值不在范围内") &&!temp.equals("不构成三角形"))
        {
            result=a+b+c;
        }
        return result;

    }
}

结果:

时间: 2024-11-06 21:58:50

第4次作业类测试代码+019+李悦洲的相关文章

第4次作业类测试代码+101+谢艳敏

类测试代码的具体要求如下: 界面操作说明补充: 点击OK,如果输入有效,进行相应的数值计算:如果数值不满足约束,则弹出错误说明,统一为"输入有误,请重新输入",然后回到初始输入状态. 点击Cancle,表示重置,清空前面的数据,回到初始状态. (2)NextDate函数问题 String  nextdate(int m,int d,int y) 建立界面,至少包含以下元素,但不限于此: 完成上一天方法:String lastDay(int m,int d,int y) ,完成周几的方法

第4次作业类测试代码+105032014166+张珍珍

第4次作业:准备类测试代码 类测试代码的具体要求如下: (1)设计三角形完整程序 已经完成的方法是:  String triangle(int a,int b,int c) 现在要求继续增加新的功能: 建立界面,至少包含以下元素,但不限于此: 完成面积的方法:float triangleArea(int a,int b,int c) ,完成周长的方法:int perimeter(int a,int b,int c) 要求: 1.        画出类图: 2.        完成界面和相应的功能

第4次作业类测试代码+105032014138+牟平

类测试代码的具体要求如下: 设计三角形完整程序 已经完成的方法是:  String triangle(int a,int b,int c) 现在要求继续增加新的功能: 建立界面,至少包含以下元素,但不限于此: 完成面积的方法:float triangleArea(int a,int b,int c) ,完成周长的方法:int perimeter(int a,int b,int c) 一.类图 二.功能界面 1 2 3 4 5 6 三.代码: import java.awt.EventQueue;

第4次作业类测试代码+105032014125+洪诗育

类测试代码的具体要求如下: 界面操作说明补充: 点击OK,如果输入有效,进行相应的数值计算:如果数值不满足约束,则弹出错误说明,统一为"输入有误,请重新输入",然后回到初始输入状态. 点击Cancle,表示重置,清空前面的数据,回到初始状态. NextDate函数问题 String  nextdate(int m,int d,int y) 建立界面,至少包含以下元素,但不限于此: 完成上一天方法:String lastDay(int m,int d,int y) ,完成周几的方法:in

第4次作业类测试代码+074+林盼皇

(友情提示:代码部分较多,为了便于测试,项目码源已上传至链接:http://pan.baidu.com/s/1pLscU3T 密码:ug8i)  界面: 1.类图 2.界面和相应的功能. 本次实验是在原来的CalDate日期计算类的基础上,添加了两个方法int weekDay(int m,int d,int y)与String lastDate(int m,int d,int y),此外还编写了GUInterface界面.  a.实现lastDate 1 public String lastDa

第4次作业类测试代码+098+吴超

一.类图 二.代码与界面 简单的分层思想,代码目录如下: 计算日期的业务类操作代码:printDate.java;具体包括如下方法. 2.1  增加计算星期几的方法weekDay(),利用蔡勒(Zeller)公式.即w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1: 公式中的符号含义如下,w:星期:c:世纪-1:y:年(两位数):m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1.2月要看作上一年的13.14月来计算,比如2003年1月1日要看作2002年的13月

第4次作业类测试代码+028+刘孝天

一:类图 二:代码:  1:定义接口 1 package jframeTest; 2 /* 3 * @author lxt 4 * @date 2017年5月2日下午4:22:35 5 * @Param 6 */ 7 public interface InteUtil { 8 9 public int perimeter(int a,int b,int c); 10 public float triangleArea(int a,int b,int c); 11 public boolean I

第4次作业类测试代码+085+潘亭

一.类图设计如下 二.界面如下 功能演示 1.输入错误 2.不构成三角形 3.一般三角形 面积默认保留两位小数 4.直角三角形 5.等腰三角形 6.等边三角形 7.cancel演示 防止程序崩溃,默认重置为0 三.代码部分 1.Triangle类 1 package visualTriangle; 2 3 public class Triangle { 4 5 //judge the fields 6 public static boolean Check(int num) 7 { 8 if(n

第5次作业类测试代码+140+阮晨曦

1. 代码链接 http://www.cnblogs.com/chenxxiaol/p/6804119.html 2. 界面设计 3. 等价类测试 分析题目 得出对输入的条件要求为 (1)      整数 (2)      三个数 (3)      1≤a≤100 (4)      1≤b≤100 (5)      1≤c≤100 (6)      a<b+c (7)      b<a+ c (8)      c<a+ b (9)    等腰三角形 (10)   等边三角形 (11)