求大神帮助菜鸟,指导计算器的改进

问题描述

用java语言编写简单的计算器,但是没有实现异常捕获(被除数为0时),还有最严重的就是不能清零,特别希望好心人能帮助我修改程序,还有就是如果发现其他问题请一并改正,好人啊好人//packageorg.swing;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;classMyFrameextendsJFrame{publicMyFrame(){setTitle("简单计算器");setBounds(500,400,200,200);setResizable(true);MyPanelpanel=newMyPanel();add(panel);pack();}}classMyPanelextendsJPanel{privateJButtondisplay;privateJPanelpanel;privatedoubleresult;privateStringlastCommand;privatebooleanstart;publicMyPanel(){setLayout(newBorderLayout());result=0;lastCommand="=";start=true;display=newJButton("");display.setEnabled(false);add(display,BorderLayout.NORTH);ActionListenerinsert=newInsertAction();ActionListenercommand=newCommandAction();panel=newJPanel();panel.setLayout(newGridLayout(4,5));addButton("1",insert);addButton("2",insert);addButton("3",insert);addButton("%",command);addButton("+",command);addButton("4",insert);addButton("5",insert);addButton("6",insert);addButton("√",command);addButton("-",command);addButton("7",insert);addButton("8",insert);addButton("9",insert);addButton("C",command);addButton("*",command);addButton("0",insert);addButton(".",insert);addButton("=",command);addButton("1/X",command);addButton("/",command);add(panel,BorderLayout.CENTER);}privatevoidaddButton(Stringlabel,ActionListenerlistener){JButtonbutton=newJButton(label);button.addActionListener(listener);panel.add(button);}privateclassInsertActionimplementsActionListener{publicvoidactionPerformed(ActionEventevent){Stringinput=event.getActionCommand();if(start){display.setText("");start=false;}display.setText(display.getText()+input);}}privateclassCommandActionimplementsActionListener{publicvoidactionPerformed(ActionEventevent){Stringcommand=event.getActionCommand();if(start){if(command.equals("-")){display.setText(command);start=false;}elselastCommand=command;}else{calculate(Double.parseDouble(display.getText()));lastCommand=command;start=true;}}}publicvoidcalculate(doublex){if(lastCommand.equals("+"))result+=x;elseif(lastCommand.equals("-"))result-=x;elseif(lastCommand.equals("*"))result*=x;elseif(lastCommand.equals("/"))result/=(float)x;elseif(lastCommand.equals("="))result=x;elseif(lastCommand.equals("1/X"))result=1/x;elseif(lastCommand.equals("%"))result%=x;elseif(lastCommand.equals("√"))result=Math.sqrt(x);display.setText(""+result);if(lastCommand.equals("C"))display.setText(""+result);}}publicclassCalculator{publicstaticvoidmain(Stringargs[]){MyFrameframe=newMyFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}}

解决方案

解决方案二:
呵呵。。。。说的好不具体。。。怎么样才是好的计算器呢
解决方案三:
好吧,只希望能够添加异常处理,还有能使清零准确运行

时间: 2024-07-30 21:13:24

求大神帮助菜鸟,指导计算器的改进的相关文章

web项目里怎么写一个对账功能求大神指点

问题描述 web项目里怎么写一个对账功能求大神指点 菜鸟 想问下web项目里怎么写个对账功能求给点思路 自己一点思路啊没有 解决方案 http://blog.csdn.net/fangkailove/article/details/4071656 解决方案二: 就是这样的需求要怎么写啊

我是菜鸟,在window编程出现错误,求大神指导!!

问题描述 我是菜鸟,在window编程出现错误,求大神指导!! //头文件 #include #include #pragma comment(lib,"Winmm.lib") //宏定义 #define WINDOW_WIDTH 800//窗口宽度定义的宏,方便修改 #define WINDOW_HEIGHT 600//高度 #define WINDOW_TITLE L"[致我们永不熄灭的游戏开发梦想]GDI程序核心框架"//标题 //全局函数声明 HDC g_h

qt-Qt 字符串函数定义 小弟菜鸟一枚,求大神指导。

问题描述 Qt 字符串函数定义 小弟菜鸟一枚,求大神指导. 定义了一个类为 xt,变量filename:函数QString getname() 为什么QString xt::getname() { return filename:} 获取不到filename的值呢 解决方案 qt里有this没,加个this? 解决方案二: 不应该的,这么短的一个函数.稍微完整的点代码贴出来·· 解决方案三: 总共定义了两个类.xt和testdialog.类testdiaolog的lineEdit想要获取类xt的

编码-菜鸟求大神指导如何才能设置android menu在频幕下方横排显示

问题描述 菜鸟求大神指导如何才能设置android menu在频幕下方横排显示 我的显示是这样的! 但是我想要的是menu在频幕下方横排显示. 我的代码如下: <?xml version="1.0" encoding="utf-8"?> <item android:title="File" android:icon="@drawable/file"> <menu> <group and

菜鸟 求解答-orcale中between and的sql语句怎么写啊!求大神指导

问题描述 orcale中between and的sql语句怎么写啊!求大神指导 就是我想查询数据库中name列里随便一个范围内的数据 该怎么写呢, 解决方案 你的name是什么类型的? 字符串的话只能用枚举了. name in ('a','b','c') 如果是说数字类型或者日期时间类型,可以用 between and 或者 > < 当然也可以枚举 举例如下: 字段类型: name varchar2(30), age int(3) select * from tableName where n

编程-java菜鸟程序员提问:求大神给我说说线程在什么场景下用,以及多线程工作原理。谢谢

问题描述 java菜鸟程序员提问:求大神给我说说线程在什么场景下用,以及多线程工作原理.谢谢 现在java线程编程应用广泛吗?哪些时候适合或必须要用多多线程编程呢?多线程的工作原理是怎样的呢?求大神们指导指导,谢了! 解决方案 (1)线程的工作场景主要有两条: 一个是并发操作,避免阻塞和更有效利用资源.典型的例子有:在长时间工作的程序中使用工作线程避免界面失去响应.在网络下载程序中,使用多个线程提高对网络的使用效率,更快下载文件. 一个是并行,线程是处理器调度的最小单位.如果你的计算机配置了多个

mysql-MySQL安装过程中遇到3个问题.菜鸟自学之路好难求大神

问题描述 MySQL安装过程中遇到3个问题.菜鸟自学之路好难求大神 我实在是没招了!求个大神给指导一下.希望可以帮我远程操作一下.按照自学的视频 2015年1月9号第一次学mysql,安装完mysql,一点finish,弹出配置的那个窗口. 可以使用了.真是激动人心. 当天按照视频又使用了SQLyogEnt.exe这个软件,当然了一切都是那么的正常. 学习完毕,我按了一下ctrl+s想保存一下,以为和java一样,一按没想到还要存储到一个目录下,于是存储到一个目录下. DOS窗口下和SQLyog

c#wi-C#中如何在windowsmediaplayer 控件屏幕中添加文本呢,求大神指导

问题描述 C#中如何在windowsmediaplayer 控件屏幕中添加文本呢,求大神指导 C#中如何在windowsmediaplayer 控件屏幕中添加文本呢或者添加字幕呢?哪个属性是的?大神指导下,我是一年级菜鸟.

MFC下socket的收到的数据是如何区别显示在不同的窗口中的呢,求大神们指导!

问题描述 MFC下socket的收到的数据是如何区别显示在不同的窗口中的呢,求大神们指导! MFC下socket的收到的数据是如何区别显示在不同的窗口中的呢,本人是MFC,小菜鸟!求大神们指导! 解决方案 收到数据了,自己按格式得到不同字段数据,然后就是操作窗口各个控件,把数据显示上去.