这个作业属于那个课程 | 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个元素。
/* b为x所在的小九宫格左顶点竖坐标 */
int b = x / m / row * row; /* c为x所在的小九宫格左顶点横坐标 */
int c = x % m / col * col; for (i = b; i < b + row; i++)
{ for (j = c; j < c + col; j++)
{ if (a[i][j] == key) { return false; }
}
}
return true;
解题思路
看到题目为解数独,也不会什么算法就直接暴力解决。
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等等,所以还需要继续努力。还不这么会用软件,一点点的摸索。用了半天,还需要大佬的领导教教。