语言:Java
开发工具:IntelliJ IDEA 2022.1 区版
1.实验目标
本次实验通过求解选自MIT和CMU三个问题,训练基本 Java 编程技能,能够利用 Java OO 开发基本的功能模块,能够阅读理解已有代码框架并根据功能需求补全代码,能够为所开发的代码编写基本的测试程序并完成测试,初步保证所开发代码的正确性。 另一方面,利用 Git 作为代码配置管理的工具,学会 Git 的基本使用方法。
基本的 Java OO 编程
基于 Eclipse IDE 进行 Java 编程
基于 JUnit 的测试
基于 Git 的代码配置管理
2.环境配置
配置过程:下载IDEA—配置JDK11—新建项目—Module中添加JUnit4
3.实验过程
3.1Magic Squares
3.1.1isLegalMagicSquare()
编写isLegalMagicSquare()函数,判断以txt形式输入的矩阵是否满足幻方要求,同时需要考虑程序应对非法输入的健壮性;
新建MagicSquare类
- 读取txt文件:
- 使用bufferReader按行读取,读取到temp;
- 使用temp.split(“t”)将字符串分开;
- 使用Integer.valueOf()函数将字符串转化为数字;
- 读取时对输入进行判断:
- 非数字字符输入;
- 数字重复输入;
- 输入负数;
- 输入不满足幻方要求的形状
- 判断行列元素之和、对角线元素之和是否相等:
- 计算两条对角线元素之和并比较,相等则作为基值参与后面比较,否则返回false;
- 计算每一行列的元素和,与基值比较,相等则为幻方,否则不是;
3.1.2generateMagicSquare()
理解并修改generateMagicSquare()的代码,使之能够把生成的幻方写到txt文件里
1.原函数流程图
2.异常分析/p>
1.当输入为偶数时,出现数组越界异常,以输入2为例:
第一次引用右上角元素,第二次引用左下角元素,此时i为2,恰好是阶数2的倍数,
使得第三次引用第三行的元素,发生越界访问;
2. 当输入为负数时,由于不允许数组大小是负数,所以出现数组大小为负数的异常
3.函数扩展
1.引入PrintWriter将产生的幻方数组写到txt文件中;
2.在函数开始,对输入的阶数n进行合法化检查
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!