软件构造lab1感想

1 实验目标概述
本次实验通过求解四个问题,训练基本Java编程技能,能够利用Java OO开发基本的功能模块,能够阅读理解已有代码框架并根据功能需求补全代码,能够为所开发的代码编写基本的测试程序并完成测试,初步保证所开发代码的正确性。另一方面,利用Git作为代码配置管理的工具,学会Git的基本使用方法。
一、Magic Squares这个实验第一部分需要从文件读取数据(矩阵),并且编写函数isLegalMagicSquare判断是否为合法,第二部分根据提供的生成矩阵算法生成矩阵并进行验证,以及错误数据的提示。
二、Turtle Graphics这个实验通过绘图与计算,训练利用turtle绘图的方法,掌握卷包裹算法(gift-wrapping)以解决convex hulls问题,提升java编程能力。
三、Social Network考察有向图的建立,并通过广度优先搜索取得最短路径,并且编写测试程序,以及掌握private、public等的区别与使用。
四、Tweet Tweet熟悉Set和Map等类的基本使用方法,加深对各类发方法的理解,从而实现灵活使用。
2 实验环境配置
1.安装jre,Development Tools,Source Code三个选项(全选)
2.配置环境变量
单击“计算机-属性-高级系统设置”,单击“环境变量”。在“系统变量”栏下单击“新建”,创建新的系统环境变量。
变量的建立来源于网络https://www.cnblogs.com/smyhvae/p/3788534.html;
这其中产生了困难,就是与网络教程不同的是Path需要设置在用户变量里。
用java和javac在运行中进行测试
在这里插入图片描述
在这里插入图片描述
java版本
在这里插入图片描述
3.1 Magic Squares
这个实验分为两部分,第一部分是从txt文件(1至5中读取数据),文件的处理是这部分的难点(自认为),根据数据生成的矩阵,判断是否满足Magic Square的条件,并能够处理非数字、非矩阵等异常,输出反馈语句。
第二部分需要在main中测试给出的方法generateMagicSquare(),理解它,画出它产生矩阵的流程图,并为代码注释。除此之外,观察当输入偶数或负数时的jdk异常,理解它们的含义,最后,改进此方法,使其能够对错误数据进行处理。
3.2 Turtle Graphics
本实验就是利用turtle中的工具进行绘图,绘制正方形,绘制多边形(包括由边数求内角、由内角求边数),在这个过程中熟悉test的使用方法,为后续实验进行准备。
这个实验我认为最有难度的是convexhull问题,我使用的是卷包裹算法(gift-wrapping),利用对外积的理解。
3.3 Social Network
这个实验是完成三个方法,并在这个过程中,实现图的建立,加入点与边,并用BFS计算从一点到另一点的最短距离。熟悉类的使用,从而能够在能力上有一个提升,并且独立编写测试文件,学会测试程序。注意:private,public的使用。
我选择用邻接表来表示图。
3.4 Tweet Tweet
这个实验分为四各问题,在编程中逐步熟悉Set,List,Map等数据结构的使用,提高编程能力和解决问题的能力。
收获的经验和教训
从没有接触过面对对象的编程语言,因此在做实验的过程中感觉到无力,但随着实验的进行和课程的讲解,对java语言有了初步的了解,在某些时候,我感到它比c语言更加方便。.经常会产生null引用的调用异常,还有list等数据结构的越界访问,这些运行时错误,常常不易找出问题的根源,浪费了许多时间

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值