第4次作业类测试代码+105032014166+张珍珍
2017-05-01 21:08 张珍珍 阅读(286) 评论(1) 编辑 收藏 举报第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 }