• 第4次作业类测试代码+105032014124+高小娟


    一、类图:

    二、界面及其对应功能:

    (1)界面:

    (2)功能:

    输入的数值超出规定范围

    无法构成三角形

    输入的数据不是数字

    三、代码:

    (1)JudgeTriangle:

     1 public class JudgeTriangle {
     2         /*
     3          * 判断是否构成三角形,如果是进一步判断三角形形状
     4          */
     5         public static String triangle(int a,int b,int c){
     6             String sort=null;
     7             if((a+b>c)&&((c-b)<a)){
     8                 if(((a==b)||(b==c))&&(a!=c)){
     9                         sort="等腰三角形";
    10                 }
    11                 else if(a==c){
    12                     sort="等边三角形";
    13                 }
    14                 else if(a*a+b*b==c*c)
    15                     sort="直角三角形";
    16                 else 
    17                     sort="一般三角形";
    18             }
    19             else{
    20                 sort="不能构成三角形";
    21          }
    22             return sort;
    23       }
    24         /*
    25          * 计算三角形的面积
    26          */
    27         public static float triangleArea(int a,int b,int c){
    28             float temp=0;
    29             float area=0;
    30             temp=(a+b+c)/2;
    31             temp=temp*(temp-a)*(temp-b)*(temp-c);
    32             area=(float) Math.sqrt(temp);
    33             return area;
    34         }
    35         /*
    36          * 计算三角形的周长
    37          */
    38         public static int perimeter(int a,int b,int c){
    39             int per=0;
    40             per=a+b+c;
    41             return per;
    42         }
    43 }

    (2)TriangleInterface:

      1 package test03;
      2 import java.awt.Font;
      3 import java.awt.GridLayout;
      4 import java.awt.Color;
      5 import java.awt.event.ActionEvent;
      6 import java.awt.event.ActionListener;
      7 
      8 import javax.swing.JFrame;
      9 import javax.swing.JLabel;
     10 import javax.swing.JOptionPane;
     11 import javax.swing.JTextField;//文本框
     12 import javax.swing.JButton;
     13 
     14 import java.awt.event.WindowEvent; 
     15 import java.text.DecimalFormat;
     16 import java.util.Arrays;
     17 import java.awt.event.WindowAdapter; 
     18 
     19 public class TriangleInterface {
     20     JFrame f=new JFrame("三角形");//实例化窗体对象
     21     JLabel label_1=new JLabel("请输入三角形的三条边:");
     22     JLabel label_2=new JLabel("这个三角形是:");
     23     JLabel label_3=new JLabel("面积是:");
     24     JLabel label_4=new JLabel("周长是:");
     25     JLabel label_a=new JLabel("a:");
     26     JLabel label_b=new JLabel("b:");
     27     JLabel label_c=new JLabel("c:");
     28     JTextField text_a=new JTextField(20);
     29     JTextField text_b=new JTextField(20);
     30     JTextField text_c=new JTextField(20);
     31     JTextField text_sort=new JTextField(50);
     32     JTextField text_area=new JTextField(30);
     33     JTextField text_per=new JTextField(30);
     34     JButton button_ok=new JButton("Ok");
     35     JButton button_cancel=new JButton("Cancel");
     36     
     37     public TriangleInterface() {
     38         DecimalFormat df  = new DecimalFormat("0.0");  
     39         Font font = new Font("华文新魏", Font.BOLD, 23); 
     40         button_ok.setFont(new Font("华文新魏",Font.BOLD, 25));
     41         button_cancel.setFont(new Font("华文新魏",Font.BOLD, 20));
     42         label_1.setFont(font);
     43         label_2.setFont(font);
     44         label_3.setFont(font);
     45         label_4.setFont(font);
     46         label_a.setFont(font);
     47         label_b.setFont(font);
     48         label_c.setFont(font);
     49         button_ok.addActionListener(new ActionListener(){
     50 
     51             @Override
     52             public void actionPerformed(ActionEvent e) {
     53                 // TODO 自动生成的方法存根
     54                 String str_1=text_a.getText();
     55                 String str_2=text_b.getText();
     56                 String str_3=text_c.getText();
     57                 boolean isnum_1=isNumeric(str_1);
     58                 boolean isnum_2=isNumeric(str_2);
     59                 boolean isnum_3=isNumeric(str_3);
     60                 if((isnum_1==false)||(isnum_2==false)||(isnum_3==false)){
     61                     JOptionPane.showMessageDialog(null, "输入数据有误
    请重新输入", "Attention!", JOptionPane.ERROR_MESSAGE);
     62                     text_a.setText("");
     63                     text_b.setText("");
     64                     text_c.setText("");
     65                 }
     66                 else{
     67                     int[] length=new int[3];
     68                     length[0]= Integer.parseInt(str_1);
     69                     length[1]= Integer.parseInt(str_2);
     70                     length[2]= Integer.parseInt(str_3);
     71                     Arrays.sort(length);//对三条边进行排序
     72                     if(length[0]<1||length[2]>100){
     73                          JOptionPane.showMessageDialog(null, "边的值不在范围内,请重新输入", "Attention!", JOptionPane.ERROR_MESSAGE);
     74                          text_a.setText("");
     75                          text_b.setText("");
     76                          text_c.setText("");
     77                     }
     78                     else{
     79                         String result=JudgeTriangle.triangle(length[0],length[1],length[2]);
     80                         float area=JudgeTriangle.triangleArea(length[0],length[1],length[2]);
     81                         int perime=JudgeTriangle.perimeter(length[0],length[1],length[2]);
     82                         text_sort.setText(result);
     83                         if(result.equals("不能构成三角形")){
     84                             JOptionPane.showMessageDialog(null, "输入的三条边不能构成三角形
    无法进行面积、周长计算", "Attention!", JOptionPane.ERROR_MESSAGE);
     85                         }
     86                         else{
     87                             text_area.setText(String.valueOf(area));
     88                             text_per.setText(String.valueOf(perime));
     89                         }
     90                     }
     91                 }
     92             }
     93         });
     94         button_cancel.addActionListener(new ActionListener(){
     95 
     96             @Override
     97             public void actionPerformed(ActionEvent arg0) {
     98                 // TODO 自动生成的方法存根
     99                 text_a.setText("");
    100                 text_b.setText("");
    101                 text_c.setText("");
    102                 text_sort.setText("");
    103                 text_area.setText("");
    104                 text_per.setText("");
    105             }
    106             
    107         });
    108         f.addWindowListener(new WindowAdapter() { 
    109              public void windowClosing(WindowEvent e) {   
    110                  System.exit(1);   
    111                  }  
    112         });
    113         f.setSize(600,395);//设置窗体大小
    114         f.setBackground(Color.BLUE);
    115         f.setLocation(400, 300);
    116         label_1.setBounds(10,15,400,30);
    117         label_2.setBounds(50,180,300,30);
    118         label_3.setBounds(50,260,200,30);
    119         label_4.setBounds(280,260,200,30);
    120         label_a.setBounds(50,60,100,20);
    121         label_b.setBounds(205,60,100,20);
    122         label_c.setBounds(360,60,100,20);
    123         text_a.setBounds(80,60,50,30);
    124         text_b.setBounds(235,60,50,30);
    125         text_c.setBounds(390,60,50,30);
    126         text_sort.setBounds(225,180,200,30);
    127         text_area.setBounds(150,260,70,30);
    128         text_per.setBounds(380,260,70,30);
    129         button_ok.setBounds(100,120,80,30);
    130         button_cancel.setBounds(250,120,100,30);
    131         text_sort.setEnabled(false);//此文本框不可编辑;
    132         text_area.setEnabled(false);//此文本框不可编辑;
    133         text_per.setEnabled(false);//此文本框不可编辑;
    134         f.setLayout(null);
    135         f.add(label_1);
    136         f.add(label_2);
    137         f.add(label_3);
    138         f.add(label_4);
    139         f.add(label_a);
    140         f.add(label_b);
    141         f.add(label_c);
    142         f.add(text_a);
    143         f.add(text_b);
    144         f.add(text_c);
    145         f.add(text_sort);
    146         f.add(text_area);
    147         f.add(text_per);
    148         f.add(button_ok);
    149         f.add(button_cancel);
    150         f.setVisible(true); //使组件显示;
    151     }
    152     public static boolean isNumeric(String str){  
    153           for (int i = str.length();--i>=0;){     
    154              if (!Character.isDigit(str.charAt(i))){  
    155                  return false;  
    156              }  
    157           }  
    158           return true;  
    159     }  
    160     public static void main(String[] args) {
    161         // TODO 自动生成的方法存根
    162         new TriangleInterface();
    163     }
    164         
    165 }
    166     
    167     
  • 相关阅读:
    装饰器api
    API
    Python之模块和包
    编辑后保留原URl搜索条件
    数据结构相关知识
    博客系统之评论树与评论楼相关操作
    Redis五大数据类型以及操作
    Class python31
    python_class21
    数字及字符串
  • 原文地址:https://www.cnblogs.com/xiaojuangao/p/6801724.html
Copyright © 2020-2023  润新知