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)了的知识就是文件的输入输出流了,这个还算是一点收获。虽然说这个程序不全是自己搞出来的,但是也还是付出了时间和努力,能够自己写出一点点也是很开心的,希望逐渐可以自己解决问题,早日跟上队伍!

原文地址:https://www.cnblogs.com/guyigu/p/12522261.html