zoukankan      html  css  js  c++  java
  • 《面向对象程序设计》第七次作业(课程总结)

    (好像无意中在第六次作业里已经完成惹一部分的第七次作业orzzz)

    嗯,先看看整个项目过程中到底做了什么吧~

    • step1:读入运算表达式逐个输出
    • step2:考虑优先级的表达式计算
    • step3:指定路径读取计算表达式
    • step4:完成项目GUI图形化界面

    1. 待改进或完善的地方

    首先还是有部分表达式会跑崩orz 在step2的时候调试过各种类型的表达式,那时候还是能正确计算出橘犇犇博客欢乐的评论区下第一反人类表达式的好游戏机,然而加了后来七七八八的东西之后虽然并没有动到计算表达式的函数,但是不知怎么的居然崩掉了。嗯还是要好好调试一下。虽然是出于自己代码看不下去所以也没有了当时第三次作业的时候兴致勃勃的调一下午的耐心orz
    然后就是GUI界面的文件读写出问题orz 可以正常运行,然而在一打开文件浏览框的时候控制台出error(执行exe文件的话看不出,就只是点OK按钮没反应) 参照的Qt语法应该是没错的来着,查了很多的资料,要不然就是没有结果,唯一好像有所依据的一个博客说是win10的问题(后来在win10技术交流贴之类的地方也看到这个问题说Qt运行报了这样的错误,但是没有解答),且始终没有找到那个error的解决方法,最终弃疗。(以及好像在按钮重复键入表达式好像会出事?orz)

    2. 关于重构

    在第五次作业的时候,其实非常的想弃疗。即便有注释,大致还是知道哪一部分是在干嘛,但是代码结构真的乱,非常想重构。
    有时候完成项目需求好像只是为了做出这个功能,但是没有考虑下万一突然加需求呢?万一内测没出事回头被用户玩出了bug呢?想维护然而打开代码woc简直不想再看一眼orz
    因为没能写出自己都看着舒服的代码,当时不觉得,一段时间后再看简直头大。这况且还始终是一个人写的,要是多人合作拿到的代码就是一阵晕眩woc友谊的小船说翻就翻orz
    想重构但目前还没那个勇气和耐心,也没有信心不确定能不能比现在的样子做得好。但如果要重构,估计是会大改(要求的固定返回值固定参数有时候脑回路不太对啊gg)

    框架图如下:

    (划掉那个从Print返回Main的箭头x)
    (那个非法输入就是判断是否超过10位,没什么好说的,这里就不赘述了)

    大致思路想要改动的地方是Scan类,想把表达式字符串和argv[]、argc一起作为它成员变量,然后构造函数传参的时候一起传进去,然后写一个成员函数调用另一个成员函数扫描表达式把结果队列return回来,作为参数调用Calculator类的计算函数,在计算函数中先调用转后缀表达式的成员函数,然后计算,计算结果return回来之后,Scan类的这个函数根据成员变量的值调用一个判断哪种输出方式的成员函数,判断出来的输出方式调用Print类传入计算结果输出。
    或者这些工作可以另外再建一个类来完成,就好比写UI里的MainWindow所做的工作那样。也就是说这里有个总的一系列操作,我希望它是一个返回值为void的总导全局的函数而非在main里苦苦建立三个对象分别调用自己的成员函数,这样在main里只要建个对象传个参,调用下这个函数两句话完结。

    (改动前也就是现在的情况是这样的:main里建立Scan对象,调用成员函数传入表达式参数,扫描后的队列return回main里,然后建立Calculator对象,调用转后缀函数传入队列,后缀队列return回main里,然后调用计算函数传入后缀队列,结果return回main里,然后根据main的参数判断输出方式,建立Print对象,根据参数的不同判断下调用哪个成员函数传入计算结果,输出,结束。——来自爆炸的main函数以及屡次要弃疗的自己x)

    3. 课程总结

    在这个课程中,你发了多少篇博客?
    在这个课程中,你写了多少行代码?
    在本学期的学习中,有哪些是经过博客作业后才学到的?
    经过这学期的学习,你有哪些体会和感受?
    今后在编程这一方面有什么计划?
    

    在整个课程中,包括这次发了11篇博客(其中包括一个给eclipse安装Qt插件的逗比错误分析贴)。代码写了好几千行吧。
    经过博客作业后才学到的..这个,好像基本都是经过博客作业学到的吧orz..github啊markdown啊计算器里用到的c++各种工具啊Qt基础语法啊什么的。虽然大多还是停留在浅薄的不能更浅薄的层次上(比如git各种用法,还是只会基础到飞起的上传层面orz遇到传不上去的情况才会去查查这是发生了啥orz以及这次作业上传造成的代码冲突是相当懵逼的orz而且最可怕的是发现本地文件也同样被改写了,多了一些七七八八的乱码,还好有存档orz后来图方便在仓库里手动改了。嗯以后有时间有机会还是得好好学一下orz)
    至于体会和感受,好像已经在各种吐槽和牢骚中说的差不多了233 倒是有一点越来越能体会到,那就是出问题了之后寻找答案的过程比解决问题更有价值。在整个项目过程中不懂遇到了多少错误查了多少资料,翻遍了stackOverFlow的情况大有所在(讲真stackoverflow作为查资料必备当真良心荐),给eclipse安Qt插件的一个错误查遍了所有能查的地方没有任何相关问题,我甚至跑去私戳了教程博主orz(虽然人家博主没回orz)。有时候为查一个error花了很多很多时间最终无果,时常感到特别沮丧(其实后来偶尔无意中自己摸索到问题所在的情况也是有的),但是无论如何这一切其实很有意义,至少我觉得比最终得到解答更有意义。(捡起了被安个Qt插件折磨得起死回生的自己x)
    老师说一些体会本来是在大三的软件工程才会教给我们。提前体验了一波好像也还不错?233
    编程计划orz目前好像没什么计划,毕竟以后不走产品来着,所以也只是学基础,写项目也是巩固基础然后写着玩233(非常想玩硬件,被安利电脑鼠时候心跳加速x 下学期想花大把精力好好玩w)

  • 相关阅读:
    数据结构-索引
    CAS自旋volatile变量
    深入理解AQS
    EL表达式
    JSTL 核心标签库 使用
    JSP 九个隐含JSP对象
    jsp基本语法总结
    Commons FileUpLoad 两种上传方式解
    Servlet 异常处理
    Servlet 过滤器 Filter
  • 原文地址:https://www.cnblogs.com/thousfeet/p/5596289.html
Copyright © 2011-2022 走看看