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.1Personal 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
posted @ 2020-03-29 16:57  孙嘉1  阅读(153)  评论(1编辑  收藏  举报
Live2D