基于JAVA的简单计算器的设计与实现

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:liongliong591
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:计算器是当今社会较常见的电子产品之一。随着科学技术发展的日新日异,计算器已经在生活中无处不在。它大大降低了数字计算的难度,提高了计算的准确度和精确度,奠定了其它科学发展研究的基础。Java是一种简单的,面象对象的,分布式的,解释的,键壮的,安全的,结构的,中立的,可移植的,性能很优异的多线程的,动态的语言。该文基于AWT组,设计了GUI界面的计算器应用程序,完成简单的算术运算。通过设计,达到了预期功能效果。
  关键词:Java;计算器;信息化
  中图分类号:TP313文献标识码:A文章编号:1009-3044(2012)12-2786-03
  Java是目前全球较有影响力的软件开发工具之一,是应用非常广泛的一种面向对象的程序设计语言。Java不仅仅适于在网页上内嵌动画,而且是一门极好的完全的软件编程的小语言。“虚拟机”机制、垃圾回收以及没有指针等使它很容易实现不易崩溃且不会泄漏资源的可靠程序。JAVA丢弃了很多C 的复杂功能,形成一门紧凑而易学的语言。不像C ,Java强制面向对象编程,要在Java里写非面向对象的程序就像要在Pascal里写“空心粉式代码”一样困难。Java的优点很多:二进制码可移植到其他平台;程序可以在网页中运行;内含的类库非常标准且极其健壮;自动分配合垃圾回收避免程序中资源泄漏等等。该文即为用JAVA实现拟合二次函数。课程设计是培养学生综合运用所学知识,发现、提出、分析并解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。设该文设计了GUI界面的计算器应用程序,完成简单的算术运算。
  1设计思路
  笔者设计的计算器是基于AWT组;其功能就是可以完成加法、减法、乘法、除法简单运算。
  此程序由3个面板组成,第一个面板放置输入信息和运算结果的显示文本域以及一个清除输入的按钮。SetLayout方法用于设置容器的布局管理器。此程序采用流布局,即FlowLayout,所有放置的组件按大小依次排列。
  第二个面板放置数字按钮(“9、8、7、6、5、4、3、2、1、0”),点按钮(“、”)及等于(“=”)按钮。在for循环中,依次实例化9个数字按钮,并将按钮用add方法加入到面板2中。setForeground方法可为组件设置前景色,这里为功能键按钮设置为红色,以将功能按钮与数字按钮分开。
  第三个面板放置4个运算符——加、减、乘、除
  最后,将三个面板放置到Applet中,Applet按照FlowLayout布局,依次加入的三个面板会按照顺序及它们的尺寸入放置到合适的位置。
  事件处理:事件处理通过action方法来完成[public boolean action(Event e, Object o){}],可通过Event类的target变量来获取事件来源,将e.target与等于按钮bEqual相比较,如果相符,则事件来源于等于按钮,这里就应调用对应的方法处理运算结果,并将其显示出来。if(e.target == bEqual) { //等于按钮事件处理doOperator(); //处理运算}
  数字运算
  用户输入的是字符串,有运算之前,需要将其转换成其他数据类型,这里,需要将字符串转换成double值。首先,从字符串得到一个Double类的实例,调用该实例的doubleValue方法可得到与字符串对应的double值。也可以调用Double类中的parseDouble方法直接从字符得到double值。
  以加法举例说明运算过程。将操作符“ ”比较,确定运算类型。如果为加,则直接将两者相加,得到运算结果,并通过setText方法显示在文本域中。
  dFore = (new Double(foreText)).doubleValue(); //得到第一输入
  dBack = (new Double(backText)).doubleValue(); //得到第二输入f
  oreText = "";
  backText = tfAnswer.getText();
  if(preOp.equals(" "))
  { //加运算处理
  d = new Double((dBack dFore)); //得到运算结果
  tfAnswer.setText(d.toString()); //显示运算结果
  backText = d.toString();}
  2具体实现
  部分程序源代码如下:
  public void doOperator()
  { double dFore,dBack;
  Double d;
  if(preOp.equals(""))
  {
  backText = foreText;//保存当前输入的操作数,以便后来显示
  foreText = "";//为存贮下一个操作数作准备
  tfAnswer.setText(backText); //显示文本
  }
  else
  {
  dFore = (new Double(foreText)).doubleValue(); //将第一输入数据转化成相应的double型数
  dBack = (new Double(backText)).doubleValue(); //得到第二输入
  foreText = "";
  backText = tfAnswer.getText(); //tfAnswer小屏幕
  if(preOp.equals(" "))
  { //加运算处理
  d = new Double((dBack dFore)); //得到运算结果
  tfAnswer.setText(d.toString()); //显示运算结果
  backText = d.toString();}
  if(preOp.equals("-"))
  {//减运算处理
  d = new Double((dBack - dFore));//得到运算结果
  tfAnswer.setText(d.toString()); //显示运算结果
  backText = d.toString();}
  if(preOp.equals("*"))
  {//乘运算处理
  d = new Double((dBack * dFore));//得到运算结果
  tfAnswer.setText(d.toString());//显示运算结果
  backText = d.toString();}
  if(preOp.equals("/"))
  {//除运算处理
  if (dFore==0){
  tfAnswer.setText("除数不能为0"); //显示出错信息
  return;}
  d = new Double((dBack / dFore));//得到运算结果
  tfAnswer.setText(d.toString());//显示运算结果
  backText = d.toString();}}
  
  4总结
  本设计很好地完成了简单计算机器的设计与实现,通过理论与实际相结合,把所学的理论知识与实践相结合起来,从理论中得出结论,进一步提高自身的实际动手能力和独立思考的能力。该设计的完成涉及JAVA各方面知识的综合运用,为以后在这些方面的应用提供了很好的例程。
  参考文献:
  [1]吕凤翥.Java语言程序设计[M].北京:清华大学出版社,2006.
  [2]张文乐.基于Java的计算机图形学[M].北京:科学出版社,2004.
其他文献
说起数学家中最出名的天才,也许就是高斯了。你知道吗?高斯在三岁时,就已经学会计算了。有一天,高斯观看父亲计算帮工们的工钱,他父亲念叨了半天总算报出总数。这时,高斯用微
目的研究分析缺铁性贫血孕妇围产期护理方式,对该类患者提供积极有效的护理。方法整理收集我院2013年接收的76例缺铁性贫血患者来进行研究分析,患者年龄22-37岁,孕周19-40周
目的:探究某院个体化用药相关基因检测技术在临床应用和推广的影响因素及相应的解决方案。方法:通过对某院药物相关基因检测在临床的实际应用、检测费用和患者对该检测接受程
目的 探讨以人为本理念在护理管理中的应用价值。方法 选取我院实施以人为本护理管理模式前及实施人本护理管理模式后的患者各68例,对比实施前后两组患者MUIS量表评分及护理
万商云集、品牌荟萃、业界瞩目的2007深圳国际珠宝展在花团锦簇的深圳会展中心缓缓落下帷幕。从2000年举办第一届展览会至今。深圳珠宝展已成长成为中国内地最具规模、最高档
据《菲律宾星报》8月21日报道,菲农业行业协会(Sinag)表示,近期菲吕宋岛邦板牙省家禽养殖场遭遇禽流感侵袭,菲农业部颁布了禁止吕宋岛家禽运至其它地区的禁令,禽肉消费市场因此
变更对于信息系统项目的影响不言而喻。该文从项目管理的角度出发,分析了变更的产生原因、变更对项目的主要影响、预防和减少变更的常见措施,并重点论述了变更发生时如何按照
利用php+mysql强大的后台数据处理能力结合强大的javascript加上完善的jquery库和ajax异步传输技术,css+div精确的页面元素定位设计在英语线考试系统,使得该系统不管从可用性
巴尔加斯·略萨的小说《叙事人》中有两个视角:"巴尔加斯·略萨"的视角和"叙事人"的视角。这两个视角分别代表了西方文化与原始印第安文化两种文化眼光。双文化视角的选择是
目的探讨产科DIC子宫切除术的手术室急救护理方法。方法选取产科DIC子宫切除术患者100例,随机分为观察组和对照组,每组患者均为50例,观察组给予者针对性的急救护理,对照组给