结对编程(附加作业)

结对成员:金知奂

 

一、封装成DLL

由于我一开始没有生成DLL,这样对方如果想使用我的模块很不方便。

具体生成DLL步骤如下:

1、在写完Core之后,项目-属性-输出,选择“类库”(如下图)

2、再新建一个工程,并添加引用,把自己写好的dll文件添加进去。通过using DLL名,即可使用。

为了方便对方使用我的dll,我简单写了一个api。

void setting(int numOfQ, int rangeOfNum, int numOfOp, bool haveMulti, bool haveNegative, bool haveDecimal);
参数: numOfQ:生成的问题数目
rangeOfNum:题目中整数的绝对值的范围,同时也是分母绝对值的范围
numOfOp:每个题目中,运算符的数量。
haveMulti:题目中是否含有乘除法。
haveNegative:题目中是否含有负数。
haveDecimal:题目中是否含有分数。
效果:设定题目生成器的参数。

string calc(string s);
参数: s:需要计算的题目。注意格式要求每个数字和括号以及运算符号之间需要有空格。
效果: 计算一道题目,并返回stirng类的计算结果。

void generate();
效果: 在当前目录下生成题目和答案文件。分别叫exercises.txt和answers.txt。

void grade(String A, String Q);
参数: A:答案文件的路径。
Q:题目文件的路径
效果: 读取答案和题目文件,并根据和答案和题目生成分数文件Grade.txt。

 

我的接口有定义了四个方法,对方的接口有十个方法。

二、自己的界面和测试加上对方的DLL

于是,我在界面程序做了如下的修改:

在生成按钮中:

 

calc方法我们完全一样,所以计算按钮不需要修改

 

在评测按钮中:

 

三、自己的DLL加上对方的界面以及测试

由于对方做了一些我没有的功能,所以使用我的DLL的时候,一些功能无法实现。

比如,对方可以选择生成代码的路径。

所以我在自己的代码上又增加了这个功能来实现。

在测试方面,因为我们都只测试了core的方法,所以测试部分我只要适当删去我没有的方法,并且修改变量的顺序和个数即可。

 

四、通过增量修改的方式,完成对错误情况的处理

在程序中,我认为有这样几种错误。

1.输入算式的格式不合法

  这个问题我用了正则表达式进行处理。如果不符合要求则抛出异常。

2.输入算式在计算中,发现不合法

  如果计算中发现不合法,我将返回一个null。返回值为null的算式,被记为无效算式。

3.输入文件路径不合法

  直接跑出异常,在界面程序里catch异常。之后给予用户提示。

posted on 2015-10-06 15:01  pikali  阅读(156)  评论(0编辑  收藏  举报