zoukankan      html  css  js  c++  java
  • c++的路上,我坚信,我可以 -----第四次作业体会

    第四次作业 传送门

    1、浅谈"新对象"sstreamstack

    • 第四次作业,就是在第三次作业上作修改,上周周末,我刚刚才完成了第三次作业,但是知道了队列如何应用,面对这次的stack,这个与queue互补的对象,操作上只有.front()对queue的首元素操作和.top()对栈首元素的操作的区别。在第三次作业时,我还不能彻底的理解二者的区别,比如能否互相转换,互相赋值等等。这次我明白了如果定义string a将其压入栈或者放入是的队列中,其本质就像是一个string的数组。我们可以使用诸如.top()[0]这样的方式去访问栈顶的元素中的数值。

    • sstream的话则是一个更新的领域,他其实要先定义,如stringstream a将a<<string str;将一个字符串传入a中再将a>>double/int b;传入整型或者浮点型的b中,而自己需要使用函数a.clear()清除,在完成之后的字符转化数字的操作,这就与原来c语言对于一个char c利用'0'-c计算ascll码的方式类似。而这次是彻底的把他转化了下来。


    2、本次作业思路梳理

    1>在main.cpp方面

    • 首先要进行对输入是否有-a进行判断,之后,因为有括号的存在还要利用栈写函数来判断是否括号匹配。

    2>新增的计算部分calculator.hcalculator.cpp

    • 这个是本次作业的难点,其原因之一在于括号和算法的优先度,以及负号还是减号的判断。第三次作业我们并没有对二者进行判断。因此需要在这次作业中进行判断。

    (1)对于括号和算法的优先度计算问题 参考资料1 参考资料2

    • 我查找了一些资料,认识到了我们所输入的算式为中缀算式,而电脑执行的一般都是前缀和后缀算式,在这些式子里,并没有括号的干扰,因此,我开始利用stack和queue完成对输入式子的前缀式转换,此步骤在于去掉括号。之后利用前缀算式的计算方法,只需要计算+ - * /即可

    (2)对于负号还是减号的判定

    • 这个问题是在我已经编译运行完后,发现对于-1+1的结果无法计算,会直接提示栈或者是队列空,只能中断,对此我想的方法是,一个四则运算算式中,只有-在头或者是-(-中括号后的-的形式,我只需要在入栈或者队列式补充一个字符'0',这样就等于把负号更改为减号。

    补充部分

    • 题目要求我们要在cmd里使用calculator.exe并在一行里输入,这里需要int main(int argc,char argv[]),于是就需要对他进行讨论,首先argc表示在cmd里的输入,如输入:calculator.exe -a 100-22。其意思是calculator.exe 使得argc1,argv[0]calculator.exe,以此类推那么这里的argc等于3,而argv直接可以调用到string input里面。

    学长的拓展、完善部分

    • 那么问题来了,如果我们在编译器里进行调试,那么因为只是赋值语句,没有cin,所以会报错。如何解决呢?我们可以在cin的基础上设置一个bool型函数 或者设置0 1变量。通过argc的值是否小于2来判断是否有输入的值,如果没有则调用cin进行输入input,如果有则进行赋值语句。这样就可以在编译和在cmd中同时使用calculator的结果了。

    bug的修复

    • 修复了对于括号的补全问题。V1.1版本已上传。

    代码格式优化

    • 更改了不易读懂的变量名称。V1.2版本已上传

    章末总结

    • 通过这次作业,我可以熟练地使用stack和queue,并且对于类的定义和调用又熟悉了很多。而stringstream的定义教会了我们转换数字。最后cmd的调用.exe,让我们渐渐与dos调用接手,此次作业收货颇丰,累并快乐着。期待下次的学习*
  • 相关阅读:
    setAnimationTransition:forView:cache: 运行动画时背景色问题
    架构师速成4.6-软技能和硬技能
    Java获取某年某周的第一天
    openssl之BIO系列之12---文件描写叙述符(fd)类型BIO
    centos 使用 CP 命令 不提示 覆盖
    [3 Jun 2015 ~ 9 Jun 2015] Deep Learning in arxiv
    P1314 聪明的质监员
    P2858 [USACO06FEB]奶牛零食Treats for the Cows
    1163 访问艺术馆
    P1352 没有上司的舞会
  • 原文地址:https://www.cnblogs.com/kobe961231/p/5387876.html
Copyright © 2011-2022 走看看