2020软件工程作业03

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1
这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10494
这个作业的目标 整体感知软件工程 |
作业正文 见下文
其他参考文献 百度百科
1.Github项目地址
https://github.com/huq404/20177695-Sodoku
2.1.PSP表格
PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 40 80
Estimate 估计这个任务需要多少时间 35 240
Development 开发 20 40
Analysis 需求分析 (包括学习新技术) 20 20
Design Spec 生成设计文档 50 120
Design Review 设计复审 15 10
Coding Standard 代码规范 (为目前的开发制定合适的规范) 15 10
Design 具体设计 50 40
Coding 具体编码 80 110
Code Review 代码复审 15 10
Test 测试(自我测试,修改代码,提交修改) 30 60
Reporting 报告 40 80
Test Repor 测试报告 30 10
Size Measurement 计算工作量 20 10
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 30 15
合计 490 855

3.解题思路
数独由9×9的格子组成,
规则是:每行、列、宫各自都要填上1-9的数字,要做到每行、列、宫里的数字都不重复。
宫是由3×3的小格子组成的
*三、数独基本解法:
1、摒除法:用数字去找单元内唯一可填空格,称为摒除法,数字可填唯一空格称为排除 (Hidden Single),根据不同的作用范围,摒余解可分为下述三种:

(1)数字可填唯一空格在「宫」单元称为宫排除(Hidden Single in Box),也称宫摒除法。

(2)数字可填唯一空格在「行」单元称为行排除法(Hidden Single in Row),也称行摒除法。

(3)数字可填唯一空格在「列」单元称为列排除法(Hidden Single in Column),也称列摒除法。

2、唯一余数法:用格位去找唯一可填数字,称为余数法,格位唯一可填数字称为唯余解。
第一行是随机生成的1~9的排列,第2到9行就要通过搜索来产生了。对于第2到9行的每一个空格,要从1到9逐个尝试放入,看同一列、同一行、同一个3×3的小方阵中是否出现过相同的数字,若没有就尝试放入,然后递归地搜索下一个位置的数字,若1到9都不行就返回上一个位置尝试下一个数字。直到找到一组解就返回。

4.流程图

5.展示关键代码
解释思路与注释说明
(1)struct defines data

(2)核心代码
unique value function

screening function

(3)address of the maze is calculated


6.测试分析

7.心路历程和思想
我觉得软件工程是门博大精深的学科,有很多的知识值得我们去探讨,思考,研究。软件工程也需要我们自己动手去进行各种实践操作。我觉得此次的作业对我来说是个巨大的挑战,由于自己的能力有限,目前只能完成到这种不OK的水平,但我真的很无奈对于自己尽了全力只能完成到这个样子。同时,在这门学科中我也磨练了自己的心态,学会冷静、坦然的面对任何挑战。

8.自评

学号 作业头 Github地址 代码经过工具分析 PSP表格 解题思路描述 代码如何组织 流程图 单元测试 性能瓶颈 改进 关键代码 解释思路注释说明 心路历程思想 总分
20177695 2分 1分 0分 1分 1分 0分 1分 0.5分 0分 0分 0.5分 0.5分 1分 8.5分
posted @ 2020-03-29 18:15  huq  阅读(269)  评论(0编辑  收藏  举报