课程开始的第一次作业
题外话
布置下这篇作业的那一刻起,其实我的压力还蛮大的,因为上一周的各种活动考试实在是过于密集,外加我和我的parter在前几次的迭代作业中都没有出很好的结果(这也一定程度上导致我们两个不得不各自重新开始写就这个程序)。当然这些都不成为什么借口的,别人都能够做到的东西,为什么偏偏就你不行呢?所以,我准备好好对待这次的作业,呕心沥血的进行一次付出,在考完数学期中考以后,重构了一番这个小学生的刷提神器。
过程中的学习
老实说重写的工作量真的着实的大,一开始我真的几近无从下手,所以我请教起了一下我的郁杨同学。在我代码的编写上,某些部分借鉴了一下他的代码,中间也了解到了好些没接触过的用法,叹服一下下。不得不说,debug真的好辛苦,寻寻觅觅,翻来覆去,甚至可以说改的时间要多于写的时间。
过程中还发现了许多过去忽略的细节,类似于
-
srand((unsigned)time(NULL)) 只有放置在main主函数才会生效;
-
字符串间的拼接可以简单的类比于加法运算;
-
itoa 可将数字转化为字符类型;
-
第一次实战跑了一次 调度场算法 的代码;
-
实现了多个函数之间的调用,将原本一大段的代码进行了模块化的处理;
........
以下是我在main函数中的布局,有些函数则在其他的函数中实现对其的调用。
int main()
{
srand((unsigned)time(NULL));
scan(); //用于与用户进行交互,获取输入的数据
generateExpression(); //用于生成运算式
print(); //将统计的结果反馈给用户
return 0;
}
不足之处
- 本次时间吃紧,没有作出分数的实现形式,在除法的问题上仍存在着一些些问题,亟待后期修正;
- 虽然使用函数形式分开在不同位置,但是在一个cpp文件里实在是显得杂乱,后期还需要或用对其他cpp的调用,实现函数的“抽屉式”存取;
谈谈对模块化的认识
正如其他人说的那样,模块化是实现便捷操作寻找的利器,支持以后代码之间的挪用拼接,同时在以后与他人的合作过程中,这样的分模块操作才允许人员交替分开书写,以及在人员替换下仍能使后来人很快上手读懂领会代码的意图。