花了两个小时做了那么一个很丑的Java写的三角形判断器......

来源:互联网 发布:windows api开发详解 编辑:程序博客网 时间:2024/05/16 23:21



   闲着无事,花了两三个小时做了那么一个自己都看不下去的Java小程序,可用来判断三角形的类型,输入三边,可以求出各个角的正弦、余弦以及正切值!

说实话,丑得连自己都看不下去了!鄙视鄙视(不喜勿喷!吐舌头吐舌头


话不多说,上源码:

package triangle;import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.Panel;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import java.awt.Font;import javax.swing.SwingConstants;import com.sun.org.apache.bcel.internal.generic.NEW;import com.sun.org.apache.xalan.internal.xsltc.dom.AbsoluteIterator;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.math.BigDecimal;import java.text.DecimalFormat;import java.text.SimpleDateFormat;import java.util.Date;import javax.swing.JTable;import javax.swing.border.LineBorder;import javax.swing.table.DefaultTableModel;public class JAVATriangleTest{private JButton sureButton;private JButton exitButton;private JLabel  aSide;private JLabel  bSide;private JLabel  cSide;private JLabel  area;private JLabel  circle;private JLabel triangleLabel;private JLabel sinLabel;private JLabel cosLabel;private JLabel tanLabel;private JTextField aSideTextField;private JTextField bSideTextField;private JTextField cSideTextField;private JLabel timeJLabel;private JFrame jFrame=new JFrame("三角形判断器");private JPanel pan5;DecimalFormat df=new DecimalFormat("#.00");SimpleDateFormat sd=new SimpleDateFormat("yyyy年MM月dd日 EEE HH:mm:ss");public JAVATriangleTest(){JPanel pan1=new JPanel();pan1.setLayout(new BorderLayout());JLabel titleJLabel =new JLabel();titleJLabel.setFont(new Font("宋体", Font.BOLD, 18));titleJLabel.setBackground(new Color(0, 255, 51));titleJLabel.setHorizontalAlignment(SwingConstants.CENTER);//titleJLabel.setFont(new Font("书体坊米芾体", Font.PLAIN, 40));titleJLabel.setText("欢迎使用三角形判断器!");timeJLabel=new JLabel();timeJLabel.setText(sd.format(new Date()));titleJLabel.setVisible(true);pan1.add(titleJLabel,BorderLayout.CENTER);pan1.add(titleJLabel,BorderLayout.SOUTH);JPanel pan2=new JPanel();pan2.setLayout(new GridLayout(7,1,5,5));aSide=new JLabel();//aSide.setFont(new Font("书体坊米芾体", Font.PLAIN, 18));aSide.setText("请输入三角形第一条边 a:");bSide=new JLabel();//bSide.setFont(new Font("书体坊米芾体", Font.PLAIN, 18));bSide.setText("请输入三角形第二条边 b:");cSide=new JLabel();//cSide.setFont(new Font("书体坊米芾体", Font.PLAIN, 18));cSide.setText("请输入三角形第三条边 c:");pan2.add(aSide);pan2.add(bSide);pan2.add(cSide);JPanel pan3=new JPanel();aSideTextField=new JTextField();aSideTextField.setColumns(10);bSideTextField=new JTextField();bSideTextField.setColumns(10);cSideTextField=new JTextField();cSideTextField.setColumns(10);pan3.add(aSideTextField);pan3.add(bSideTextField);pan3.add(cSideTextField);pan3.setLayout(new GridLayout(7,1,5,5));JPanel pan4=new JPanel();pan4.setBackground(Color.WHITE);area=new JLabel();//area.setFont(new Font("书体坊米芾体", Font.PLAIN, 12));area.setBackground(Color.WHITE);area.setText("    面积:     ");circle=new JLabel();//circle.setFont(new Font("书体坊米芾体", Font.PLAIN, 12));circle.setText("  周长:     ");triangleLabel=new JLabel();//triangleLabel.setFont(new Font("书体坊米芾体", Font.PLAIN, 12));triangleLabel.setText("三角形类型:   ");sinLabel=new JLabel();cosLabel=new JLabel();tanLabel=new JLabel();pan4.add(area);pan4.add(circle);pan4.add(sinLabel);pan4.add(cosLabel);pan4.add(tanLabel);pan4.add(triangleLabel);pan4.setLayout(new GridLayout(7,1,5,5));jFrame.getContentPane().add(pan1, BorderLayout.NORTH);jFrame.getContentPane().add(pan2,BorderLayout.WEST);jFrame.getContentPane().add(pan3,BorderLayout.CENTER);jFrame.getContentPane().add(pan4,BorderLayout.EAST);pan5 = new JPanel();jFrame.getContentPane().add(pan5, BorderLayout.SOUTH);sureButton = new JButton("确定");sureButton.setFont(new Font("书体坊米芾体", Font.PLAIN, 12));pan5.add(sureButton);exitButton = new JButton("退出");exitButton.setFont(new Font("书体坊米芾体", Font.PLAIN, 12));pan5.add(exitButton);JButton clearButton=new JButton("清除");clearButton.setFont(new Font("书体坊米芾体", Font.PLAIN, 12));pan5.add(clearButton);jFrame.setBackground(new Color(51, 153, 0));jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jFrame.setResizable(false);jFrame.setLocation(450, 200);jFrame.pack();jFrame.setVisible(true);/* * 为按钮添加响应时间 */ActionListener exit=new exitListener();exitButton.addActionListener(exit);ActionListener cal=new calculate();sureButton.addActionListener(cal);ActionListener clearListener=new clear();clearButton.addActionListener(clearListener);}//构造函数/* * 按钮按下的时候,主要完成以下个功能 *1, 按钮按下的时候需要一个监听器 *2,完成相应的计算 *3,将得到的计算结果显示在界面上 */class exitListener implements ActionListener{@Overridepublic void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stubJOptionPane.showMessageDialog(null, "确定退出?");System.exit(0);}}class calculate implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubString aStr=aSideTextField.getText();String bStr=bSideTextField.getText();String cStr=cSideTextField.getText();float a=(float) Double.parseDouble(aStr);float b=(float)Double.parseDouble(bStr);float c=(float)Double.parseDouble(cStr);/* * 开始判断三条边 */if(a<0.00000001||b<0.0000001||c<0.0000001){JOptionPane.showMessageDialog(null, "三角形的边不可能小于等于0!");show("","");}//ifif(((a+b-c<=0.000001)&&(a+c-b<=0.000001)&&(b+c-a<=0.000001)||(a-b-c>=0.000001)&&(a-c-b>=0.000001)&&(b-c-a>=0.000001))){//if(!(a+b>c)&&(a+c>b)&&(b+c>a)){JOptionPane.showMessageDialog(null,"您输入的三条边不满足三角形法则!");show("","");}else{float Cir=a+b+c;             //周长float p=Cir/2;float Area=(float) (Math.sqrt(p*(p-a)*(p-b)*(p-c)));//面积String x=df.format(Cir);String y=df.format(Area);show(x, y);//show(Double.toString(Cir),Double.toString(Area));triangleType(a, b, c);}//else}}void show(String x,String y){area.setText("  面积:         "+y);circle.setText("  周长:     "+x);}void triangleType(float aa,float bb,float cc){//等腰三角形if((aa-bb<0.00000001)||(aa-cc<0.00000001)||(bb-cc<0.00000001)){triangleLabel.setText("这是一个等腰三角形!");}//等边三角形if((aa-cc<0.00001)&&(aa-bb<0.000001)&&(bb-cc<0.000001))triangleLabel.setText("这是一个等边三角形!");//直角三角形if((aa*aa+bb*bb-cc*cc<0.000001)||(aa*aa+cc*cc-bb*bb<0.000001)||(bb*bb+cc*cc-aa*aa<0.000001))triangleLabel.setText("这是一个直角三角形!");/* * 对于一般三角形,接下来是要判断是锐角还是钝角三角形 */float cosa=(bb*bb+cc*cc-aa*aa)/(2*bb*cc);float cosb=(aa*aa+cc*cc-bb*bb)/(2*aa*cc);float cosc=(bb*bb+aa*aa-cc*cc)/(2*aa*bb);float sina=(float) Math.sqrt(1-cosa*cosa);float sinb=(float) Math.sqrt(1-cosb*cosb);float sinc=(float) Math.sqrt(1-cosc*cosc);float tana=0;float tanb=0;float tanc = 0;if(Math.abs(cosb)>0.0000001)tana=sina/cosa;if(Math.abs(cosb)>0.0000001)tanb=sina/cosb;if(Math.abs(cosc)>0.0000001)tanc=sinc/cosc;if(cosc>0.0000001)triangleLabel.setText("这是一个钝角三角形!");else {triangleLabel.setText("这是一个锐角三角形!");}sinLabel.setText("sin A :"+df.format(sina)+" sin B :"+df.format(sinb)+" sin C :"+df.format(sinc));cosLabel.setText("cos A :"+df.format(cosa)+" cos B :"+df.format(cosb)+" cos C :"+df.format(cosc));tanLabel.setText("tan A :"+df.format(tana)+" tan B :"+df.format(tanb)+" tan C :"+df.format(tanc));}//triangleTypeclass clear implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubaSideTextField.setText("");bSideTextField.setText("");cSideTextField.setText("");circle.setText("");area.setText("");sinLabel.setText("");cosLabel.setText("");tanLabel.setText("");}}public static void main(String args[]){new JAVATriangleTest();}}//JAVATriangle


1 0
原创粉丝点击