2020软件工程作业03
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1 |
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10494 |
| 这个作业的目标 | 实现一个命令行程序 |
| 作业正文 | 如下 |
| 其他参考文献 | java输入输出流及文件读写详解, 解数独, 一些回溯法解数独 |
地址
一、PSP表格
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | 20 | 30 |
| Estimate | 估计这个任务需要多少时间 | 40 | 60 |
| Development | 开发 | 320 | 300 |
| Analysis | 需求分析 (包括学习新技术) | 200 | 240 |
| Design Spec | 生成设计文档 | 60 | 30 |
| Design Review | 设计复审 | 20 | 30 |
| Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 10 | 5 |
| Design | 具体设计 | 100 | 140 |
| Coding | 具体编码 | 300 | 320 |
| Code Review | 代码复审 | 40 | 20 |
| Test | 测试(自我测试,修改代码,提交修改) | 200 | 360 |
| Reporting | 报告 | 60 | 70 |
| Test Repor | 测试报告 | 60 | 30 |
| Size Measurement | 计算工作量 | 30 | 15 |
| Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 | 10 |
| 合计 | 1490 | 1660 |
二、思路描述
- 9*9数独玩的挺多的,但是从来没想过用编程的方式来解数独。而我一般解数独的思路就是看哪个格子顺眼就先解哪个,先刷一行,看这9列有没有重复的数,没有填上,依次类推,中间遇到重复的回到上一步重新填其他数。但是看了题之后整个人都是懵的。

计算机不懂我,我也不懂他,还是去网上找了挺多解数独的算法,选了一些看起来蛮简单的,感觉自己可以理解并且可以去试试的。
三、计算模块接口的设计与实现过程
-
看了一下题,3,5,7这三类数独没有宫格,解法相对简单,所以只弄出了这三种,但还是有好大的问题。

大致的思维导图

其中获取输入文本内容并转化为数组:


文本内容输入为:

文本内容的输入输出我记得老师教过,奈何我不记得了,就去网上找了好多资料。

设置了一个check()函数,当该数与所在行或列有相同数时,返回false:

四、计算模块接口的性能改进
- 使用jprofiler进行性能检测



还是不太会分析,但是感觉好厉害的样子。
然后是代码规范问题

五、计算模块部分单元测试
- 1.1cmd输入命令

1.2结果

2.1你以为成功了吗!?看下面!

2.2结果

3*3的3个盘没有异常,盘面大于3就开始存在一点异常了,(连表面都是哭唧唧了)这个异常没有得到处理。
六、计算模块部分异常处理


5阶和7阶的就存在很大异常了,把每一步都打印输出了,然而还是没有解决。

七、总结
呆在电脑面前一直搞这个,搞了很久还是没有得到完善的程序结果,哎,内心一阵悲痛,都怪自己以前没有学好,太难受了。每天就感觉我的头顶阵阵凉风,凉风还越来越猛。其他作业也没怎么动,两边都没完成好,哎,心累。
但是真正学到(fuxi)了的知识就是文件的输入输出流了,这个还算是一点收获。虽然说这个程序不全是自己搞出来的,但是也还是付出了时间和努力,能够自己写出一点点也是很开心的,希望逐渐可以自己解决问题,早日跟上队伍!


浙公网安备 33010602011771号