中学生多功能计算器设计

[日期:2017-06-01] 作者:信息技术 次浏览 [字体: ]
 

中学生多功能计算器设计

(成都市第32届科创大赛程序设计类一等奖)

八年级13班罗士勇 指导教师 旷勇

计算器是我们生活、学习中常用的小工具。自从上中学以来我们逐渐感受到市面上购买的简易计算器的功能越来越不够用。何不自己动手开发一个多功能计算器程序来满足中学生的需求呢?所以,我决定编写一个多功能的计算器程序来专门为我们中学生服务。

这个计算器程序要能满足中学生常用的计算需求,所以它的计算功能必须包括我们中学所学的各种数学计算。经过对初中阶段数学知识点的详细分析我归纳了以下一些功能:常规四则运算、周长计算、面积计算、体积计算、指数计算三角函数计算等。考虑到中学生学习压力大强度高,我还特意增加了益智小游戏这个模块,让大家在学习之余可以适当放松自己,从而进一步提高学习效率,更好地实现劳逸结合。

程序设计语言我选用的是PythonPython是一种面向对象的解释型计算机程序设计语言,它语法简洁清晰、易于学习易于阅读、易于维护、代码定义的更明确、可移植性强,它具有比其他语言更有特色语法结构。

中学生多功能计算器以命令按钮的方式工作,主窗口界面如图1所示。结构简单、功能清晰明了。主要采用的控件commandLinkButton命令按钮以及label标签。

计算器模块仍然沿用经典的计算器界面,这样可以让使用者无需任何学习轻松上手。操作方法可以用鼠标点击也可以用键盘输入,十分方便满足不同使用者的习惯。(如图2

公式计算是中学生多功能计算器的亮点所在,同时也是这个计算器的核心。中学生涉及到的公式计算众多,经过分析我选定了最为常用的一部分公式计算放入多功能计算器,舍去了一些生僻的公式。这样多功能计算器的公式计算功能就变得既实用又精简。(如图3

公式运算窗口是不同公式具体计算的实施模块,其结构和功能基本大同小异。主要运用了lineEdit作为数据的输入控件、pushButton作为计算命令控件、textBrowser作为结果输出控件。由于不同的公式计算要求输入的变量类型不同,为防止在使用过程中出现输入与预期不同类型的变量造成计算错误或溢出,增强程序的健壮性,特意在每一个公式计算窗口代码中都增加了一条代码:except:QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!')。以三角函数的计算为例:如果我们输入的值为正常的度数值,按下计算按钮后输出控件就会显示计算结果;如果输入与预期不符(比如不小心输入字母)程序会停止计算,同时弹出消息框QMessageBox:“你输入的字符不正确!”(如图4

随着学业的不断深入,我们需要用到的计算公式类型会不断增长、公式数量会不断增多。比如,现在的物理公式计算、将来的化学计算……我还会一直把这个多功能计算器的功能扩展下去,让它真正成为一个理科学习的小的帮手。

附:三角函数部分核心代码如下。

class sjhs(QtGui.QWidget):

  def sin1(self):

   try:

      d = float(self.lineEdit.text())

         if d > 0:

           self.a1= str(math.sin(math.radians(d)))

              self.textBrowser.setText(self.a1)

         else:

       QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!')

     except:

        QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!')

 def cos1(self):

     try:

        g = float(self.lineEdit_2.text())

           if g > 0:

              self.a2 = str(math.cos(math.radians(g)))

              self.textBrowser_3.setText(self.a2)

           else:

              QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!')

      except:

              QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!')

 def tan1(self):

      try:

          w = float(self.lineEdit_3.text())

          if w > 0:

             self.a3 = str(math.cos(math.radians(w)))

             self.textBrowser_2.setText(self.a3)

          else:

             QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!')

      except:

             QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!')