【探讨- 编程】windows系统自带的科学型计算器实现难点有.....
目前自己还没有实现过,不知道学习重点应该放在什么地方,毕竟有大伙在这里,我就偷偷懒走走捷径。
这里的实现难点可以理解为实现细节,大伙能不能一针见血的说明其关键处,这就对我莫大帮助了。
我喜欢把需要的东西都学了,才开始动手写代码。虽然没有挑战性,不过对于不熟悉又要完善的人来讲,不容易的却是自身的局限问题,也是我问题的缘由。
有几个主要方面事情要做和学习:
1.界面设计 【 #api function #多线程 #windows可移植 】
2.功能函数库 【 #math.h #algorithms 】
3.字符串处理 【 #输入判断&检测 #数据类型】
4.性能测试 【#内存使用率① #编译链接】
再加上相应的算法和数据结构,是不是没有其他什么需要去学习和注意的地方了,对于新手来讲的话。
我没有软件开发经验,大伙多多指点。
①占用越小,程序可以更快运行。
我觉得难点是对运算表达式的处理。什么括号、函数这些,都是要实现处理的。
我觉得一个比较好的方法是根据运算优先级先用树状结构来分析一个表达式,然后再把这个树一级一级算上去。
此外计算器的界面不是难点,GDI也好GDI+也好SDL也好DX也好GL也好只要用着顺手都行。控件自己画。
性能也不是重点……
界面设计这个应该也是需要处理的。怎样让界面好用,接收键盘快捷键,以及误操作处理,都要考虑到的。
关键是你的程序要能自动从剪贴板获取表达式数据(就是能识别Ctrl+C和Ctrl+V的组合键) 扒了一篇别人设计计算器的论文传上来参考
大数运算。 :loveliness::loveliness::loveliness::loveliness::loveliness::loveliness: 先开始动手最重要。
Windows的计算器不支持表达式运算,那个才是有点麻烦的东西。
关于表达式运算,我有一篇旧文:https://blog.csdn.net/tomwillow/article/details/50956417 汤忤柳 发表于 2018-12-5 19:21
先开始动手最重要。
Windows的计算器不支持表达式运算,那个才是有点麻烦的东西。
求搬运,或者求许可被搬运 0xAA55 发表于 2018-12-6 01:17
求搬运,或者求许可被搬运
承蒙厚爱,晚上我整理整理再发出来~ 这个刚好前两天写个安卓作业的时候(其实是当个程序的裁缝)做的计算器,当时有这个功能(倒不如说csdn上的源码有这个功能)
本来想自己也造个轮子不过之前没写过java一个个查文档太蛋疼,当然主要还是因为期末还没考完
anyway,主要代码还是看了一遍,其实这个问题就是要把输入的中缀表达式转成后缀表达式,这样只要遍历一遍后缀表达式,每次遇到一个运算符就把前两个数替换为当前运算的数就行了(当然仅限于二元运算符)
例子: (10+2)*3/(5+1)
转为后缀10 2 + 3 * 5 1 + /
运算过程12 3 * 5 1 + /
36 5 1 + /
36 6 /
6
至于怎么转后缀这篇文章感觉讲的不错
http://www.nowamagic.net/librarys/veda/detail/2307
然后参考(chao)的代码链接是这个
https://blog.csdn.net/sakurakider/article/details/76283801
页:
[1]