【主要思路】

  • 习惯将文字信息用图表表达
  • 基于助教在上篇博客下的留言做出的代码修改,但大部分由于时间关系还没完成;
  1. 对于选择条件不复杂的if语句改用switch语句,果然原本冗长的代码一下变得很清楚;
  2. 删除过多不必要的注释;
  3. 把字符串流对象的实例化调到进入循环之前
  4. Scan::checkNumber(string input)在本次代码中需要多次使用,将之从在main中调用改到在Scan::ToStringQueue(string input)中调用;

【出现的问题】

  • 在修改原代码的时候,为了减少if语句分支,使用了switch语句作为替代,但由于对此类语句较少使用,在使用过程中出现许多问题:其一,需要引用<stdio.h>类库,其二,开关语句的控制量必须是整型,最初我向switch中传入的控制量为string类型,得到报错信息“[ERROR]switch quantity not an integer”;
  • 这不是第一次出现内存错误,很明显对于某些知识基础掌握不大好,以及逻辑思维有相当的漏洞。用VS2012调试得到异常信息“0x00007FFA134C11A0 (msvcrt.dll) (Calculator.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突”,知道问题在于内存,暂未解决此问题;
  • 由于要把所有有关打印的内容都放在Print类当中实现,而我的计算过程基本上是一步到位的,所以我将Scan.hCalculation.h都引用到了Print类中,然而一开始我采用的其实是友元的方法,但是我们知道面向对象的一个基本原则是封装性和信息隐蔽,而友元却能访问其他类中的私有成员,不能不说这是对封装原则的一种破坏,所以弃用了。

【框架描述图】

Calculator PartⅢ的更多相关文章

  1. [LeetCode] Basic Calculator II 基本计算器之二

    Implement a basic calculator to evaluate a simple expression string. The expression string contains ...

  2. [LeetCode] Basic Calculator 基本计算器

    Implement a basic calculator to evaluate a simple expression string. The expression string may conta ...

  3. Basic Calculator II

    Implement a basic calculator to evaluate a simple expression string. The expression string contains ...

  4. Windows Universal 应用 – Tip Calculator

    声明 以下内容取材于 Bob Tabor 的课程<Windows Phone 8.1 Development for Absolute Beginners>,链接地址为:http://ww ...

  5. Calculator(1.5)

    Calculator(1.5) Github链接 ps.负数的处理未完成 解题过程中遇到的困难和解决 <stack>的使用: 认真研究了栈,基本上掌握了用法,与<queue>的 ...

  6. Calculator(1.0)

    Calculator(1.0) Github链接 解题过程中遇到的困难 对于c++中类和对象的使用不够明确,看了c++的视频教程学会了用类和对象来写程序. 不会使用<queue>,在网上查 ...

  7. 数据结构与算法(1)支线任务2——Basic Calculator

    题目:https://leetcode.com/problems/basic-calculator/ Implement a basic calculator to evaluate a simple ...

  8. calculator

    #include <stdio.h> #include <stdlib.h> typedef enum { FALSE = , TRUE }BOOL; void calcula ...

  9. Basic Calculator

    本博客介绍leetcode上的一道不难,但是比较经典的算法题. 题目如下: Implement a basic calculator to evaluate a simple expression s ...

  10. Matrix Calculator

    表达式分析+矩阵+计算器+寄存器=矩阵计算器 怎么想起来搞这个呢.. //刚看龙书兴致勃勃要搞表达式分析 这个寄存器比较简陋,26字母+4缓存,//字母不分大小写 当然,不只能算矩阵,还能算数= = ...

随机推荐

  1. 转:AbstractQueuedSynchronizer的介绍和原理分析

    引自:http://ifeve.com/introduce-abstractqueuedsynchronizer/ 简介 提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架.该同 ...

  2. Web移动端商城 移动端商城手机网站html整套模板,web移动商城仿app手机模板下载

    --Web移动端商城移动端商城手机网站html整套模板,web移动商城仿app手机模板下载.原生的js和jquery-1.6.2.min.js,页面才有html5自适应.包括首页(轮播,导航).兼职( ...

  3. 前端优化:css雪碧图实践应用详解

    一 为什么需要使用雪碧图 二CSS雪碧图原理及应用 前端是接近用户体验的一个项目组成部分,合适的优化能够大大减少网页响应时间,合理的资源加载自然成为了工作中的要务,现在就结合实例讲解到底什么是css雪 ...

  4. 【转载】jquery实现勾选复选框触发事件给input赋值+回显复选框

    引用:https://blog.csdn.net/rui276933335/article/details/45717461 JSP: <td class="as1"> ...

  5. Order Helper

    using System; using Microsoft.Xrm.Sdk; using Microsoft.Xrm.Sdk.Query; using Microsoft.Crm.Sdk.Messag ...

  6. 第一篇:百问网ubuntu安装注意事项和部分配置

    目录 一.开启虚拟化技术 二.ubuntu部分设置 一.开启虚拟化技术 ​ 64位机,需要使用cpu-z.SecurAble软件来检查:CPU是否支持VT虚拟化技术 cpu-z使用(软件) 第一步:以 ...

  7. Ruby中类的进阶(继承,private, public, protect)

    类中的public,protect,private public method class Point def test end end 这样定义的test方法就是一个public方法可以在类内外使用 ...

  8. docker-compose入门示例:一键部署 Nginx+Tomcat+Mysql

    整体环境配置 整体环境的配置,如果一个一个 Dockerfile 去写,那么是相当麻烦的,好在 Docker 有一个名为 Docker-Compose 的工具提供,我们可以使用它一次性完成整体环境的配 ...

  9. c#调用c++库函数

    如果是非托管的,就用DllImport,举例    using System;    using System.Runtime.InteropServices;    class MainApp    ...

  10. TableView滑动时候出现的卡顿现象

    分析 UITableView是UIScrollView的子类,因此它可以自动响应滚动事件(一般为上下滚动).  它内部包含0到多个UITableViewCell对象,每个table cell展示各自的 ...