软件构造实验一问题解决方法及经验教训

软件构造实验一问题解决方法及经验教训

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

二:实验环境配置
1.在官 上下载安装完成JDK,并配置其环境变量,在卸载JDK时要将设置的环境变量删除干净,方便后续JDK版本的安装。
删除JDK版本16安装符合要求的JDK10时,发生环境变量错误,原因为优先搜索的另一路径下的JDK,将“%JAVA_HOME%bin”的变量值提前。解决此问题。
2.官 下载并安装Eclipse。
发现无法打开Eclipse安装文件,解决方案,官 下载已经配置好的压缩包后解压到本地直接打开
这里给出链接:
https://www.eclipse.org/downloads/download.phple=/technology/epp/downloads/release/2021-06/R/eclipse-java-2021-06-R-win32-x86_64.zip
直接打开使用eclipse.exe。

3.3Social Network
利用图结构实现简单 交 络,用其计算 交距离。
3.3.1设计/实现FriendshipGraph类
1.在FriendshipGraph里声明两个类,一个保存人的实例,另一利用哈希表检测确保无重名。
2.addVertex方法用来添加成员,同时检测是否重名,重名则提示退出,不重名则添加。
3.addEdge方法用来建立单向朋友关系(此任务要求能够拓展为有向图,无向图则调用两次,分别添加),people1认识people2,则将people2加入people1的朋友圈。调用person类addFriend方法。
4.getDistanc方法用于确定 交 络中的距离。使用广度优先搜索加队列的方式。

软件构造实验一问题解决方法及经验教训

3.3.2设计/实现Person类
1.定义名字和朋友列表,下面建立调用两个成员的方法:
2.建立朋友列表、返回姓名、返回朋友列表、添加朋友。
3.3.3设计/实现客户端代码main()
1.根据实验手册,建立主函数:

3.3.4设计/实现测试用例
1.测试addVertex,添加Person类,查看最后一个成员是否正确:
2.测试addEdge,判断朋友列表最后一个成员是否正确。
3.测试 交距离是否正确:建立一图结构,测试两人间距离:
4.结果:测试通过。

四:实验过程中遇到的困难与解决途径
1.配置JDK环境失败,找不到JDK位置
寻求同学帮助,更改路径搜索优先级
2.Eclipse 无法安装
CSDN查询,下载压缩包使用
3.MagicSquare程序 错
读取方法使用错误,将null误当成字符串“null”
4.Turtle Graphic凸包 利用Graham-Scan方法略显繁琐
采用Gift wrapping algorithm算法,顺时针求取凸包
五:实验过程中收获的经验、教训、感想
(1)Java编程语言是否对你的口味r> 符合,但目前使用很不熟悉,对其了解极其有限,有很多方法和类无法熟练调用,难以增加编程效率。
(2)关于Eclipse IDE
很好用,同样很不熟悉,只是了解简单的操作,无法有效利用。
(3)关于Git和GitHub
很方便,待熟练运用
(4)关于CMU和MIT的作业
设置的很巧妙,适合有一定编程基础,但不熟悉java编程的学习。美中不足的是英文原文外加一些偏僻专用词汇,理解其意思十分困难,编程且练习英语。
(5)关于本实验的工作量、难度、deadline
难度适中,但个人认为老师可以多给些提示,不熟练java编程的有些困难。工作量适中,由于课程推迟原因,原本两周的实验时间留给我们的只有一周,边做实验边学习java,还要写实验 告,学习Git等新的知识和软件配置使用方法等,很大压力。
(6)关于初接触“软件构造”课程
个人认为前几节课是在宏观角度介绍软件构造,但与实验内容关系不大。

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览93633 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月1日
下一篇 2021年6月1日

相关推荐