作业代码

https://github.com/How-Come/object-oriented/tree/master/Calculator

一、解题思路

1、Scan类

这次题目的难点在于如何将输入的字符串分开排列。

  • (1)首先,要使用条件语句将数字或小数点与符号区分开。
  • (2)其次,如果是数字的话,要将数值连接在一起输出。所以用>string定义一个字符串来储存数值(好处在于可以将数字连接起来)。
  • (3)鉴于题目要求当一个数的位数超过10位时报错,所以用>int定义一个值来纪录每一个数的数值,当超过限制的位数时报错。
  • (4)在队列的排队过程中,运用符号判定来判断是否将其值>push入队:若为符号位,根据前面>string所定义的字符串来判断符号前面是否有数字,若有,>push入队,并清空>string定义的字符里的数值,接着将本符号位>push入队。
  • (5)考虑到输入的字符串的末位可能为数值,而后面没有符号位来“判断”并将最后的数值>push入队,因此,再次根据>string定义的字符串是否为空来选择>push。
  • (6)在Print类中将在Scan类中排列完的队列输出,因为当输入时某位数值的时超过10位时报错跳出后仍会进行接下去的任务,因此,报错的时候也会把报错的队列错误输出,因此在报错时>int定义一个值来判断是否为“报错”情况。

2、queue模板类的应用

3、分文件类外定义

  • 将所有的代码放在一个文件里显得过于冗长,因此使用分文件的类外定义来使得程序看起来简单明了。

二、遇到的问题和BUG

  • (1)在数字位数超过10位报错时忘记加>break
  • (2)一开始的数字输出根据后面的符号来控制,没有考虑到末位为数字的情况
  • (3)在Scan.cpp中最后没有返回队列的值
  • (4)分文件类外定义时忘记在相应的.cpp文件中的开头添加头文件
  • (5)遇到BUG如下

    原因为使用英文版的Dev C++ ,将类的添加弄成新文件,而后重新建立项目并正确建立类后得以解决。

三、总结和反思

  • (1)因为补考的原因使得我这次作业较别人晚提交,感觉到烦躁和压力,一开始做的时候因为对C++编程的不熟练和对queue语法的初次接触心烦意乱。而后静下心来,不会就上网查阅,有问题就询问同学,再不理解就在博客园中找大神的代码来看。自从进入计算机这个专业,最大的收获就是学会了更自觉、更主动地依靠自己去解决遇到的问题。也从另外一个方面说明,遇到困难不要急、不要自暴自弃,不懂就学、就问,最后终究都能得到解决,至少在这个过程中会收获你不去实践所得不到的东西。
  • (2)通过这次作业,我认识到自己的编程能力的基础不够扎实牢靠,算法严谨性不够,自己动手寻找BUG和解决BUG(调试)的能力欠缺。
  • (3)针对以上的问题,结合上学期时间安排不妥当和贪玩的状况,在接下来的时间里,我要投入更多的时间花在编程的训练上,并挤出时间通过网上视频和做题等方式巩固追补C语言的基础。
  • (4)看到实验班群上老师和大牛的聊天记录,我很庆幸和感激能够待在这个充满梦想和进取的大家庭里,我相信在更强的压力下才能比其他同学学到更多的东西。最后,加油!成为你想成为的那个自己!

最新文章

  1. oracle 批量插入-支持序列自增
  2. Angular+Flask搭建一个记录工具
  3. Visual Studio Developer Assistant 3月新功能展示
  4. UGUI之Toggle使用
  5. UESTC 915 方老师的分身II --最短路变形
  6. XP+devOps开发模式与scrum敏捷开发对比,docker虚拟化
  7. 自己动手实现STL:前言
  8. 《Python 学习手册4th》 第十二章 if测试和语法规则
  9. 备忘·添加SublimeText3右键菜单
  10. oracle----删除数据
  11. ASP.NET通过http/https的POST方式,发送和接受XML文件内容
  12. js new Date().Format
  13. php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证及缺点
  14. OpenGL ES着色器语言之变量和数据类型(一)(官方文档第四章)和varying,uniform,attribute修饰范围
  15. electron 使用 node-ffi C++ 动态链接库(DLL)
  16. (function($){...})(jQuery)和$(document).ready(function(){}) 的区别
  17. awk小例子_2_数值统计脚本
  18. Linux(Ubuntu)使用日记------ssh远程登录腾讯云
  19. Python学习之解决python下载第三方依赖速度慢的问题
  20. 微信公众号开发笔记1-获取Access Token

热门文章

  1. R语言多元素向量
  2. Elasticsearch集群和索引常用命令
  3. rails 中 create, new, build, save 的用法以及误区汇总 (转)
  4. photoshop cc 2014 下载安装及汉化资源及切图简要使用教程
  5. 新装iis 页面503错误 DefaultAppPool停止解决方案
  6. 十八、fork/join框架
  7. spring boot2 使用log4j2
  8. js数组的forEach方法能不能修改数组的值
  9. javascript实现深克隆的几种方法
  10. HDU P2222 Keywords Search