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分 |