题目描述编程
本次做业要求将四则运算的核心部分采起栈的知识进行解决。即表达式生成的合法性检验、表达式结果计算。函数
学习C++界面编程,能够学QT、MFC或者VS,选择其一便可,用博客记录学习到的知识以及心得体会。学习
本次做业中将四则运算中的核心部分用栈的知识解决,最开始的程序已经实现,由于还经过逆波兰式实现,这里我就贴出后面经过栈计算逆波兰式的代码。.net
/*根据逆波兰式,求出表达式的值,放到私有成员value中。结果若是是整数,则返回整数。若是不是整数,返回FALSE。*/ int Expression::ExpressionValue() { Stack s; int size = reversePolishNotation.length(); int num1, num2;//由于有用#表明10,就先用int存 int i; for (i = 0; i < size; i++) { switch (reversePolishNotation[i]) { case'+': num1 = s.top(); s.pop(); num2 = s.top(); s.pop(); s.push(num1 + num2); break; case'-': num1 = s.top(); s.pop(); num2 = s.top(); s.pop(); s.push(num2 - num1); break; case'*': num1 = s.top(); s.pop(); num2 = s.top(); s.pop(); s.push(num1 * num2); break; case'/': num1 = s.top(); s.pop(); num2 = s.top(); s.pop(); //只有作除法时可能出现答案为非整数的状况 if (num2%num1 == 0) { s.push(num2 / num1); } else { return FALSE; } break; case'#'://数值10 s.push(10); break; default://其余数值 s.push(reversePolishNotation[i] - '0'); break; } } value = s.top(); return value; }
而后对于界面编程的学习,由于以前一直在作PTA的做业,感受此次做业有些些比平时的多了一些,比较赶,因此界面编程只是学习了一小部分,具体的尚未实现。我学习的是MFC实现,首先是VS上必须先安装MFC界面编程须要的插件。
主要步骤分为如下几步:
1.建立一个基于对话框的MFC项目插件
2.以后对于控件以及其余的设置:
添加控件-设置控件设计
3.控件消息响应函数具体代码部分添加code
具体的代码我还未能实现,以后会补上。
推荐MFC界面编程的博客blog
感想:在栋哥的带领下一步一步的朝真正的程序设计师方向前进get