HITSC Lab1

目录

 

1 实验目标概述.... 1

2 实验环境配置.... 1

3 实验过程.... 1

3.1 Magic Squares. 1

3.1.1 isLegalMagicSquare(). 1

3.1.2 generateMagicSquare(). 1

3.2 Turtle Graphics. 1

3.2.1 Problem 1: Clone and import 2

3.2.2 Problem 3: Turtle graphics and drawSquare.. 2

3.2.3 Problem 5: Drawing polygons. 2

3.2.4 Problem 6: Calculating Bearings. 2

3.2.5 Problem 7: Convex Hulls. 2

3.2.6 Problem 8: Personal art 2

3.2.7 Submitting. 2

3.3 Social Network. 2

3.3.1 设计/实现FriendshipGraph类.... 2

3.3.2 设计/实现Person类.... 2

3.3.3 设计/实现客户端代码main(). 2

3.3.4 设计/实现测试用例.... 3

4 实验进度记录.... 3

5 实验过程中遇到的困难与解决途径.... 3

6 实验过程中收获的经验、教训、感想.... 3

6.1 实验过程中收获的经验和教训.... 3

6.2 针对以下方面的感受.... 3

 

 

1 实验目标概述

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

基本的 Java OO 编程

基于 Eclipse IDE 进行 Java 编程

基于 JUnit 的测试

基于 Git 的代码配置管理

2 实验环境配置

首先前往java官网下载java(由于网速太差所以从同学那里拷了一份,手动添加了path)

然后安装eclipse,在安装eclipse中可能会提醒说java版本不匹配,这时候只要从官网上下个压缩包然后手动添加java路径就可以了

实验地址:https://classroom.github.com/a/qL3Yd1XX

3 实验过程

请仔细对照实验手册,针对四个问题中的每一项任务,在下面各节中记录你的实验过程、阐述你的设计思路和问题求解思路,可辅之以示意图或关键源代码加以说明(但无需把你的源代码全部粘贴过来!)。

为了条理清晰,可根据需要在各节增加三级标题。

3.1 Magic Squares

这个问题分两个,第一个需要我们对于已有文件判断是否是幻方,主要是考察对于java的操作。

第二个问题主要是对于一些异常的处理等等。

3.1.1 isLegalMagicSquare()

首先使用file 和scanner从指定文件中读入。

然后使用”%”分隔,读入所有内容。

然后使用”\n”把内容按行分布。

在每一行中分别判断是否是矩阵,使用用”\t”分割等等。

最后判断和是否相等。

3.1.2 generateMagicSquare()

 

首先把代码复制进来,然后加入对于输入是否是负数以及偶数进行判断。

接着使用filewriter以及file把结果输出到对应文件中。

3.2 Turtle Graphics

逐步完成一个任务,初步熟悉junit。

3.2.1 Problem 1: Clone and import

从github中使用download操作下载zip.

然后使用git init git add git commit -m “”等操作上传文件

3.2.2 Problem 3: Turtle graphics and drawSquare

画一个正方形。

每次旋转90,前进sidelength

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

使用git init git add git commit -m “”等操作上传文件

3.3 Social Network

让我们实现一个bfs和junit文件。

3.3.1 设计/实现FriendshipGraph类

分别实现加点,加边,以及bfs求最短路的方法。

使用hashset来确保没有重边,使用map来使名字和序号意义对应。

3.3.2 设计/实现Person类

Person类中维护一个string数组

 

 

3.3.3 设计/实现客户端代码main()

 

 

3.3.4 设计/实现测试用例

首先把问题中给的测试样例进行测试,然后测试有向图的情况。

给出你的设计和实现思路/过程/结果。

4 实验进度记录

请使用表格方式记录你的进度情况,以超过半小时的连续编程时间为一行。

每次结束编程时,请向该表格中增加一行。不要事后胡乱填写。

不要嫌烦,该表格可帮助你汇总你在每个任务上付出的时间和精力,发现自己不擅长的任务,后续有意识的弥补。

日期

时间段

任务

实际完成情况

2020-03-04

18:30-19:30

编写问题1函数并进行测试

按计划完成

2020-03-06

18:30-19:30

编写问题2函数并进行测试

按计划完成

2020-03-07

18:30-19:30

编写问题3函数并进行测试

按计划完成

5 实验过程中遇到的困难与解决途径

遇到的困难

解决途径

文件输出不覆盖而是继续输出

把filewriter中改为false

6 实验过程中收获的经验、教训、感想

6.1 实验过程中收获的经验和教训

熟悉了java语言,以及eclipse,junit等等

熟悉了github的一些基本操作

6.2 针对以下方面的感受

(1)   Java编程语言是否对你的口味? 还可以

(2)   关于Eclipse IDE;感觉使用并不舒服

(3)   关于Git和GitHub;好用

(4)   关于CMU和MIT的作业;适量

(5)   关于本实验的工作量、难度、deadline;适量

(6)   关于初接触“软件构造”课程;稍有困难

(7)   疫情期间,只能远程授课,个人在家里完成实验任务,你对该学习方式有什么想法?没有

 

posted @ 2020-03-29 22:06  古城独钓  阅读(145)  评论(0编辑  收藏  举报