第六次课程做业

第六次课程做业

题目描述编程

本次做业要求将四则运算的核心部分采起栈的知识进行解决。即表达式生成的合法性检验、表达式结果计算。函数

学习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

相关文章
相关标签/搜索