软件构造Lab1

 

目录

Magic Squares (MIT)

         Turtle Graphics (MIT)

         Social Network (CMU) 

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的使用。

 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值