码迷,mamicode.com
首页 > 其他好文 > 详细

结对项目进展二

时间:2016-04-03 00:09:22      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

     经过这一周的结对编程工作,我们的项目取得了很大进展。我进一步体会到了结对编程的优势和劣势。优势是两人合作得当可以提高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可选)

截图:

技术分享

具体测试情况依旧请参见我的队友的博客。

http://www.cnblogs.com/zbinks

 

结对项目进展二

标签:

原文地址:http://www.cnblogs.com/wangyiming/p/5348034.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!