• 第六次课程作业


    第六次课程作业

    题目描述

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

    学习C++界面编程,可以学QT、MFC或者VS,选择其一即可,用博客记录学习到的知识以及心得体会。

    本次作业中将四则运算中的核心部分用栈的知识解决,最开始的程序已经实现,因为还通过逆波兰式实现,这里我就贴出后面通过栈计算逆波兰式的代码。

    /*根据逆波兰式,求出表达式的值,放到私有成员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.控件消息响应函数具体代码部分添加

    具体的代码我还未能实现,之后会补上。
    推荐MFC界面编程的博客

    感想:在栋哥的带领下一步一步的朝真正的程序设计师方向前进

  • 相关阅读:
    Func<T, TResult> 委托的由来和调用和好处(为了高大上,为了白富美)
    $(function(){})和jQuery(function(){})
    把一个类(或者Object)转换成字典
    MVC 控制器向View传值的三种方法
    @html.ActionLink的几种参数格式
    你给老板谈工资,老板给你谈发展.之后发生的事...
    2015-11-5 关于编译的听课笔记
    2015-10-29 韦东山OK6410 第一天课程笔记
    2015-10-26 逻辑运算符使用分析
    2015-10-26 一些位运算符 课程笔记
  • 原文地址:https://www.cnblogs.com/heihuifei/p/6926108.html
Copyright © 2020-2023  润新知