结对项目进展二
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结对项目进展二相关的知识,希望对你有一定的参考价值。
经过这一周的结对编程工作,我们的项目取得了很大进展。我进一步体会到了结对编程的优势和劣势。优势是两人合作得当可以提高debug的效率。在队友的帮助下,我可以更快地理清思路,发现我的代码中的错误。提高效率。但是我们在交流一些深入的问题的时候,也要花费额外的时间,这也是劣势所在。
由于我们之前的程序模块划分不是很明确,不符合软件工程中“高内聚,低耦合”的思想,不便于跨平台。这次我们仔细分析了程序的结构,把功能划分成几个独立的模块,封装在类中,模块之间通过接口交换信息。
1.界面类(基于QT中的MainWindow类)主要功能是与用户交互,记录用户行为等。
2.核心计算类(expr),这个类是核心计算模块,主要功能是生成表达式,计算表达式等。
3.分数类(fenshu)。辅助模块
4.表达式树节点类(node)。辅助模块。
UML设计图如下:
有了这样明确的设计,我们开始一点一点地实现每个模块。由于要利用之前的代码,让我意识到了良好的代码风格是多么重要——有些我自己写的代码我都记不太清是什么功能了。在实现的过程中,我们认真学习了邹老师说的“回归测试”的方法,每当添加新的功能的时候,一定要保证以前的功能正常无误。同时,我们也采用了更加通用、标准的方式定义了模块之间的接口。比如计算类的构造函数expr(bool decimal,double lower,double upper,int precision,int ope_num)。还定义了各种异常如除0异常。就这样,我们一点一点地完善了整个程序。当然,其中也有许多编程技巧的磨练。比如可以用sprintf这个函数轻松地把数值类型(如double)转换成字符串,还可以控制精度。再比如我复习了c++中函数重载,纯虚函数,类的继承和多态等知识。
总的来说,我们这周除了将之前的程序进行了模块划分,并按照适当的方法实现了各个模块,和之前相比增加的功能有:
1.支持小数运算(可选)(算式中只要出现小数,运算结果即以小数表示,否则以整数或者最简分数表示)。
2.支持精度控制。(结果保留0-6位小数可选)
3.支持表达式中数值范围控制(-10000-10000可选)
4.支持表达式中运算符数量控制(1-10可选)
截图:
具体测试情况依旧请参见我的队友的博客。
以上是关于结对项目进展二的主要内容,如果未能解决你的问题,请参考以下文章