目录
Magic Squares (MIT)
任务一:能够从五个已经提供的txt文档中读入数据,来判断输入的数据能否构成一个MagicSquare,若是则返回true,若不是则返回false且说明原因。MagicSquare是一个正方形图形,他的每一行、每一列和对角线的数字之和都相等。
任务二:对给出的generateMagicSquare函数进行扩充,使之能够产生一个MagicSquare并且将其输入到文本6.txt中,然后对其判断是否为MagicSquare。并且满足若输入的为奇数能产生MagicSquare,而输入偶数或者负数会返回false。
这个问题思路并不难,按部就班一条一条来就可以,困难主要在于第一次接触Java,适应较慢以及之后使用GitHub提交。
Turtle Graphics (MIT)
这次任务是为了实现一个绘图工具Trurtle Graphics,需要我们完成的任务为:画出一个正方形,计算正多边形内角,由正多边形内角得到边数,计算从一个点到另外一个点所需要转过的角度,给定一系列点计算每次转过的角度并返回在集合中,计算一系列点中的凸包,调用函数绘制图形,使用junit进行单元测试。
问题的关键在于计算从一个点到另外一个点所需要转过的角度,利用atan2()函数得到弧度,再用toDegree转换为度数,根据如下数学关系得出偏转角。需要注意的是,若角度为负值则加360.
另一个计算给定集合中的凸包需要利用Gift wrapping algorithm算法,先找到最左下角的点加入集合,然后比较剩余点到此点的偏转角,找到偏转角最小的加入集合,当偏转角相同时,需要找到最长的一条边的点加入集合,最后即可得到凸包的点集。
Social Network (CMU)
本次任务要求实现Person和FriendshipGraph两个类,用FriendshipGraph来构建Person之间的关系来模拟社交网络,能够计算出每两个Person之间的最短路径。
构造好图利用广搜算法即可。
心得:对Java基础有了一定的了解,以及熟悉了GitHub的使用。