用Qt写计算器
来源:互联网 发布:c语言标准库pdf 编辑:程序博客网 时间:2024/05/24 07:14
先转一篇关于singal和slot的介绍:
http://www.ibm.com/developerworks/cn/linux/guitoolkit/qt/signal-slot/index.html
注意: 在类声明的开始位置必须加上 Q_OBJECT 语句,它将告诉编译器在编译之前必须先应用 moc 工具进行扩展,从而才能够使用singal和slot机制。
计算器的控制逻辑:
设置一个标志位:waitingForOperand,表示是否在等待输入操作数,作用仅是判断在输入数字时,是否需要清屏,不对控制逻辑造成影响。
四个存储单元:pendingAdditiveOperator存储等待运算的加减运算符;pendingMultiplicativeOperator存储等待运算的乘除运算符;
sumSoFar存储经加减运算后或者等待加减运算的数值,factorSoFar存储经乘除运算后或者等待乘除运算的数值。
逻辑的主要部分在于乘除运算和加减的优先级不同。下面的各个函数都是针对输入的不同符号做不同的处理:
1. 处理加减运算符:如果pendingMultiplicativeOperator不为空,即存储有待运算的乘除运算符,就先将factorSoFar的数值与当前显示的数字进行乘除运算;然后pendingMultiplicativeOperator不为空,即存储有待运算的加减运算符,则计算sumSoFar与当前的数字的加或者减。
2. 处理乘除运算符:如果pendingMultiplicativeOperator不为空,即存储有待运算的乘除运算符,就先将factorSoFar的数值与当前显示的数字进行乘除运算;
这两个函数都是不处理当前输入的符号,而是处理先前输入的符号。如果当前输入是乘除,则看前一个符号是否是乘除,是则处理;如果当前输入是加减,则先往前看前一个是否是乘除,有则处理,然后再看前一个是否是加减,有则处理。
算式最多只会储存一个加减、一个乘除运算符,因为在输入下一个二元运算符时,乘除运算符就会被处理,所以最多只会储存一次,加减运算符同理。
3. 处理一元运算符:直接对屏幕上显示的数字进行一元运算就行了。
4. 处理等号:跟加减运算符同样处理。
其他的诸如换号、小数点、回退都很容易处理,就不赘述了。
- 用Qt写计算器
- qt 写的简单计算器
- 用Qt写的一个简单的计算器
- 自己用Qt写的简便计算器,共享源码
- 用Qt写的平均绩点计算器
- qt写的一个计算器程序
- 用java写计算器
- 用javascript写计算器
- 用javascript写计算器
- 用VB写计算器
- 用Qt实现的计算器
- 用java写的计算器
- 用Javascript写简单计算器
- 用Java写的计算器
- 用java写的计算器
- 用 C# 写个人住房贷款计算器
- 用 java 写一个计算器
- 用JQuery写一个计算器
- Ubuntu 10.04上搭建iPhone开发环境
- Spy++使用方法
- Android 程序中安装APK文件
- 在Windows中搭建iPhone开发环境
- SHELL 变量
- 用Qt写计算器
- Gridview常用
- V$SESSION视图和V$PROCESS视图
- 确定include搜索顺序的shell
- ubuntu11.04中USB安装10.04
- SimpleDateFormat格式
- VisualAssistX
- 解决VS2008开发Mobile出现“部署和/或注册失败,错误为: 0x8973190e。”的方法
- JDK7 新特性