本学期学校开设了软件构造课程,课程总成绩的35%为实验成绩。实验1的主要内容为构建Java开发环境,以及使用Java的基本语句解决三个问题。
实验要求中构建Java开发环境主要包括JDK的安装、集成开发环境(IDE)的安装(要求使用Eclipse)、版本控制工具的安装(要求使用Git)。JDK和Eclipse前往官网选择合适的版本安装即可。关于Git这一版本控制工具,我虽然很早就了解Github,并从GitHub仓库中下载过很多程序,但这是第一次使用Git将自己的代码推送到GitHub仓库上。通过老师的讲解,我认识到Git是很强大的版本控制工具,了解到什么是分支、什么是master等等。虽然Git使用时命令繁多,且本次实验知识简单的按时间顺序不停地推送新代码并设置成master分支,但Git的版本控制能力还是给我留下了深刻印象。最后还了解了JUnit测试工具。它可以通过集成测试函数的返回值等方式协助判断程序的正确性。
图 使用Git push代码的指令
第一个问题为判断和构建数独矩阵。实验要求从文件读取矩阵并判断其是否为数独矩阵,若不是,输出给出不是的理由。完成本实验时,我主要遇到的困难是Java如何从文件读取字符并按'\t'分割。通过查询资料,这里使用Scanner.nextLine()函数读入文件的每一行内容,并通过String.spilt()函数分割字符串。
图 Java的文件 *** 作-读入矩阵并分割成字符串元素
第二个问题为MIT的海龟。由于我此前学习Python时学习过类似的指令并完成过很多图形的绘制,在此前多次“import turtle”的基础上,完成这部分问题并不困难。最大的难处是礼品包装盒算法。我通过百科搜索,了解它的实现方法后完成了它的Java代码。另外,由于作图时涉及很多角度、斜率、三角函数的的计算,良好的数学基础显得由为重要。
图 礼品包装盒算法
最后一个问题是有向图的设计与实现。我首先回忆了图论和数据结构的有关知识:有向图的概念、广度优先搜索、最短路径的各种算法等等。还有类与面向对象的概念。在计算两点最短路径时,我使用了Floyd算法,采用动态规划的思想解决问题。
图 最短路径计算-Floyd算法的实现
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)