2020软件工程作业03
2020软件工程作业03
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10494 |
这个作业的目标 | 个人编写 |
作业正文 | |
其他参考文献 | 百度 |
1.GitHub项目地址
https://github.com/song201810/ruanjian1
2.PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(小时) | 实际耗时(小时) |
---|---|---|---|
Planning | 计划 | 2 | 1.5 |
Estimate | 估计这个任务需要多少时间 | 24 | 48 |
Development | 开发 | 10 | 14 |
Analysis | 需求分析 (包括学习新技术) | 2 | 3 |
Design Spec | 生成设计文档 | 2 | 4 |
Design Review | 设计复审 | 3 | 2 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 1 | 1 |
Design | 具体设计 | 1 | 1.5 |
Coding | 具体编码 | 5 | 6 |
Code Review | 代码复审 | 5 | 4 |
Test | 测试(自我测试,修改代码,提交修改 | 1 | 2.5 |
Reporting | 报告 | 1 | 2 |
Test Repor | 测试报告 | 1 | 2 |
Size Measurement | 计算工作量 | 1 | 1 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 2 | 1.5 |
合计 | 45 | 65 |
3.需求
实现一个命令行程序,不妨称之为Sudoku
4.解题思路:
拿到题目的时候完全没有看懂到底要求做什么,对于命令行传入参数也是啥都不知道,到处问大佬们,了解命令行如何传参之后,才正式开始构思如何求解九宫格盘面。
shuDu[][]是用来存放数独游戏的二维数组。
public static int shuDu[][] = new int[9][9];
public static void setShuDu(int[][] shuDu) {
Sudu.shuDu = shuDu;
}
回溯
public static void shuDu_solution(int k,int m) throws IOException {
if (k == (m*m)) {
String src= "D:\\sudoku\\"+outputFilename;
try{
FileWriter fw = new FileWriter(src,true);
for(int i=0;i<m;i++){
for(int j=0;j<m;j++){
fw.write(shuDu[i][j]+" ");
}
fw.write("\r\n");
}
fw.write("\r\n");
fw.close(); // 最后记得关闭文件
}
catch (Exception e) {
e.printStackTrace();
}
return;
}
int x = k / m;
int y = k % m;
if (shuDu[x][y] == 0) {
for (int i = 1; i <= m; i++) {
shuDu[x][y] = i;
if (legal(shuDu,x, y, i,m)) {
shuDu_solution(k + 1,m);
}
}
shuDu[x][y] = 0;
} else {
shuDu_solution(k + 1,m);
}
}
算法让人想哭
5.主函数
6.异常处理
7.测试图
测试太多了,弄混了,懒得截图了就这搞四个
8.性能测试
搞完之后真的心里特别开心,有种起飞的感觉。
9.心路历程
讲实话,已经是第二次用这个性能分析了,但是还是看的一头雾水,而且自己电脑上的jprofiler还有点问题。
这次作业让我学到了很多,使用Github来管理源代码和测试用例,idea各种报错和警告的解决办法,debug头都要炸了
这些天搞得心态崩了,各种问题,各种自闭,只能勉强靠烟才能存活,果然有烟有灵感,还是得继续学,快点学好springboot,
还是有很多东西搞不好啊!!!只有一张图能表明我的想法了。