您的位置:首页 > 编程语言

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

2017-05-03 14:22 381 查看
一、类图:



二、界面及其对应功能:

(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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: