个人作品

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下

功能强大的计算器(by 尔灵尔亿) 银牌收录

这个计算器程序是模仿 Windows 10 系统的计算器所写的,借鉴了 Windows 10 计算器的一些外观设计以及所包含的一些功能,但是实现此计算器的所有算法是自己独立开发,其中的一些功能或许没有写的很完善。

下面介绍此计算器所包含的一些功能,以及用法。

计算器包含两大功能:计算功能、转换功能。计算功能包含普通计算器、科学计算器、超大数的计算、解一元一次方程。转换器包含体积转换、长度转换、重量转换、温度转换、能量转换、面积转换、速度转换、时间转换、功率转换、数据转换、压力转换、角度转换,包含了基本所有常用的转换。

普通计算器:实现最普通的加减乘除,通过用户输入的字符串(中缀表达式),转换为计算机可以计算的后缀表达式(后缀表达式又称逆波兰式),最后通过栈来实现计算。

科学计算器:所谓的科学计算器只是加上了一些可以计算的函数,如 sin、cos、tan 等,这个计算器不是按上面普通计算器的实现方法,而是通过数字的直接计算,功能实现的不是很好(所以我认为科学计算用起来是不怎么好用)。

超大数计算:实现一些很大的数的加减乘除,数的大小可以是位数小于十万位的两个数(因为我的数组定了可以存放十万个数)的加减乘除,其中加法和乘法支持含有小数、负数等计算,减法与除法只能计算正整数,而且除法不支持保留小数点,可能之后有时间优化一下减法与除法的算法。(合法的输入在输入的时候会有提示,不合法的输入可能导致计算出错,更严重的可能导致程序的崩溃)

解方程:只能解一元一次方程,输入的一元一次方程可以是任何形式,可以很长(只要是合理的一元一次方程就行)。求最后的结果是按 result 键。

各种转换器我就不一一介绍了,只是在各个转换器中有一个 delete/c 键,按左键是清除一位,按右键是全部清除。这样如果你输入很多位数,直接按右键就可以直接全部清除,不用一一清除。./± 键,左键是小数点,右键是符号取反。

感谢:其中有一个透明贴图的实现方法,我是用了 easyx 贴吧精品教程中的一个方法,这个算法是网友“i92076”在 2013 年 9 月 6 日发出的名字为“想画透明镂空?不用掩码图!!”的帖子。在此非常感谢提供这个算法。

这是计算器的执行界面截图:

 

这个项目的编译环境是:Visual Studio 2017 + EasyX 20190219(beta)。

完整的项目源代码请【点击这里下载】

如果发现了一些重大的 bug 可以联系我。下面有我的 QQ 以及邮箱。

作者:尔灵尔亿
邮箱:2117610943@qq.com
QQ:2117610943

评论 (3) -

  • 除法有点问题,比如说2÷3的结果就是23.0000000000
  • 乘除法运行的时候有问题

添加评论