软件构造 Lab-1

现在回过头来看Lab1,确实是比较基础的东西,甚至可以说起到的是“引导开始”的作用。但尽管如此,我还是在入门的门槛上花了非常多的时间。

由于不是什么厉害角色,只是个懒惰的普通学生,在课程开始前在相关方面的知识和配置一点也没有,这就导致了我的Lab1注定是个痛苦且碰壁的过程。

一、GitHub的配置

 在下载git的过程中就先遇到了困难,下了半天才知道需要挂梯子,此前我甚至都没有梯子,于是询问同学后买了一个,下载完之后看着空空的窗口,又懵了:

看了手册,需要SSH keys,就返回去尝试开通。开通的过程就是第二关,又是找公钥又是翻终端的,折腾了好久,最后是在GPT的“指导”下完成的。

ps:GPT确实是一个非常好的工具,把报错指令直接复制给它,它就能给你好几种解决方案和指令格式。

可能是网页卡了或者别的什么问题,开通以后,并且已经连接到本地仓库了,但那边还是显示为空:

由于手里已经拿到了自己的SSH keys,我就以为没有什么问题了,便开始对git指令的学习,一通烧脑实验过后,发现文件pull不上去,即使是询问gpt也是让我反复绕圈子地尝试各种指令,忙活到半夜。迫于无奈和着急,只好打扰了群里的助教帮忙解决,学长果然是过来人,三两下就发现问题然后帮我顺利搞定。

二、IDEA和Junit配置,以及Java学习过程,也都是漫长且迷茫痛苦的,总的来说比git的好一点点。

三、实验内容

百般折腾后终于来到了实验正式内容,老师发布的代码里已经完成了部分以及构架,只需要完成对应功能实现即可,这部分主要还是考察对Java基本语法的学习。

由于第一次实验确实是云里雾里,只顾着埋头敲代码,老师要求写的Spec什么的通通忘掉,太抱歉了。

Magic Squares

Magic Square,汉译为“幻方”或“魔术方阵”,由一组排放在正方形中的整数组成,其每行、每列以及每一条主对角线的和均相等(维基百科)。

有个编写思路的口诀:“一居上行正中央,依次斜填切莫忘;上出框时向下放,右出框时向左放;排重便在下格填,右上排重一个样”。

Turtle Graphics

Turtle是来自python中的一个库,这个实验的目的是通过Java来实现一个简单的Turtle库并实现简单的图形绘制的功能,其中Turtle库需要自己补充完整。这次实验的实质是引导我们阅读代码,明确我们需要采取的行动。GUI的实现部分已经完成。所以任务为如何有效地利用GUI。

提到turtle,我们会很自然地想到python的那个基础画图工具,这个实验就是源自那个,最后还有个人设计环节,还蛮有趣的。

Social Network

该实验意在利用不同的数据结构,创建Person和FriendshipGraph两个类,针对人际关系网络的图实现。同时设计一个函数,通过对图进行判断、计算和操作,实现确定任意两个人之间的最短人际关系距离的功能。

测试样例

这对我来说是一个很新的东西,之前只有听说过,但从没真正去学习测试策略并设计过,针对本次实验,测试样例需要能够尽可能覆盖各种情况来对程序进行“考验”,也需要掌握Junit的使用方法。

总的来说,本次实验在代码层面的难度并不高,但是在别的七七八八的各种配置上能让我操碎了心,也算为后续的学习和实验开了个头。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值