这个作业属于那个课程 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1 |
这个作业的要求 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10494 |
作业的目标 | 了解单元测试和算法、类的理解 |
作业正文 | 如下 |
参考文献 | 百度 |
GitHub作业地址:https://github.com/zsdm/text
PSP2.1 | Personal Software Process Stages | 预估耗时 | 实际耗时 |
---|---|---|---|
Planning | 计划 | 60分钟 | 2小时 |
Estimate | 估计这个任务需要多少时间 | 64小时 | 80小时 |
Development | 开发 | 6小时 | 8小时 |
Analysis | 需求分析 (包括学习新技术) | 2小时 | 4小时 |
Design Spec | 生成设计文档 | 45分钟 | 2小时 |
Design Review | 设计复审 | 2小时 | 2小时 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30分钟 | 20分钟 |
Design | 具体设计 | 1小时 | 45分钟 |
Coding | 具体编码 | 5小时 | 9小时 |
Code Review | 代码复审 | 30分钟 | 30分钟 |
Test | 测试(自我测试,修改代码,提交修改) | 60分钟 | 1.5小时 |
Reporting | 报告 | 2小时 | 2.5小时 |
Test Repor | 测试报告 | 30分钟 | 30分钟 |
Size Measurement | 计算工作量 | 30分钟 | 1小时 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30分钟 | 30分钟 |
合计 |
代码
处理参数部分
参数一般为-m (m) -n (n) -i (input) -o (output)
简便处理直接取String数组args第1,3,5,7个元素。
解题思路
看到题目为解数独,也不会什么算法就直接暴力解决。
test方法逻辑
test方法进行行列测试(当阶数为4,6,8,9时额外进行宫测试)
public static boolean test(int[][] problem,int x,int y,int rank) { int flagx=0; int flagy=0; int xr=0; int yr=0; int flagr=0; for(int i=0;i<rank;i++) {//行测试 if(problem[x][y]==problem[i][y]) { flagx++; } } if(flagx==2) { return false; } for(int i=0;i<rank;i++) {//列测试 if(problem[x][y]==problem[x][i]) { flagy++; } } if(flagy==2) { return false; } switch(rank) {//宫测试初始化 case 4: xr=2; yr=2; break; case 6: xr=2; yr=3; break; case 8: xr=4; yr=2; break; case 9: xr=3; yr=3; break; default: } if(xr!=0) {//宫测试 for(int i=x-x%xr;i<x+xr-x%xr;i++) { for(int j=y-y%yr;j<y+yr-y%yr;j++) { if(problem[x][y]==problem[i][j]) { flagr++; } } } if(flagr==2) { return false; } } return true; }
性能测试
样例分析
代码结果
7.总结
这次作业的体会就是,不懂的还是太多很多都要从零开始,比如说怎么用github,怎么用git等等,所以还需要继续努力。