哈工大2020软件构造Lab1实验报告

**1 实验目标概述
2 实验环境配置
3 实验过程
3.1 Magic Squares
3.1.1 isLegalMagicSquare()
3.1.2 generateMagicSquare()
3.2 Turtle Graphics
3.2.1 Problem 1: Clone and import
3.2.2 Problem 3: Turtle graphics and drawSquare
3.2.3 Problem 5: Drawing polygons
3.2.4 Problem 6: Calculating Bearings
3.2.5 Problem 7: Convex Hulls
3.2.6 Problem 8: Personal art
3.2.7 Submitting
3.3 Social Network
3.3.1 设计/实现FriendshipGraph类
3.3.2 设计/实现Person类
3.3.3 设计/实现客户端代码main()
3.3.4 设计/实现测试用例

1 实验目标概述
本次实验通过求解三个问题,训练基本 Java 编程技能,能够利用 Java OO 开发基本的功能模块,能够阅读理解已有代码框架并根据功能需求补全代码,能够为所开发的代码编写基本的测试程序并完成测试,初步保证所开发代码的正确性。另一方面,利用 Git 作为代码配置管理的工具,学会 Git 的基本使用方法。
基本的 Java OO 编程
基于 Eclipse IDE 进行 Java 编程
基于 JUnit 的测试基于 Git 的代码配置管理
2实验环境配置

  1. 下载并按照提示安装eclipse2
  2. 根据提示安装git并设置邮箱和命令
  3. 下载安装包安装jdk

3.实验过程
3.1 Magic Squares
首先要判断一个矩阵是否为Magic Squares,然后写一个代码生成Magic Squares,并判断生成的是否为Magic Squares.
3.1.1 isLegalMagicSquare()
首先从文本读取文档,判断格式正确与否,如矩阵行列数是否相等,是否都为整数,是否有负数,不满足返回false.计算行,列,对角线是否和相等,不满足返回false,即不是幻方都满足返回ture
哈工大2020软件构造Lab1实验报告_第1张图片
3.1.2 generateMagicSquare()
判断输入,如果不是正奇数返回false满足的话创建幻方先初始化生成矩阵,再循环n*n次填充矩阵
哈工大2020软件构造Lab1实验报告_第2张图片
3.2 Turtle Graphics
完成给定的函数并作图
3.2.1 Problem 1: Clone and import
从网上直接下载
3.2.2 Problem 3: Turtle graphics and drawSquare
先向前一定距离,在旋转90°,重复4次。
哈工大2020软件构造Lab1实验报告_第3张图片
3.2.4 Problem 6: Calculating Bearings 计算点之间的方位角,再具体分析得到转动的角度,如果出现负数要记得加上360。
3.2.5 Problem 7: Convex Hulls 先选择起始点,每次选择转角最小的点加入集合,重复。
3.2.6 Problem 8: Personal art 画一个自己设计的图形
哈工大2020软件构造Lab1实验报告_第4张图片
3.3 Social Network
实现一张人际关系网并求人际距离
3.3.1 设计/实现FriendshipGraph类
先设置成员变量,设置列表保存社交网每一个人。再利用addvertex向图中添加顶点,载实现函数addedge,利用映射求两个人的编号,对应二维数组的行号和列号。最后利用广度优先实现getdistance,如果输入的是两个人则先算出单源最短路径,再进行输出。如果两人之间没有路,则默认1000返回-1.
3.1.2 设计/实现Person类
设置了一个返回name的函数。
3.1.3 设计/实现客户端代码main()
将graph的二维数组初始化,初始默认1000,然后添加几个person,将其加入图中并计算输出最短路径。
3.1.4 设计/实现测试用例
testaddVertex:添加person并测试
testaddEdge:加入person与关系并测试
testgetDistance():加入a,b,c,d四个person及关系,测试最短距离

你可能感兴趣的:(哈工大2020软件构造Lab1实验报告)