第三次作业的题目:http://www.cnblogs.com/fzuoop/p/5187275.html

第一次看到题目的时候觉得应该是挺简单的,只要把输入的那一串东西挨个判断,用数列的方法,如果碰到符号的话就给个回车,还有的话就是要判断数字处是否超过十位数,也包括小数位。但是这是仅限于想法,但是开始做的时候就碰到了问题。

一方面要把代码分为三部分,scan,print和main这三个部分,如果是把这些集合在一起写的话应该会简单些,另一方面就是要用到queue这个东西,之前学习c++的时候感觉没见过queue这个东西,所以就去网上查了下。

c++的queue用法

  1.   back             返回队列最后一个元素引用
  2.   empty            判断队列是否为空
  3.   front             获得队列最前面一个元素引用
  4.   push              在队列尾添加一个数据
  5.   pop               删除队列头的一个数据
  6.   size             队列中元素个数

//头文件为

刚开始用的话也很尴尬,因为没碰到过,所以得用一次看下这个使用方法。

http://my.oschina.net/Tsybius2014/blog/293618

这里可以学习queue,有代码更加清楚明了。

接下来就是实际操作了

1、先定义scan类

Scan的作用就是一方面把传输进来的字符串按照题目要求分成几份,保存到一个新的队列中。

另一方面就是判断是否有超过十位的数。

碰到错误

*(1)发现 inputqueue.push(input[i]);

这样是不行的,因为要传入的是一个字符串,而input[i]是一个字符,所以要定义一个字符串,把input[i]传给它,这样才行。

*(2)为什么括号输不出来

后来才发现是中文英文的括号是不一样的,好尴尬。

*(3)发现最后一位数字没输出来

在最后加上一个判断,如果最后是数字的话就输出

插曲:做一半的时候突然发现,如果输入的内容本身就是错误的那该怎么办,当时就崩溃了,因为这样还要判断挺多的,虽然仔细去想还是可以想出来的,但是这让做一半的我方了,但是我又去看了一遍题目,题目只要求如果数字超过10位数报错,那么是不是说你本身输入的就得是符合规范的四则运算呢,这点疑惑我去找了学长验证,学长告诉我为了减轻我们的负担,所以去除掉了判断输入是否正确的要求,我也是舒了口气。

头文件

源程序文件

2、定义print类

比较简单就是把接受到的新队列打印出来。

这里没什么错误

头文件

源程序文件

3、Main

定义scan和print类,然后输入字符串,打印出来。

源程序文件

这次作业的感觉

:怎么讲,因为中间有段时间都在各种同学聚会,所以c++的自学也有落下,随笔也没再写了,后来的一周就加紧学习c++,也是比较匆忙,好不容易学完了c++来做这个题目的时候发现,其实根本不需要学习那么多,什么虚函数了,模板,继承什么的都没用到。主要运用的还是基本的语法和一个queue的运用,queue的运用也在这次代码作业后算是理解了挺多。这次作业也是磕磕绊绊,有挺多的小错误的,主要不是太大的错误,所以就没写上,我也明白了学一门语言,最重要的还是实践吧,有没有自己动手去敲代码会差很多。

最新文章

  1. [node.js 学习]1.start a simple server
  2. Vue.js 快速入门
  3. MVC开发基础
  4. VBA 实现批量excel文件复制
  5. C#中如何在字符串中设置上标
  6. windows 下my.ini的配置优化
  7. 检查ftp备份数据完整性及短信告警的shell脚本
  8. springMVC整合memcached,以注解形式使用
  9. Linux C 实现Ping功能的程序.
  10. Canvas贝塞尔二级曲线
  11. Mybatis 插入数据并返回刚刚插入的数据id
  12. a:hover标签已经定义了text-decoration:none,并且生效,但是还是有下划线
  13. 零门槛,包教会。让你在5分钟内使用以太坊ERC20智能合约发行属于自己的空气币
  14. ACM 第十一届 河南省省赛A题 计划日
  15. 深入理解内存模型JMM
  16. Vue脚手架使用步骤 2.9.6版本
  17. rpm安装MySQL5.5后配置,在centos5上;mysql编译安装在centos6.5上;
  18. MQTT-C-UDP_PUB
  19. 同步备份工具之 rsync
  20. Jmeter中解决中文乱码问题

热门文章

  1. Asp.Net保存session的三种方法
  2. volley(4) 请求参数:data:[ { bar_remain:XX , bar_code:"XX" , bar_id: XX}], method:GET
  3. BZOJ 1878 HH的项链
  4. Linux下Web服务器环境搭建LNMP一键安装包[20130911更新]
  5. wx菜单栏
  6. Linux服务器偶尔无法访问问题
  7. Http和Https三次握手那些事
  8. 【转】Linux设备驱动之Ioctl控制
  9. Event/window.Event属性和方法
  10. 网络编程 --- URLConnection --- 读取服务器的数据 --- java