• 面向对象程序设计 第三次作业


    本次作业代码以上传至github,链接clike here

    题目

    在这个项目里添加一个Scan类,用来处理输入的字符串。 在这个类里写一个函数(方法)ToStringQueue(string input) 这个函数接收一个四则运算表达式(即input),逐个字符扫描这个表达式,将数字和符号提取出来,得到一组string在这个项目里添加一个Print类,用来输出所得到的队列。在这个类里写一个方法,接收一个队列,并逐个输出,每输出一个换一行。在这个项目里新建一个cpp文件,在其main里面获取键盘输入 以及 创建Scan对象和Print对象。调用Scan对象ToStringQueue(string input),将输入传进去以获取队列。接着将这个队列传入Print对象的方法中,得到输出。

    要求:
    当输入的数字超过10位(包括小数位)时,报错。
    能够处理不超过10位的任意实数
    代码要有注释,变量名要有意义
    遵循编码规范(编码规范参考),可读性尽可能好

    实践过程

    跟预期的学习计划不同,原以为在mooc上学完c++的前两个学习计划就能完成此次作业,后来看了看题目,发现对于类和对象,队列的内容还完全没有了解,于是继续在mooc上充电,然后同学推荐了一个学习c++的参考文档,感觉基本上够解决此次作业了!

    代码图

    运行如下

    解题心路

    1、对于c++语法的掌握我通过mooc和c++文档,大致解决了,个别不清楚的地方还是通过百度和问同学获得解决;

    2、第一遍做题目的时候,没能审清题意,将字符串里的数字一个个传入到队列中,而在输出的时候处理区分数字和符号的问题,遇到了巨大的麻烦,后来重新整理思路,从scan类里就将数字和符号分别处理好后传入队列,这样问题就很快得到了解决;

    3、在将字符串传入队列的过程中,一开始没考虑到最后一个字符的特殊情况,然后输出结果都是两种错误,数字结尾的情况是数字无法输出,符号结尾的情况是多输出一次符号,最后拿出笔和纸来,写了几个例子,一步一步试下来,终于发现了bug,这里停顿了好久,感觉还是平时要多做题,才能熟练;

    4、第一遍做题时,我将scan.h和scan.cpp放在了同一个文档里,但是在看了更多的视频后,发现这其实不是非常专业和美观的写法,头文件只需放定义即可,cpp文件里才要放进大量的执行代码,这样更为合理和美观;

    5、#ifndef和#endif这两个语法我一开始是不会的,然而一个在c++学习中更加有造诣的同学告诉我,这两句能够防止重复包含头文件,更有效避免bug出现;

    6、学习完c++并写完本题代码后,我感觉相比于c语言来说,c++的实用性,便捷性都有很大的提升,要是能好好学习掌握,必将对我大学的编程之路有很大帮助;

    7、学习c++过程中遇到陌生语法,不妨参考学习资料,是个很棒的c++英文文档。

  • 相关阅读:
    海思HISI 3518EV200 AEC回音消除+ANR语音降噪(转)
    重磅消息 | 2020年最新全栈测试开发技能实战指南(第1期)
    推荐一款Python开源库,技术人必备的造数据神器!
    DevOps研发模式下「产品质量度量」方案实践
    自动化测试实战技巧:「用例失败重试机制」实现方案分享
    C#/VB.NET 在Word中添加条码、二维码
    Java 在PDF中绘制形状(基于Spire.Cloud.SDK for Java)
    Java 添加条码、二维码到Word文档
    Java 添加、下载、读取PDF附件信息(基于Spire.Cloud.SDK for Java)
    Java 添加、提取PDF中的图片
  • 原文地址:https://www.cnblogs.com/Mrwho1/p/5217444.html
Copyright © 2020-2023  润新知