1 /*实现基本数学运算、函数等功能:加、减、乘、除、阶乘、正弦、余弦和指数运算。2 界面将模拟Windows中的计算器程序。*/

3 import javax.swing.*;4 import java.awt.*;5 import java.awt.event.*;6 importjava.io.FileInputStream;7 importjava.io.FileOutputStream;8 importjava.io.ObjectInputStream;9 importjava.io.ObjectOutputStream;10 importjava.util.Hashtable;11

12 public class Calculator extends Frame implementsActionListener{13

14 Panel txtpanel,btnpanel,southpanel;15 JTextField txtinput;16 JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdes,bf;17 JButton chengbtn,chubtn,jiabtn,jianbtn,clearbtn,equalbtn,sinbtn,cosbtn,jiechengbtn,sqrtbtn,zhishubtn,daoshubtn;18 doublesum,result;19 Menu editM,searchM,helpM;20 MenuBar bar;21 String sign;22 boolean bool=true;23

24 publicCalculator()25 {26 super("计算器");27 txtpanel=newPanel();28 btnpanel=newPanel();29 southpanel=newPanel();30 txtinput=new JTextField(40);31 txtinput.setEditable(false);32 txtinput.setText("");33 bar=newMenuBar();34

35 helpM=new Menu("帮助");36 helpM.add(new MenuItem("帮助主题"));37 helpM.addSeparator();38 helpM.add(new MenuItem("sin 正弦"));39 helpM.add(new MenuItem("cos 余弦"));40 helpM.add(new MenuItem("! 阶乘"));41 helpM.add(new MenuItem("C 清除"));42 helpM.add(new MenuItem("÷ 除"));43 helpM.add(new MenuItem("* 乘"));44 helpM.add(new MenuItem("+ 加"));45 helpM.add(new MenuItem("- 减"));46 helpM.add(new MenuItem("+/- 正负变号"));47 helpM.add(new MenuItem("√ 开方"));48 helpM.add(new MenuItem("1/x 倒数x^y"));49 helpM.add(new MenuItem("x^y 次方"));50 helpM.add(new MenuItem("1~9 数字键"));51 helpM.add(new MenuItem("= 等于"));52 bar.add(helpM);53

54 setMenuBar(bar);55 //关联各键与符号并设置键的符号字体大小及颜色

56 b1=new JButton("1");57 b1.setFont (new Font("1",Font.BOLD,20));58 b1.setForeground(Color.black);59

60 b2=new JButton("2");61 b2.setFont (new Font("2",Font.BOLD,20));62 b2.setForeground(Color.black);63

64 b3=new JButton("3");65 b3.setFont (new Font("3",Font.BOLD,20));66 b3.setForeground(Color.black);67

68 b4=new JButton("4");69 b4.setFont (new Font("4",Font.BOLD,20));70 b4.setForeground(Color.black);71

72 b5=new JButton("5");73 b5.setFont (new Font("5",Font.BOLD,20));74 b5.setForeground(Color.black);75

76 b6=new JButton("6");77 b6.setFont (new Font("6",Font.BOLD,20));78 b6.setForeground(Color.black);79

80 b7=new JButton("7");81 b7.setFont (new Font("7",Font.BOLD,20));82 b7.setForeground(Color.black);83

84 b8=new JButton("8");85 b8.setFont (new Font("8",Font.BOLD,20));86 b8.setForeground(Color.black);87

88 b9=new JButton("9");89 b9.setFont (new Font("9",Font.BOLD,20));90 b9.setForeground(Color.black);91

92 b0=new JButton("0");93 b0.setFont (new Font("0",Font.BOLD,20));94 b0.setForeground(Color.black);95

96 bdes=new JButton(".");97 bdes.setFont (new Font(".",Font.BOLD,20));98 bdes.setForeground(Color.black);99

100 bf=new JButton("+/-");101 bf.setFont (new Font("+/-",Font.BOLD,20));102 bf.setForeground(Color.red);103

104 chengbtn=new JButton("*");105 chengbtn.setFont(new Font("*",Font.BOLD,20));106 chengbtn.setForeground(Color.red);107

108 chubtn=new JButton("÷");109 chubtn.setFont(new Font("÷",Font.BOLD,20));110 chubtn.setForeground(Color.red);111

112 jiabtn=new JButton("+");113 jiabtn.setFont(new Font("+",Font.BOLD,20));114 jiabtn.setForeground(Color.red);115

116 jianbtn=new JButton("-");117 jianbtn.setFont(new Font("-",Font.BOLD,20));118 jianbtn.setForeground(Color.red);119

120 clearbtn=new JButton("C");121 clearbtn.setFont(new Font("C",Font.BOLD,20));122 clearbtn.setForeground(Color.red);123 clearbtn.addActionListener(new ActionListener()//创建监听器

124 {125 public voidactionPerformed(ActionEvent e){126 txtinput.setText("");127 }128 });129

130 sinbtn=new JButton("sin");131 sinbtn.setFont(new Font("sin",Font.BOLD,15));132 sinbtn.setForeground(Color.red);133

134 cosbtn=new JButton("cos");135 cosbtn.setFont(new Font("cos",Font.BOLD,15));136 cosbtn.setForeground(Color.red);137

138 sqrtbtn=new JButton("√");139 sqrtbtn.setFont(new Font("√",Font.BOLD,15));140 sqrtbtn.setForeground(Color.red);141

142 zhishubtn=new JButton("x^y");143 zhishubtn.setFont(new Font("x^y",Font.BOLD,15));144 zhishubtn.setForeground(Color.red);145

146 daoshubtn=new JButton("1/x");147 daoshubtn.setFont(new Font("1/x",Font.BOLD,15));148 daoshubtn.setForeground(Color.red);149

150 jiechengbtn=new JButton("!");151 jiechengbtn.setFont(new Font("!",Font.BOLD,20));152 jiechengbtn.setForeground(Color.red);153

154 equalbtn=new JButton("=");155 equalbtn.setFont(new Font("=",Font.BOLD,20));156 equalbtn.setForeground(Color.red);157 //设置键位分布

158 setLayout(newBorderLayout());159

160 txtpanel.add(txtinput);161 add("North",txtpanel);162

163 btnpanel.setLayout(new GridLayout(5,4,1,3));//五行四列分布

164

165 btnpanel.add(sinbtn);166 btnpanel.add(cosbtn);167 btnpanel.add(jiechengbtn);168 btnpanel.add(clearbtn);169 btnpanel.add(b1);170 btnpanel.add(b2);171 btnpanel.add(b3);172 btnpanel.add(chubtn);173 btnpanel.add(b4);174 btnpanel.add(b5);175 btnpanel.add(b6);176 btnpanel.add(chengbtn);177 btnpanel.add(b7);178 btnpanel.add(b8);179 btnpanel.add(b9);180 btnpanel.add(jianbtn);181 btnpanel.add(b0);182 btnpanel.add(bdes);183 btnpanel.add(bf);184 btnpanel.add(jiabtn);185

186 add("Center",btnpanel);187

188 southpanel.setLayout(new GridLayout(1,4,1,3));//一行四列分布

189 southpanel.add(sqrtbtn);190 southpanel.add(zhishubtn);191 southpanel.add(daoshubtn);192 southpanel.add(equalbtn);193

194 add("South",southpanel);195 //监听按键

196 b1.addActionListener(this);197 b2.addActionListener(this);198 b3.addActionListener(this);199 b4.addActionListener(this);200 b5.addActionListener(this);201 b6.addActionListener(this);202 b7.addActionListener(this);203 b8.addActionListener(this);204 b9.addActionListener(this);205 b0.addActionListener(this);206 bdes.addActionListener(this);207 bf.addActionListener(this);208

209 sinbtn.addActionListener(this);210 cosbtn.addActionListener(this);211 jiechengbtn.addActionListener(this);212 sqrtbtn.addActionListener(this);213 zhishubtn.addActionListener(this);214 daoshubtn.addActionListener(this);215 chengbtn.addActionListener(this);216 chubtn.addActionListener(this);217 jiabtn.addActionListener(this);218 jianbtn.addActionListener(this);219 equalbtn.addActionListener(this);220

221 setSize(280,290);222 setVisible(true);223 setLocation(400,200);224 addWindowListener(newWindowCloser());225

226 }227

228 class WindowCloser extendsWindowAdapter{229 public voidwindowClosing(WindowEvent e){230 System.exit(0);231 }232 }233

234 public voidactionPerformed(ActionEvent e){235

236 Object obj=e.getSource();237 //设置相关计算方法

238 if(obj==b1)239 txtinput.setText(txtinput.getText()+"1");240 else if(obj==b2)241 txtinput.setText(txtinput.getText()+"2");242 else if(obj==b3)243 txtinput.setText(txtinput.getText()+"3");244 else if(obj==b4)245 txtinput.setText(txtinput.getText()+"4");246 else if(obj==b5)247 txtinput.setText(txtinput.getText()+"5");248 else if(obj==b6)249 txtinput.setText(txtinput.getText()+"6");250 else if(obj==b7)251 txtinput.setText(txtinput.getText()+"7");252 else if(obj==b8)253 txtinput.setText(txtinput.getText()+"8");254 else if(obj==b9)255 txtinput.setText(txtinput.getText()+"9");256 else if(obj==b0)257 txtinput.setText(txtinput.getText()+"0");258 else if(obj==bdes)259 txtinput.setText(txtinput.getText()+".");260

261 else if(obj==bf){262 sum=Double.valueOf(txtinput.getText()).doubleValue();263 boolean bool=true;264 if( bool){265 result=sum-2*sum;266 bool=false;267 }268 else{269 result=sum+2*sum;}270 txtinput.setText(String.valueOf(result));271 }272

273 else if(obj==sinbtn){274 sum=Double.valueOf(txtinput.getText()).doubleValue();275 result=Math.sin(sum);276 txtinput.setText(String.valueOf(result));277 }278

279 else if(obj==cosbtn){280 sum=Double.valueOf(txtinput.getText()).doubleValue();281 result=Math.cos(sum);282 txtinput.setText(String.valueOf(result));283 }284

285 else if(obj==zhishubtn){286 sum=Double.valueOf(txtinput.getText()).doubleValue();287 sign="x^y";288 txtinput.setText("");289 }290

291 else if(obj==daoshubtn){292 sum=Double.valueOf(txtinput.getText()).doubleValue();293 result=1/sum;294 txtinput.setText(String.valueOf(result));295 //sign="1/x";296 //txtinput.setText("");

297 }298

299 else if(obj==sqrtbtn){300 sum=Double.valueOf(txtinput.getText()).doubleValue();301 result=Math.sqrt(sum);302 txtinput.setText(String.valueOf(result));303 //sign="√";304 //txtinput.setText("");

305 }306

307 else if(obj==jiechengbtn){308 intn;309 n=(int)Double.valueOf(txtinput.getText()).doubleValue();310 result=fac(n);311 txtinput.setText(String.valueOf(result));312 }313

314 else if(obj==jiabtn)315 {316 sum=Double.valueOf(txtinput.getText()).doubleValue();317 sign="+";318 txtinput.setText("");319 }320

321 else if(obj==jianbtn)322 {323 sum=Double.valueOf(txtinput.getText()).doubleValue();324 sign="-";325 txtinput.setText("");326 }327 else if(obj==chubtn)328 {329 sum=Double.valueOf(txtinput.getText()).doubleValue();330 sign="÷";331 txtinput.setText("");332 }333

334 else if(obj==chengbtn)335 {336 sum=Double.valueOf(txtinput.getText()).doubleValue();337 sign="*";338 txtinput.setText("");339 }340

341 else if(sign=="+")342 {343 result=sum+Double.valueOf(txtinput.getText()).doubleValue();344 txtinput.setText(String.valueOf(result));345 }346

347 else if(sign=="-")348 {349 result=sum-Double.valueOf(txtinput.getText()).doubleValue();350 txtinput.setText(String.valueOf(result));351 }352

353 else if(sign=="÷")354 {355 doublen;356 String m="除零错误!";357 n=Double.valueOf(txtinput.getText()).doubleValue();358 if(n==0){359 JOptionPane.showMessageDialog(this, m, "error", JOptionPane.ERROR_MESSAGE);360 }361 else

362 result=sum/n;363 txtinput.setText(String.valueOf(result));364 }365

366 else if(sign=="*")367 {368 result=sum*Double.valueOf(txtinput.getText()).doubleValue();369 txtinput.setText(String.valueOf(result));370 }371

372 else if(sign=="x^y"){373 result=Math.pow(sum,Double.valueOf(txtinput.getText()).doubleValue());374 txtinput.setText(String.valueOf(result));375 }376

377 else if(sign=="sin")378 {379 result=Math.sin(sum);380 txtinput.setText(String.valueOf(result));381 }382

383 else if(sign=="cos")384 {385 result=Math.cos(sum);386 txtinput.setText(String.valueOf(result));387 }388

389 else if(sign=="!")390 {391 int i=(int)Double.valueOf(txtinput.getText()).doubleValue();392 for(int j=i;j>0;i--){393 result=j*(j-1);394 }395 txtinput.setText(String.valueOf(result));396 }397

398 else if(obj=="√"){;399 result=Math.sqrt(sum);400 txtinput.setText(String.valueOf(result));401 }402

403 else if(obj=="1/x"){404 result=1/sum;405 txtinput.setText(String.valueOf(result));406 }407 }408

409 private long fac(intn){410 longf;411 if(n==0)412 f=1;413 else f=fac(n-1)*n;414 returnf;415 }416 public static voidmain(String args[]){417 try{418 UIManager.setLookAndFeel ("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");419 } catch(Exception e) {}420 new Calculator();//使用windows显示风格

421 }422

423 }

计算器程序java开方运算_模拟计算器java程序相关推荐

  1. java计算器如何实现运算_用java编写了一个模拟计算器的界面设计,怎么实现运算功能呢...

    用java编写了一个模拟计算器的界面设计,怎么实现运算功能呢 2020 - 9 - 16 TAG : view sourceprint?import java.awt.BorderLayout; im ...

  2. 定义分数类中和运算符重载,实现分数的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然。

    /* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作    者:李德彪 *完成时间:2016年6月15日 * ...

  3. java廖雪峰_廖雪峰Java教程学习笔记(一)——Java程序基础

    (一)Java程序基本结构 Java是面向对象的语言,一个程序的基本单位就是class.在class内部,可定义若干方法. 类名要求: 类名必须以英文字母开头,后接字母,数字和下划线的组合 习惯以大写 ...

  4. A002、java环境搭建_第一个java程序

    目录 1.内容介绍 2.软件开发概述 2.1 软件开发概念 2.2 软件开发示例 2.3 软件开发语言 2.3.1 计算机语言概述 2.3.2 计算机语言分类 2.4 小结 3.Java概述 3.1 ...

  5. java 浮点数运算_对于同样的浮点数运算为何 Java 与 C 的结果不相同?

    @bombless 在问题的评论里写得没错.IEEE 754最重要的(大家基本上遵守的)是数据的格式.虽然也有算法上的指引(例如有各种rounding mode),但实际上大家实现得不一定那么严格. ...

  6. java 用程序代码解释继承_关于初级java程序员笔试题

    关于初级java程序员笔试题 Sun 认证Java程序员考试内容涉及Java所有相关知识.编程概念及applet开发技巧.下面是小编整理的关于初级java程序员笔试题,欢迎大家参考! 第一题:判断题 ...

  7. java程序包不存在_第一章 Java语言简介

    Java语言简介 Java之父 James Gosling(詹姆斯·高斯林) 正式诞生时间 1995年,已有二十多年历史 三大方向 JavaSE(桌面版,基础需重点掌握) JavaME(移动版,现在基 ...

  8. c java开发对比_编程语言:Java和C语言的比较,你更偏向于哪个?老程序员:选C...

    现在在编程语言排行中,Java毫无争议的排在第一位,Python以及C语言紧随其后.现在很多人拿Java以及C语言作比较:有人认为Java作为当前最热门的编程语言,学习Java的出路最大或者说作为一个 ...

  9. java程序员的名言_收集53个程序员励志名言

    1.要么做第一个,要么做最好的一个. 2.信念和目标,必须永远洋溢在程序员内心. 3.最累的时候,家人是你最好的归宿. 4.C程序员永远不会灭亡.他们只是cast成了void. 5.真正的程序员认为自 ...

最新文章

  1. 肢解“文件夹图标”病毒,制作专杀工具——“郑大扫帚”
  2. 微软MS10-046漏洞的利用
  3. ESLint共享配置的两种方式eslint-plugin和eslint-config
  4. 现在做Android开发有前途吗?复习指南
  5. [ASP.NET 控件实作 Day12] 继承 TBActiveX 重新改写 TBMediaPlayer 控件
  6. 3.11 SE11创建搜索帮助
  7. 3dmax脚本_3DMax二种距离测量方法
  8. SVN 更新发生冲突各选项含义
  9. 114 Python程序中的进程操作-进程间通信(multiprocess.Queue)
  10. 定义带参数的C宏,方便输出调试信息
  11. [乐意黎原创] 送李愿归盘谷序
  12. php java扩展模块_php扩展模块装安装
  13. 多目标跟踪评价指标总结——MOTA、IDF1、HOTA等
  14. 取消IE8打开HTTPS带图片内容后提示安全警告
  15. 数字孪生 3D 风电场,智慧风电之海上风电
  16. 当初的愿望实现了么?
  17. 5G无人机,到底有什么特别?
  18. CMD命令——拷贝文件夹
  19. 嵌入式:浅析FinFET技术的发展前景
  20. 羊皮卷的故事-第六章

热门文章

  1. 2018.8.18梦中的凶杀案
  2. 减法器运算电路公式推导
  3. pythoneducoder苹果梨子煮水的功效_【苹果和梨煮水的功效】_同梨煮水_作用-大众养生网...
  4. 知识资源整理(持续更新)
  5. Shiro中自定义Realm
  6. CAD全称AutoCAD (全系列中文版软件+注册机下载) 2004-2020 安装视频教程
  7. 基于JAVA HAPI包以树形结构实现可配置式 HL7消息接收与解析
  8. 大话主流分布式文件系统!
  9. 关于人工智能的思考--以copilot、openAI为例
  10. 分布图用什么软件制作,公司区域分布图怎么做