面向对象程序设计寒假作业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的一些基本命令,编写脚本,虽然有点累,但是我觉得对今后的学习会有很大的帮助!

posted @ 2020-02-16 14:08  atsap  阅读(118)  评论(0编辑  收藏  举报