• 66249阅读
  • 199回复

最牛计算器(含全部源代码) [复制链接]

上一主题 下一主题
离线zswx0226
 

图酷模式  只看楼主 倒序阅读 楼主  发表于: 2012-12-20
— 本帖被 XChinux 执行加亮操作(2016-06-13) —
     看到论坛上这么多大牛公开了源代码,本人也为了弘扬这种精神,将自己辛苦写了4个月的计算器的源代码第一次在这里全部公开
      这个计算器用到的QT中的知识并不高深,非常适合初学者学习界面编程,对于高手也可以学习下里面的算法,主要用到的算法有:后缀式表达式求值、部分选主元高斯消去法求阶梯矩阵,(非)线性方程组等、分段求大整数开方、初等相似变换及QR方法计算全部特征值、反幂法求最大特征值、遗传算法求复系数多项式所有根等。其中很多算法是本人在原有算法之上做了优化(比如求大整数开方、求线性方程组的根,遗传算法求多项式所有根)。
     希望诸位多提些改进的意见,可以是界面效果,也可以是算法效率方面的,为促进大家的交流而顶起!
软件下载在另一贴子中http://www.qtcn.org/bbs/read-htm-tid-51829.html
下面的代码本人在QT Creator 4.8.1上测试过,在Xp和win7都可以运行。
源代码 Calculator.zip (1555 K) 下载次数:5462 (说明本软件只供学习使用,禁止以商业目的出售,将追究法律责任,请最终劳动者的成果!)

下附上运行的图片
计算器的主界面:包含20几个函数,可以进行不同进制之间转换,复数的复杂计算,函数的嵌套,分数形式显示,选择有效数字,角度制和弧度制,还有13个物理数学中的常数、三个变量课选择




大整数工具:可以计算到4万多位的大整数
[attachment=9346]


线性代数工具:可以同时使用3个100*100阶的矩阵,进行20中操作运算




多项式求根工具:可以计算20阶以内的复系数的多项式所有复数(包括实数)根




历史输入管理器:在这里保留了所有正确计算的结果




46条评分好评度+12贡献值+10金钱+33威望+10
翡冷翠 金钱 +3 - 2022-07-05
89614215 好评度 +1 - 2021-04-23
89614215 贡献值 +1 - 2021-04-23
89614215 威望 +1 - 2021-04-23
89614215 金钱 +1 - 2021-04-23
draeag 好评度 +1 - 2020-12-04
draeag 贡献值 +1 - 2020-12-04
draeag 威望 +1 - 2020-12-04
draeag 金钱 +1 - 2020-12-04
幽弥狂 金钱 +3 - 2018-11-25
离线sacredmo
只看该作者 1楼 发表于: 2012-12-20
离线xbb8765
只看该作者 2楼 发表于: 2012-12-20
离线xbb8765
只看该作者 3楼 发表于: 2012-12-20
   ,刚发错了
离线cfxks1989

只看该作者 4楼 发表于: 2012-12-20
    
离线passion_wu
只看该作者 5楼 发表于: 2012-12-20
赞一个,不错
离线realfan

只看该作者 6楼 发表于: 2012-12-20
超赞!!
离线dabears

只看该作者 7楼 发表于: 2012-12-20
太强了 !!超赞!!
离线emilyrd

只看该作者 8楼 发表于: 2012-12-20
离线anders0913
只看该作者 9楼 发表于: 2012-12-20
确实不错,支持楼主
离线寒意

只看该作者 10楼 发表于: 2012-12-20
  给力  
离线沙漠之源

只看该作者 11楼 发表于: 2012-12-20
        
离线bbstz
只看该作者 12楼 发表于: 2012-12-21
这个真心强大,支持一下
离线fishchen

只看该作者 13楼 发表于: 2012-12-22
   呵呵,很好的东西
离线zswx0226

只看该作者 14楼 发表于: 2012-12-22
感谢各位的力鼎啊!!!     
离线mewjerry
只看该作者 15楼 发表于: 2012-12-22
看起来相当不错的样子,顶一个
离线xsjqqq123

只看该作者 16楼 发表于: 2012-12-23
被雷到了,我做的和你不是一个级别的啊……
离线baiwfg2

只看该作者 17楼 发表于: 2012-12-24
。牛哥,赞一个。。
Focus on Embeded
离线jnny_cn

只看该作者 18楼 发表于: 2012-12-25
。牛哥,赞一个。。
离线aisq2008

只看该作者 19楼 发表于: 2012-12-26
真心顶一个,呵呵
离线yanzh

只看该作者 20楼 发表于: 2012-12-26
向您学习!!!!
离线zhanglyl

只看该作者 21楼 发表于: 2012-12-29
很好的素材!
离线transformer

只看该作者 22楼 发表于: 2012-12-29
离线guoyuanqiang
只看该作者 23楼 发表于: 2012-12-29
    
离线atomspace

只看该作者 24楼 发表于: 2012-12-30
初学QT,看了你的程序,学到了很多东西, 非常感谢
有一个问题想请教:calculator类中有大量的slot函数,与计算器按钮一一对应,查看了代码,这些对应关系不是在代码中通过connect手动实现的,而是calculator.ui本身描述了这种对应关系。请问,calculator.ui中的这些对应关系是手动加进去的吗?还是通过某种方式自动生成的?请多多指教!

另:程序中每次打开子窗口,如大整数工具、线性代数工具、多项式求根工具等,代码中时先new  一个新窗口,再通过show显示出来,请问这些窗口关闭后是否销毁?多次打开是不是会占用较多的内存?
离线zswx0226

只看该作者 25楼 发表于: 2012-12-31
问题一:是通过QT中带有的Qt designer来设计界面的时候添加的信息和槽,这些添加完之后,利用Qt creator 来编译的时候就会自动生成一个ui_*****.h的头文件,在这头文件中会把这些信息和槽添加进去的。然后你就利用这个头文件可以实现自己的功能了。其实Qt的信息和槽有在界面设计的时候有三种实现形式,一是自己写,而是上面的那一种,还有一种半自动,用0n_QButton_clicked()这种形式。具体你可以百度。
问题二:这些窗口关闭后没有被销毁,因为在Qt中当子窗口被关闭后(即调用close()),只会把窗口隐藏起来,只有当父窗口被销毁时,才会把这些子窗口销毁掉。要是想子窗口在关闭时被销毁掉,减少资源占用,你可以在代码的closeEvent()这个槽函数中的event->accept();这行代码下添加一句
delete this;  就可以把本窗口给销毁掉。(但是我试了一下不能够全部释放资源,大概可以释放80%左右的资源,不知道是为什么)
感谢你提出第二个问题,之前我都没注意到过这个问题。
离线atomspace

只看该作者 26楼 发表于: 2012-12-31
感谢楼主这么详细的回答,长见识了。
离线crazybun
只看该作者 27楼 发表于: 2013-01-01
真的很牛逼啊 给我吓尿了。。半年
离线zaq2010

只看该作者 28楼 发表于: 2013-01-02
最好能说明下 开发环境。。
我在Qt5.0 和 Qt4.8.4  无论是在VS2010 还是QtCreator 都无法生成
离线千王之王
只看该作者 29楼 发表于: 2013-01-03
niu
离线fyc05
只看该作者 30楼 发表于: 2013-01-04
离线soulcxf

只看该作者 31楼 发表于: 2013-01-04
这个好强的说 下载了 多谢楼主~
离线sowhatgod
只看该作者 32楼 发表于: 2013-01-11
把它移植到手机上,这样一些工科学生就不必天天捧着计算器了。
专注黑莓开发
离线kea_iv
只看该作者 33楼 发表于: 2013-01-24
很强大的计算器!不过发现一个小毛病,每次操作完之后,在下一次操作时不会清除前一次操作.....导致的结果就是前一次输入与后一次输入一起执行了!
只看该作者 34楼 发表于: 2013-01-29
牛人
离线ifelse

只看该作者 35楼 发表于: 2013-02-23
不顶不行啊!牛
离线lcl_data
只看该作者 36楼 发表于: 2013-02-25
谢谢分享!
离线lch922

只看该作者 37楼 发表于: 2013-02-28
翻译可以优化一下。Qt是可以支持不关闭程序,而达到切换语言的。
给我一片天空,还你一道彩虹。
离线lch922

只看该作者 38楼 发表于: 2013-02-28
功能确实很强悍!
给我一片天空,还你一道彩虹。
离线zswx0226

只看该作者 39楼 发表于: 2013-03-02
回 37楼(lch922) 的帖子
实现了主界面上的语言动态切换,但是对于子窗口实现动态切换比较麻烦,涉及多文件的动态切换比较麻烦
1条评分金钱+10
tinnahust 金钱 +10 太棒了 2015-12-15
快速回复
限100 字节
 
上一个 下一个