面向对象程序设计寒假作业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/ |
编程题##
继续完成编程题###
写了错误处理的函数,如果发生错误就不再输出结果
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;
}
//处理四个汉字组成的数字
运行结果:
通过这几次作业,我不仅对c++有了一点了解,也学会了使用命令行,了解了windows以及linux的一些基本命令,编写脚本,虽然有点累,但是我觉得对今后的学习会有很大的帮助!