哈工大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实验环境配置
- 下载并按照提示安装eclipse2
- 根据提示安装git并设置邮箱和命令
- 下载安装包安装jdk
3.实验过程
3.1 Magic Squares
首先要判断一个矩阵是否为Magic Squares,然后写一个代码生成Magic Squares,并判断生成的是否为Magic Squares.
3.1.1 isLegalMagicSquare()
首先从文本读取文档,判断格式正确与否,如矩阵行列数是否相等,是否都为整数,是否有负数,不满足返回false.计算行,列,对角线是否和相等,不满足返回false,即不是幻方都满足返回ture
3.1.2 generateMagicSquare()
判断输入,如果不是正奇数返回false满足的话创建幻方先初始化生成矩阵,再循环n*n次填充矩阵
3.2 Turtle Graphics
完成给定的函数并作图
3.2.1 Problem 1: Clone and import
从网上直接下载
3.2.2 Problem 3: Turtle graphics and drawSquare
先向前一定距离,在旋转90°,重复4次。
3.2.4 Problem 6: Calculating Bearings 计算点之间的方位角,再具体分析得到转动的角度,如果出现负数要记得加上360。
3.2.5 Problem 7: Convex Hulls 先选择起始点,每次选择转角最小的点加入集合,重复。
3.2.6 Problem 8: Personal art 画一个自己设计的图形
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及关系,测试最短距离