首页 > 代码库 > 第4次作业类测试代码+105032014166+张珍珍

第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、        完成界面和相应的功能。

 技术分享

 

 

技术分享

 

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

 

 

3、        代码:

Triangle类放置方法:

 1 public class Triangle {
 2     
 3         public Triangle(){}
 4 
 5       //判断三角形
 6         public String triangle(int a, int b, int c)
 7         {
 8             String result; 
 9             
10             if(a<1 || a>100 || b<1 || b>100 || c<1 || c>100)
11             {
12                 result = "边的值不在范围内!";        
13             }
14             else if(a >= b+c || b >= a+c || c >= a+b)
15             {
16                 result = "不构成三角形!";
17             }
18             else if(a==b && b==c)
19             {
20                 result = "等边三角形"; 
21             }
22             //else if((a == b && b != c) || (a == c && b!= c) || (b == c && a != b))
23             else if((a-b)*(a-c)*(b-c)==0)
24             {
25                 result = "等腰三角形"; 
26             }
27             else if(a*a + b*b == c*c || a*a + c*c == b*b || c*c + b*b == a*a)
28             {
29                 result = "直角三角形"; 
30             }
31             else
32             {
33                 result = "一般三角形";
34             } 
35              
36              return result;
37         }
38         
39         //计算面积
40         public float triangleArea(int a,int b,int c)
41         {
42             String temp = triangle(a, b, c);
43             float area=0;        
44             float p;
45                     
46             if(!temp.equals("边的值不在范围内!") && !temp.equals("不构成三角形!"))
47             {
48                 //加.0可转为double,防止小数被抹去
49                 p=(float) ((a+b+c)/2.0);
50                 area=(float) (Math.sqrt(p*(p-a)*(p-b)*(p-c)));
51             }
52             return area;
53         }
54         
55         //计算周长
56         public int perimeter(int a,int b,int c)
57         {
58             String temp = triangle(a, b, c);
59             int girth=0;
60             if(!temp.equals("边的值不在范围内!") && !temp.equals("不构成三角形!"))
61             {
62                 girth=a+b+c;
63             }
64             return girth;
65             
66         }
67 }

 

界面

 

  1 import java.awt.BorderLayout;
  2 import java.awt.Color;
  3 import java.awt.Font;
  4 import java.awt.GridLayout;
  5 import java.awt.event.ActionEvent;
  6 import java.awt.event.ActionListener;
  7 import javax.swing.JButton;
  8 import javax.swing.JFrame;
  9 import javax.swing.JLabel;
 10 import javax.swing.JTextField;
 11 
 12 public class JudgeTriangle {
 13 
 14     public static void main(String[] args) {
 15         
 16         //测试
 17 //        @SuppressWarnings("unused")
 18 //        float temp = triangleArea(2,3,4);
 19         
 20         //定义界面元素
 21         JFrame frame = new JFrame("三角形计算程序");        
 22         JLabel lab1 = new JLabel("三角形计算程序",JLabel.CENTER);
 23         JLabel lab11 = new JLabel();
 24         JLabel lab2 = new JLabel("请输入三角形的三条边:");
 25         JLabel lab21 = new JLabel();
 26         JLabel labA = new JLabel("a:",JLabel.CENTER);
 27         JLabel labB = new JLabel("b:",JLabel.CENTER);
 28         JLabel labC = new JLabel("c:",JLabel.CENTER);
 29         JLabel labS = new JLabel("这个三角形是:",JLabel.CENTER);
 30         JLabel labArea = new JLabel("面积是:",JLabel.CENTER);
 31         JLabel labP = new JLabel("周长是:",JLabel.CENTER);
 32         JButton button1 = new JButton("OK");
 33         JButton button2 = new JButton("Cancel");
 34         JTextField textFieldA = new JTextField();
 35         textFieldA.setColumns(12);
 36         JTextField textFieldB = new JTextField();
 37         textFieldB.setColumns(12);
 38         JTextField textFieldC = new JTextField();
 39         textFieldC.setColumns(12);
 40         JTextField textFieldS = new JTextField();
 41         textFieldS.setColumns(12);
 42         JTextField textFieldArea = new JTextField();
 43         textFieldArea.setColumns(12);
 44         JTextField textFieldP = new JTextField();
 45         textFieldP.setColumns(12);
 46         Font fnt1 = new Font("title", Font.BOLD, 24);
 47         Font fnt2 = new Font("content", Font.PLAIN, 15);
 48         
 49         //设置界面元素属性
 50         frame.setLayout(new GridLayout(9, 2,3,3));
 51         frame.setLocation(500,200);
 52         frame.setBackground(Color.PINK);        
 53         lab1.setFont(fnt1);
 54         lab1.setForeground(Color.BLUE);
 55         lab1.setBounds(380, 5, lab1.getWidth(), lab1.getHeight());
 56         lab2.setFont(fnt2);
 57         lab2.setForeground(Color.BLACK);
 58         lab2.setBounds(10, 30, lab2.getWidth(), lab2.getHeight());
 59         
 60         //在容器中加入这些元素
 61         frame.add(lab1,BorderLayout.NORTH);
 62         frame.add(lab11);
 63         frame.add(lab2,BorderLayout.WEST);
 64         frame.add(lab21);        
 65         frame.add(labA);
 66         frame.add(textFieldA);
 67         frame.add(labB);
 68         frame.add(textFieldB);
 69         frame.add(labC);
 70         frame.add(textFieldC);
 71         frame.add(button1,BorderLayout.CENTER);
 72         frame.add(button2,BorderLayout.CENTER);
 73         frame.add(labS);
 74         frame.add(textFieldS);
 75         frame.add(labArea);
 76         frame.add(textFieldArea);
 77         frame.add(labP);
 78         frame.add(textFieldP);
 79         
 80         //设置可视
 81         frame.setVisible(true);
 82         frame.pack();
 83         
 84         //按钮事件
 85         button1.addActionListener(new ActionListener() {
 86             
 87             @Override
 88             public void actionPerformed(ActionEvent e) {
 89                 //若按OK键,计算所需值并显示
 90                 if(e.getSource()==button1)
 91                 {
 92                     Triangle triangle =new Triangle();
 93                     int a=0,b=0,c=0;
 94                     String d,g,f;
 95                     d=textFieldA.getText().toString();
 96                     g=textFieldB.getText().toString();
 97                     f=textFieldC.getText().toString();
 98                     
 99                     //用正则表达式判断是否为数字
100                      if(d.matches("[0-9]+") && g.matches("[0-9]+") && f.matches("[0-9]+"))
101                     {
102                          
103                         a = Integer.parseInt(d);
104                         b = Integer.parseInt(g);
105                         c = Integer.parseInt(f);
106                         textFieldS.setText(triangle.triangle(a,b,c));
107                         textFieldArea.setText(triangle.triangleArea(a,b,c)+"");
108                         textFieldP.setText(triangle.perimeter(a,b,c)+"");
109                     }
110                      else
111                      {
112                          textFieldS.setText("提示:输入格式错误,请输入整数!");
113                      }
114                 }
115             }
116         });
117         button2.addActionListener(new ActionListener() {
118             
119             @Override
120             public void actionPerformed(ActionEvent e) {
121                 //若按Cancle键,退出程序
122                 if(e.getSource()==button2)
123                 {
124                     System.exit(1);
125                 }
126             }
127         });        
128     }
129         
130 
131 }

 

 

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