[Java]软件构造LAB1实验总结

在接触这课之前,包括我在内的很多学生基本都没学过或没用过java,因此LAB1是一个很好的过渡。通过LAB1,对于JAVA的语法、编程思想等,有了一些较为基础的认识。

 

P1 Magic Square

P1.1 isLegalMagicSquare

对一个给定的矩阵/非矩阵,通过判定各种条件来确定其是否为幻方

解决步骤:

1.由于矩阵存放在txt文件中,首先要读入txt文件,根据相对路径读入1-5.txt

2.读入txt文件中的内容到一个二维数组content[][]中

3.对数组进行判断 分别有非矩阵/行列数不相等/存在小数或负数/空格符不是/t等 排出掉不符合幻方定义的txt

4.求出第一行sum 然后再求出其余各行各列各对角线的sum 进行比较 如果相同则为幻方 不同则非幻方

注意事项:

1.通过BufferedReader读入文件,用split将字符串分割

2.针对5个文本文件出现的所有情况进行错误判断与处理

P1.2 generateMagicSquare

将generate函数加入到程序中,使其能够符合程序要求正确生成幻方

解决步骤:

原题只让绘制流程图与添加中文注释,生成新的6.txt并判断6.txt是否符合幻方,此处略

P2 Turtle Graphics

 完善turtlesoup.java中的方法并在turtlesouptest.java中测试

P2.1 Problem 1:Clone and import

从GitHub获取该任务的代码、在本地创建git仓库、使用git管理本地开发。

git常用指令:

①cd 目录

②dir查看目录内信息

③git add *

④git commit -m "注释"

⑤git remote add origin(地址)

⑥git push -u origin master

P2.2 Problem 3: Turtle graphics and drawSquare

循环四次 每次forward(sideLength) turn(90)

P2.3 Problem 5: Drawing polygons

先计算出正多边形每个角的角度 然后和刚才一样for循环 forward sideLength turn(外角度数)

P2.4 Problem 6: Calculating Bearings

通过一系列条件判断可得出方位角

P2.5 Problem 7: Convex Hulls

利用边界法求解凸包 在点数小于等于3时直接返回 点数大于3时:

①求出最左下角的点

②以该点为中心 寻找当前离该点方位角最小的点 如果有多点共线,则选取距离最近的点

③找到之后以找到的点替换当前点

④循环②③直到下一次找到的点为最开始找到的最左下角点

P2.6 Problem 8: Personal art

P2.7 Junit测试

写Junit测试文件对结果进行测试即可通过

P3 Social Network

编写完成Person和FriendshipGraph两个类,以无向图的形式模拟社交网络,但设计要能拓展到有向图。用图代表社交网络,顶点代表社交网络中的每个人,边代表人之间的关系

以Person类作为存储结构,存放顶点(人)及人的相关属性

在FriendshipGraph类中分别编写addVertex、addEdge方法,添加顶点与边

以BFS算法为核心编写getDistance方法 求出两点间最短路径

设计main类,添加人与人之间的关系,形成应用程序

最后编写测试类,测试程序结果是否正确

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值