2020软件工程作业03
一、GitHub url
https://github.com/Firaymin/20177655
二、PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 15 | 40 |
Estimate | 估计这个任务需要多少时间 | 2160 | 2040 |
Development | 开发 | 800 | 320 |
Analysis | 需求分析 (包括学习新技术) | 60 | 1920 |
Design Spec | 生成设计文档 | 30 | 150 |
Design Review | 设计复审 | 60 | 20 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 10 | 60 |
Design | 具体设计 | 90 | 180 |
Coding | 具体编码 | 360 | 400 |
Code Review | 代码复审 | 60 | 10 |
Test | 测试(自我测试,修改代码,提交修改) | 60 | 60 |
Reporting | 报告 | 20 | 20 |
Test Repor | 测试报告 | 20 | 20 |
Size Measurement | 计算工作量 | 20 | 20 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 120 | 60 |
合计 | 2475 | 2270 |
三. 解题思路
题目:玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个同色九宫内的数字均含1-9,不重复。数独的答案都是唯一的,所以,多个解也称为无解。
看到题目,什么东西???这么多?直接退出浏览器
过了一会又默默打开了博客园。。。
看到题目的第一反应就是深搜和回溯然后就开始了漫长而又美妙的百度之旅
还去哔哩哔哩看了数独怎么玩,我以前觉得数独超级难来着。(现在也觉得)
四. 设计实现过程
DFS
对当前递归状态进行判断
对当前坐标格状态进行判断
根据不同条件进行递归
验证失败时,回溯
check
用于循环中,如果条件不成立则结束下面的操作直接进入下一次循环
流程图
五. 改进程序性能
输出
代码静态检测及分析
六. 主要代码
### void DFS(int x, int y) { //深度优先搜索
if (x > 8) { //排除不符合条件的
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
cout << num[i][j]; //满足条件输出
}
cout << endl;
}
return;
}
if (num[x][y] != '0') {
DFS(x + (y + 1) / 9, (y + 1) % 9);
}
else {
for (int i = 1; i <= 9; i++) {
if (check(x, y, i)) {//check 用于循环中,如果条件不成立则结束下面的操作直接进入下一次循环
num[x][y] = i + '0';
DFS(x + (y + 1) / 9, (y + 1) % 9);
num[x][y] = '0';
}
}
}
七. 心历路程与收获
软件真的多,每一个都学到吐血,一个GitHub创建文件夹里面再创个文件夹再加入一些文件就搞了几个小时,才明白了为什么有的年纪稍微大一些的人刚开始接触手机,开始学习用那些软件需要研究那么久了。我研究GITHUB的时候我就感觉我已经80了。VS输出命令框总是一闪而过,各种百度各种修改设置,过了一天之后惊奇的发现只要按F5的同时要把Fn键一起按了就可以了,我:???
收获就是:尽管我学地慢了点,懂的少了点,脑子笨了点。为此付出了很多的时间和精力,但是得到回报的时候是真的很开心。笨鸟先飞勤能补拙的道理这不就体现出来了吗。还有我发现有些问题在网上搜不到,你重组一下你的词语就能搜到了。
八. 总结:
-
写代码的时候不要钻牛角尖
-
不会就问问不到就换一种方法问
-
多花时间,总比啥也不干坐着忧虑强
-
勇敢地走出第一步,你会发现,第二步也很难。。。
-
不轻易放弃,放弃了还是要重来,还不如一做到底
-
战胜困难最好的方法就是面对困难,奥利给
九. 自我评估
学号 | 姓名 | 作业头 | Github地址 | 消除警告 | PSP表格 | 设计实现过程 | 改进程序性能 | 代码说明 | 解题思路描述 | 结合构建执法谈心路历程和感想 | 总分 |
---|---|---|---|---|---|---|---|---|---|---|---|
2 | 1 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | 12 | ||
20177655 | 刘敏 | 2 | 1 | 0.5 | 1 | 0.5 | 0 | 0.5 | 1 | 1 | 7.5 |