这个作业属于那个课程 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.1Personal 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等等,所以还需要继续努力。还不这么会用软件,一点点的摸索。用了半天,还需要大佬的领导教教。

 
posted on 2020-04-01 11:22  虚亦  阅读(204)  评论(0编辑  收藏  举报