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
这个作业的目标 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10494
作业正文 https://i-beta.cnblogs.com/posts/edit
其他参考文献 www.baidu.com

一、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,不重复。数独的答案都是唯一的,所以,多个解也称为无解。
看到题目,什么东西???这么多?直接退出浏览器
过了一会又默默打开了博客园。。。
2020软件工程作业03_第1张图片

看到题目的第一反应就是深搜和回溯然后就开始了漫长而又美妙的百度之旅
还去哔哩哔哩看了数独怎么玩,我以前觉得数独超级难来着。(现在也觉得)

四. 设计实现过程

DFS
对当前递归状态进行判断
对当前坐标格状态进行判断
根据不同条件进行递归
验证失败时,回溯

check
用于循环中,如果条件不成立则结束下面的操作直接进入下一次循环

流程图

2020软件工程作业03_第2张图片

五. 改进程序性能

输出

2020软件工程作业03_第3张图片

代码静态检测及分析

2020软件工程作业03_第4张图片

2020软件工程作业03_第5张图片

2020软件工程作业03_第6张图片

2020软件工程作业03_第7张图片

六. 主要代码

### 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键一起按了就可以了,我:???

2020软件工程作业03_第8张图片

收获就是:尽管我学地慢了点,懂的少了点,脑子笨了点。为此付出了很多的时间和精力,但是得到回报的时候是真的很开心。笨鸟先飞勤能补拙的道理这不就体现出来了吗。还有我发现有些问题在网上搜不到,你重组一下你的词语就能搜到了。

八. 总结:

  • 写代码的时候不要钻牛角尖

  • 不会就问问不到就换一种方法问

  • 多花时间,总比啥也不干坐着忧虑强

  • 勇敢地走出第一步,你会发现,第二步也很难。。。

  • 不轻易放弃,放弃了还是要重来,还不如一做到底

  • 战胜困难最好的方法就是面对困难,奥利给

九. 自我评估

学号 姓名 作业头 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

你可能感兴趣的:(2020软件工程作业03)