软件构造这门课感觉非常的难,实验很难做,也不好听懂。
关于实验一,有以下想法。
实验一的题目大意如下
-
MagicSquare
第一问是判断一个矩阵是否满足每行、每列以及对角线之和都相等,另外还需判断输入格式是否满足要求;第二问是给一个已经写好的生成MagicSquare的算法,要求理解即可。锻炼基本的Java操作。 -
Turtle Graphics
这个问题是MIT6.031课程中的一个题目,实验要求也基本和MIT一致。
其中也分了很多小问题,基本都比较简单,个别地方需要注意四舍五入以及单位、坐标转换之类的东西。倒数第二问是求凸包。 -
Social Network
这是CMU17-214课程的一道题目,要求实现一个“朋友关系”的图,并且能够计算图中任意两人之间的距离,抽象来说就是边上权重为1的无向图,以及求两点间的最短路径。 -
第一题幻方
-
这里给出了一个定义,Magic Square,即幻方:是一个n*n的矩阵,且其所有行、列、对角线(所含的n个数)的和相等。判断给出的矩阵是否为幻方。对给出的generateMagicSquare函数进行扩充,使之能够产生一个MagicSquare并且将其输入到文本6.txt中,然后对其判断是否为MagicSquare。并且满足若输入的为奇数能产生MagicSquare,而输入偶数或者负数会返回false。
-
题目要求是五个矩阵以文件形式输入(可以通过百度很容易了解文件的一些操作),首先要判断文件是否合法(即行列数不同、并非矩阵等矩阵中的数字并非正整数、数字之间并非使用t分割等。若遇到这些情况,终止程序执行)。我首先定义了数组,因为输入的规模无法确定,所以无法确定数组的规模大小。利用Java自带的一行读入函数,利用if系列语句来判断是否存在特殊情况。判断输入是合法的,我们就可以进一步验证该合法矩阵是否为幻方。使用for循环(行和列的和就可以用两层嵌套循环语句,主副对角线之和也是用两层嵌套循环得到)
-
第二题绘图
-
这次任务是为了实现一个绘图工具Trurtle Graphics,需要我们完成的任务为:画出一个正方形,计算正多边形内角,由正多边形内角得到边数,计算从一个点到另外一个点所需要转过的角度,给定一系列点计算每次转过的角度并返回在集合中,计算一系列点中的凸包,调用函数绘制图形,使用junit进行单元测试。
-
其中凸包问题较为困难
-
第三题 交
-
这部分内容留在和下一次实验一起说。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!