2020软件工程作业03
这个作业属于哪个课程 | <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/Sj12138/rjgc-sj/tree/20177645
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 10 | 18 |
Estimate | 估计这个任务需要多少时间 | 1200 | 1440 |
Development | 开发 | 600 | 420 |
Analysis | 需求分析 (包括学习新技术) | 300 | 540 |
Design Spec | 生成设计文档 | 30 | 40 |
Design Review | 设计复审 | 30 | 60 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 10 | 5 |
Design | 具体设计 | 60 | 120 |
Coding | 具体编码 | 180 | 240 |
Code Review | 代码复审 | 30 | 30 |
Test | 测试(自我测试,修改代码,提交修改) | 60 | 60 |
Reporting | 报告 | 60 | 60 |
Test Repor | 测试报告 | 10 | 15 |
Size Measurement | 计算工作量 | 30 | 30 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 | 30 |
合计 | 1200 | 1440 |
解题思路:首先查了百度看有什么思路或者是方法解数独题目,但那些都没看懂,后来自己想了一下感觉可以用遍历来解这种题目,对于3-9阶宫格我分为三种,第一种是3,5,7阶宫格,这种宫格不需要考虑宫的影响,所以只需要判断行列是否存在重复就行了。第二种就是4,9阶宫格,因为这种是正方形的,行列数量相同,在判断宫时可以把行列放在一起。第三种是6,8阶宫格,这两种宫格的行列数不同,所以在判断宫时需要将行列分开计算判断。在判断某个位置该放什么数字时从1-9一个个判断,先找出行有没有重复的,再找列有没有重复的,最后找宫格有没有重复,没有就填入这个数字,重复就num+1再重新判断,当数字到9时就回溯到上一个格子,这样重复判断直到最后。
流程图:
代码:代码比较混乱,相同宫格的计算和输出都是放在一个类里面进行的,也还没有完成错误提示功能。
性能分析:
测试结果:
总结:在输入输出流那里卡了很久,最后还是跟着先交的同学们的混的,然后就是纠结了很久的循环输入,逻辑那边由于是用了一些遍历了,所以问题不是很大。
自评:
作业头 | 2 |
---|---|
GitHub地址 | 1 |
消除警告 | 1 |
psp表格 | 1 |
解题思路描述 | 0.5 |
设计实现过程 | 1.5 |
改进性能 | 0 |
代码说明 | 1 |
感想余心路历程 | 0.5 |
总分 | 8.5 |