第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, "输入数据有误\n请重新输入", "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, "输入的三条边不能构成三角形\n无法进行面积、周长计算", "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     

 

posted @ 2017-05-03 14:22  高小娟  阅读(248)  评论(0编辑  收藏  举报