软件工程实践2019第三次作业
Github项目地址:https://github.com/icefantasysky/My-repository/blob/master/031702611
PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 120 | 120 |
| Estimate | 估计这个任务需要多少时间 | 1200 | 1500 |
| Development | 开发 | 600 | 600 |
| Analysis | 需求分析 (包括学习新技术) | 120 | 120 |
| Design Spec | 生成设计文档 | 30 | 60 |
| Design Review | 设计复审 | 30 | 60 |
| Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 120 | 120 |
| Design | 具体设计 | 120 | 120 |
| Coding | 具体编码 | 360 | 480 |
| Code Review | 代码复审 | 300 | 360 |
| Test | 测试(自我测试,修改代码,提交修改) | 60 | 120 |
| Reporting | 报告 | 120 | 120 |
| Test Repor | 测试报告 | 60 | 120 |
| Size Measurement | 计算工作量 | 60 | 60 |
| Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 120 | 60 |
| 合计 | 3420 | 4020 |
解题
想起自己原来解数独的时候,一般都是先用排除法减少错误答案,然后带入进行一个一个的尝试,所以这次也采用递归的方式进行
首先要判断是否合法,判断合法有三个标准,第一是要判断所在横行是不是1——9,然后要判断所在纵行是不是1——9,同时还要判断每个九宫格是不是1——9
这里的方法是查了资料,其中的x,y分别是九宫格左顶点的横坐标和纵坐标,通过这种办法来判断每个小九宫格是否重复;

最后进行填充,如果这位不为0跳至下一位,如果为0的话就选择循环来填充,

但是觉得比较难的步骤是命令行输入和输出,关于argc和argv之前都没有接触,还有ifstream和ofstream的使用,所以这次只是粗略的尝试
首先是查了资料,用了强制类型转换将输入的转化为整形(方便后面的循环)
然后将input内容输入到数组

还有就是将结果输出到output

命令行输入

命令行输出

但是不知道为什么,问了好多人,我写的只能在第一个9*9实现,郁闷,我再改改……
性能评测用的是vs自带的性能评测


结语
第一次使用vs,感觉还有很多不习惯的地方,这篇写的也有很多不满意的地方,之后会持续改进的~ 通过这次真的觉得学到了很多,
对于cmd的使用还有vs这个全新的编译器,以及后面的github相关学习都很值得期待~

浙公网安备 33010602011771号