软件构造Lab1总结

P1 MagicSquare

【问题概况】

对一个矩阵是否是幻方进行判断,由于矩阵存放在5个txt文件中,所以考察利用Java进行文件的读写,此外在进行幻方的判断之前需要对读入的矩阵进行一定的判断处理,对矩阵中是否存在负数、以及行列数是否相等进行判断。幻方的要求是各行之和与各列之和相等,并且等于两个对角线之和。题目要求如果是幻方则返回true,否则返回false。

【解决策略】

  1. 读写文件:首先需要对读入txt文件的路径进行处理,此处由于题目要求,需要使用相对路径,所以设置了相对路径字符来对相对路径进行存储;下一步就是需要徐泽一种IO文件读写的方式,此处就需要导入包java.io.*来对文件进行读写,InputStream和OutputStream,与此同是,由于涉及到I/O层的交互,需要对程序可能捕获到的异常进行处理,那么就需要用try…catch语句来对相应的异常进行处理;
  2. 转换到二维数组中对矩阵中的数字进行存储:利用string.split()对字符串进行分割,使用intValue()取出对应的数字存入二维维数组;
  3. 计算矩阵:计算矩阵两个对角线元素之和存入一个数组;对于各行各列之和只需要依次遍历的时候就直接计算出。
  4. 最后进行判断,如果某一行或者某一列之和不等于对角线之和,那么就不是幻方,否则遍历完所有和之后都相等,那么该矩阵即为幻方。

P2 Turtle Graphics

【问题概况】

这个任务首先需要到github上克隆任务代码到本地,然后将任务代码导入到实验的项目里面。根据MIT上的要求,总共有八个问题,这些问题都是需要对对应的方法进行处理,所有的方法均需要在TurtleSoup类里面进行编写。需要实现:1.画正方形;2.计算正多边形内角;3.根据内角计算正多边形边数;4.根据方位来进行判断需要到达目标点与当前点的方位差角度计算及其测试;5.凸包问题;6.自创图形绘制。

【解决策略】

  1. 画正方形借助forward和turn两种方法;
  2. 计算正多边形内角:
  3. 方位差角度计算:
  4. 凸包问题:

P3 Social Network

【问题概况】

P3需要实现Person和FriendshipGraph两个类,实现的就是一个图结构,在这个图中反映人与人之间的关系,在这个图中每一个人就作为一个结点,人与人的关系通过结点之间的边来描述。其中对于人与人之间的关系远近程序通过边上的权值来反映,这个图中,每条边的权值都是1,那么两个人关系远近就是他们之间的最短路径,由于权值为1,那么只需要通过广度优先搜索算法就可以实现最短路径的计算。

【解决策略】

P4 Tweet

【问题概况】

P4需要模拟一个社交网络,对社交网络上的关注数以及对文章内容进行处理分析,得出影响力之最,依然是对图结构的一个拓展和延伸。难点就在于影响力分析influencers以及guessFollowsGraph上。

【解决策略】

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值