数独问题求解五:代码整合与分析、测试

数独问题求解五:代码整合与分析、测试

1、代码整合

编写完成create与solve两个关键代码后,编写用于控制台接收参数的judge.cpp

具体过程较为简单,判断控制台输入的个数以及每个字符串的情况,如果出现异常则返回异常并报错

主函数接收到控制台输入后进行判断,选择进行生成还是解数独,之后调用clock()函数输出程序运行时间。

2、代码分析

不看不知道一看吓一跳
运行代码分析之后,出现了多条警告,但是我改错心切,没有把问题记录下来,但是主要的几个问题还是要在这里说一下的
1)变量类型转换:在获取字符串长度时,我调用了strlen函数,用一个int型的变量来接受返回值,但是strlen函数的返回值类型时size_t,在类型转换时系统提示可能会造成数据丢失,由于在64位系统运行时要避免值超过64位,为了解决这一问题我将返回值用static_cast转换为了int型。

2)算术运算时,两个数做乘法时需要将两个数定义为指定位数的整型
3)有很多调试时引入的参数没有及时处理

性能分析:
数独问题求解五:代码整合与分析、测试
代码性能良好,生成1e6个数独终局用时3s左右,当然还有改进的空间,但这是后续工作了。

3、代码测试

这是我第一次写测试代码,所以查了好多资料,借鉴了他人的部分代码(我也不想但是有些确实不太会),也学习了很多单元测试的知识。

单元测试通过VS中的测试功能实现