2020软件工程作业03
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1 |
---|---|
这个作业的要求在那里 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10494 |
这个作业的目标 | 数独 |
作业正文 | 如下 |
其他参考文献 | 百度、博客、同学2 |
Github地址
1.GitHub地址
https://github.com/Haa123-oss/-20177612/new/master
2.PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 20 | 45 |
Estimate | 估计这个任务需要多少时间 | 60 | 120 |
Development | 开发 | 90 | 200 |
Analysis | 需求分析 (包括学习新技术) | 90 | 120 |
Design Spec | 生成设计文档 | 30 | 50 |
Design Review | 设计复审 | 10 | 20 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 20 | 35 |
Design | 具体设计 | 25 | 40 |
Coding | 具体编码 | 200 | 500 |
Code Review | 代码复审 | 60 | 60 |
Test | 测试(自我测试,修改代码,提交修改) | 90 | 120 |
Reporting | 报告 | 60 | 120 |
Test Report | 测试报告 | 60 | 80 |
Size Measurement | 计算工作量 | 40 | 80 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 60 | 200 |
合计 | 915 | 1790 |
题目叙述:数独盘面是个九宫,每一宫又分为九个小格。在这八十一格中给出一定的已知数字和解题条件,利用逻辑和推理,在其他的空格上填入1-9的数字。使1-9每个数字在每一行、每一列和每一宫中都只出现一次,所以又称“九宫格”。
具体任务:
现在我们想一步一步来,完成从三宫格到九宫格的进阶;完成三宫格和其他博客任务,就算过了初级考核,其他的算升级。具体各阶规则如下:
三宫格:盘面是33。使1-3每个数字在每一行、每一列中都只出现一次,不考虑宫;
四宫格:盘面是22四个宫,每一宫又分为22四个小格。使1-4每个数字在每一行、每一列和每一宫中都只出现一次;
五宫格:盘面是55。使1-5每个数字在每一行、每一列中都只出现一次,不考虑宫;
六宫格:盘面是23六个宫,每一宫又分为32六个小格。使1-6每个数字在每一行、每一列和每一宫中都只出现一次;
七宫格:盘面是77。使1-7每个数字在每一行、每一列中都只出现一次,不考虑宫;
八宫格:盘面是42八个宫,每一宫又分为24八个小格。使1-8每个数字在每一行、每一列和每一宫中都只出现一次;
九宫格:盘面是33九个宫,每一宫又分为3*3九个小格。使1-9每个数字在每一行、每一列和每一宫中都只出现一次;
解题思路:
因为自己从没玩过数独,百度了很多数独的解法,看到了一种自己能看懂的解法。想着从三宫格一直扩展到九宫格。数独的要求是在9*9宫格中每一行,每一列,每一个3*3的小九宫格都是由1到9不重复的数字组成的。
(1)行交换或者列交换的时候,行和列的值不会改变
(2)在一个数独矩阵里,全部相同数值交换是不会破坏数独的基本格式
大致只能想到这些了
设计实现:(1)首先构建一个可行的数独
(2)产生1到9不重复的1随机数和熟读棋盘里从1到9的数进行替换
(3)每一个数都交换之后,就会开始九宫格行列的交换
参数是:m代表数独的阶数
n代表输入的次数
i代表输入
o代表输出
摘要代码
已经调试好了却突然出现了一个异常,我懵了
中途电脑崩了。。。。。我太难了
2000年过后,一直就处于崩盘之中,不知道咋整了
总结
一言难尽,从一开始就有点摸不着头脑,可能蠢了点吧。连个数独都不会玩。。。好不容易想通了,der!啥也不是,找了很多资料才完成一些思路设计。后面一些计算费了很大功夫,有点东西出来了,其实大致意思还是不太清楚,好不容易到了调试部分了,卡的死死死的我晕了。。。从以前到现在其实很少真正的去动手写完整一些东西。很多缺漏一下子就体现出来了。只能说基础差啊。连用的几个软件还总是搞错了,看演示视频还花了很多时间。
自己打个分
作业头 | GitHub地址 | 代码要求。。。 | 估计 | 实际 | 解题思路描述 | 代码如何组织 | 关键函数画出流程图 | 单元测试设计 | 再找出性能瓶颈 | 改进 | 展示关键代码 | 解释思路与注释说明 | 心路历程和想法 | 总分 |
2 | 1 | 0 | 0.5 | 0.5 | 1 | 0.5 | 0.5 | 0.5 | 1 | 7.5 |