面向对象程序设计寒假作业3

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/2020OOP
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/2020OOP/homework/10288
这个作业的目标 1.继续完成编程题2.优化架构
作业正文 https://www.cnblogs.com/atsap/p/12307657.html
其他参考文献 https://www.zhihu.com/question/320127575/answer/766863959https://www.cnblogs.com/cjiejie/tag/

编程题

继续完成编程题

写了错误处理的函数,如果发生错误就不再输出结果
面向对象程序设计寒假作业3_第1张图片

if(error == 0)
        output(money);
void error4() {
    printf("无法处理输入的数字\n");
    error = 1;
}

拓展性
查了一些资料,浅显地了解了一下拓展性,我觉得得到了一些启发:写代码时要为以后的维护做准备,不是说要能预测未来,而是能适应需求的改变,便于增加类似的功能或让功能适应更多的场景,能减少未来这些工作的工作量,比如减少函数和其它部分的联系。通过做思考题,修改自己的代码,增添功能,我更意识到了代码具有拓展性是很重要的。

思考

我把汉字转换成数字的方法,是通过量取字符串的长度得知由几个汉字组成,再分类处理的。因此只要整理出四个,五个及更多汉字能构成的数字类型,再引用已经写好的函数,就可以写出处理更大数字的函数,不断扩大数字范围。
写了处理一千以内四个汉字构成数字的函数,形如一百一十二百零三这样的数字;并增加了五个字以下、一千以内数字的处理,形如一百一两百的数字,输出的范围也扩大到1000以内了:

int f3(char* s) {
    int m = 0, n ;
    int i = 0;
    char k[3] = { 0 };
    for (i = 0;i < 8;i+=2) {
        k[0] = s[i];k[1] = s[i + 1];
        if (Cn_To_Int(k) == 100)
            m += n * 100;
        else if (Cn_To_Int(k) == 10)
            m += n * 10;
        else if (Cn_To_Int(k) == 0) {
            i += 2;
            k[0] = s[i];k[1] = s[i + 1];
            m += Cn_To_Int(k);
        }
        else
            n = Cn_To_Int(k);
    }
    return m;
}
//处理四个汉字组成的数字

运行结果:
面向对象程序设计寒假作业3_第2张图片
面向对象程序设计寒假作业3_第3张图片

通过这几次作业,我不仅对c++有了一点了解,也学会了使用命令行,了解了windows以及linux的一些基本命令,编写脚本,虽然有点累,但是我觉得对今后的学习会有很大的帮助!

你可能感兴趣的:(面向对象程序设计寒假作业3)