花了两个小时做了那么一个很丑的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
- 花了两个小时做了那么一个很丑的Java写的三角形判断器......
- 昨天花了两个小时做了一个天气预报的Demo,希望对新人有所帮助。
- async太好用了,用了两个小时写的代码
- 花了两个小时做的-- 算不算久呢? 事件监听器 计算器java版 GUI
- 写了一个小时的文字丢了,郁闷啊
- nvarchar 转换decimal 时的细节,弄了两个小时,原来是判断结果写错了
- 一个小小的问题耗费了两个小时的时间
- 一道做了快一个小时的水题
- HDU6098(做了一个小时的水题)
- 他奶奶的,写了一个小时,居然没了,csdn的bolg太难用了,喷血。。。。
- Java写了两个奇怪的线程
- eclipse java编辑器上面出现了一个很丑的条栏
- 写了两个判断文件目录是否存在的函数
- Delphi自带的SpinEdit控件太丑了,自己写一个替换它
- POJ 3274:Gold Balanced Lineup 做了两个小时的哈希
- [机器学习] 看了一下KNN的介绍,那么动手做一个简单的例子
- 花了两个星期写的播放器
- 写了一个Java读取XML文件的工具类,做一下笔记!
- Tessellation Shader 随笔
- C语言头文件、库文件的查找路径
- 软件设计基础——抽象与逐步求精
- 高性能Socket服务器编程-01
- Linux(ubuntu)如何用iptables实现端口映射
- 花了两个小时做了那么一个很丑的Java写的三角形判断器......
- 数据库——查询
- 高性能Socket服务器编程-02
- java 可设置最大内存
- 【算法】奇偶调序
- How To: Design a Hull Shader
- GC与Finalize()
- shell输入与输出
- 多线程编程