2020软件工程03

软件工程 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1
作业要求 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10408
作业目标 个人编程完成数独
作业正文 见下文
其他参考文献 百度,博客园,CSDN

1,

GUTHUB地址,GUTHUB注册出现错误,没注册成功。

2,

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 10 10
Estimate 估计这个任务需要多少时间 500 300
Development 开发 200 30
Analysis 需求分析 (包括学习新技术) 300 30
Design Spec 生成设计文档 40 60
Design Review 设计复审 10 10
Coding Standard 代码规范 10 0
Design 具体设计 10 5
Coding 具体编码 60 10
Code Review 代码复审 20 0
Test 测试(自我测试,修改代码,提交修改) 20 30
Reporting 报告 30 30
Test Repor 测试报告 30 30
Size Measurement 计算工作量 10 10
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 30 0
合计 1280 555

3,解题思路

一开始拿到题目的时候我的想到的是小时候买的杂志上有这种九宫格的数独题目,我经常做,但是对于编程,我是懵了的,不知道从哪里下手,后来查看资料后对于解题思路的第一个想法是生成随机数,从第一行开始,0~9不重复随机数。下面行如果遇到重复就从重新生成,如果遇到整行不可行,就整行开始重新生成。

4,设计实现过程

设计代码有三个函数:Core,IsRight,Print。Core函数是核心函数用来生成每个位置的随机数,每次从1~9中取出一个数放到当前位置,并通过IsRight函数来判断是否可行;IsRight函数用来判断随机数在相应位置是否可行。

流程图

5,代码说明


主函数中next_permutation函数来给出不会重复的全排列。

Core函数在1,2,3,4,5,6,7,8,9中随机选一个数并用过IsRight判断,若9个数都不行就舍弃这个数独。

6,性能测试


看不太懂,看上去Core比IsRight占的比例多。

7,心路历程与收获

刚开始看到这个作业是懵逼都,什么都不会,真的什么都不会,然后就去百度,看老师给出的要求,然后开始做,但是我实在写不出代码,Github的注册也出问题,拿着电脑搞了好久,没有一点点进展,然后只能去网上找代码,找方法,看解析,找过程。然后最后完成了这个我并没有弄懂的作业。收获的话,具体说不上来,但是毕竟花了这么多时间,应该有一些潜移默化的收获。

自评表

学号 姓名 作业头 GitHub项目地址 代码要求经过凑得工具的分析消除警告 PSP表格 解题思路描述 代码如何组织 关键函数流程图 单元测试的设计 找出性能瓶颈 改进 显示关键代码 解释思路与注释说明 心路历程和感想 总分
2分 1分 2分 1分 1分 0.5分 1分 0.5分 0.5分 0.5分 0.5分 0.5分 1分 12分
20177636 刘良强 2 0 1 1 1 0 1 0 0 0 0.5 0.5 1 8
posted @ 2020-03-29 19:51  小小-刘  阅读(161)  评论(0编辑  收藏  举报