刚上CSDN时看到别人写《学习JAVA三个月写 的计算器程序》 ,觉的那人很牛,虽然那个程序不健壮,但我还是很佩服那个作者,现在我学JAVA二个月 了(过年时休了半个月),刚学了一点GUI的知识,就也写了一个计算器的程序,比那个人写的好多了,程序安全,健壮,小数点问题也解决,和Windows XP 里的计算器(标准型),功能上是一样的,可以输入 :2+3+5+6+8-8*8/ 8 ,5*6======,多输小数点也行。
代码361行,这里放不下, 请进我的Blog
http://blog.csdn.net/elf8848/archive/2007/03/06/1522448.aspx
代码361行,这里放不下, 请进我的Blog
http://blog.csdn.net/elf8848/archive/2007/03/06/1522448.aspx
1-2+3计算结果为6
其实这些不用比,也没有可比性,各有各的优长,各有各的实用须求。
chairmanwei() 说的对 :java的路还长着呢。
--------------------Configuration: <Default>--------------------
C:\WINDOWS\Temp\Calculator.java:10: class Tuo is public, should be declared in a file named Tuo.java
public class Tuo
^
Note: C:\WINDOWS\Temp\Calculator.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 errorProcess completed.
健壮?
1.输入3.1415926535897932384,按=号-〉结果是什么?觉得这样好吗?
2.在1的基础上()输入一个运算符,再按=号-〉结果是什么?
3.结果框可以编辑,可以输入q-98=-〉结果是什么?当然,这个处理也可以说对了。但如果我其实是想输入1-98=的呢(看到LZ想设等效键了) 由于可以编辑,还有输入任意字符来运算,....
(号称可以运算2+3+5+6+8-8*8/ 8,那么直接在里面输入2+3+5+6+8-8*8/ 8,会有什么结果呢)
4.可能是习惯了现实的计算器:觉得“清除”的把显示屏清除成一片空白吗?
5.1/0==0?
以上,bug~
一下,设计:
1.这么个功能的东西,需要这么的状态么?我以为2+2/1就够了呢:不记得了~
2.实现简单的东西,就想的全面一点嘛。不要才考虑那么几种情况就说它健壮了哦
3.java OO?就这么样吧
只是看楼主好像有点...了,没别的意思
说得不好,大家尽情的BS我吧
->
输入之前先按一下“清除”再看看:“清除”-〉[数字]-〉按=号-〉运算符-〉按=号
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:994)
at java.lang.Double.valueOf(Double.java:447)
at test.Calculator.yuns(Calculator.java:324)
at test.Calculator$1JianTing_dy.actionPerformed(Calculator.java:225)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
另外没有清除按错的数字的功能,,backspace
这些功能在xp里的计算器有
BUG多!没关系,BUG可以改。