软件构造实验一记录

语言: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类 

  1. 读取txt文件:
    1. 使用bufferReader按行读取,读取到temp;
    2. 使用temp.split(“t”)将字符串分开;
    3. 使用Integer.valueOf()函数将字符串转化为数字;
  2. 读取时对输入进行判断:
    1. 非数字字符输入;
    2. 数字重复输入;
    3. 输入负数;
    4. 输入不满足幻方要求的形状
  3. 判断行列元素之和、对角线元素之和是否相等:
    1. 计算两条对角线元素之和并比较,相等则作为基值参与后面比较,否则返回false;
    2. 计算每一行列的元素和,与基值比较,相等则为幻方,否则不是; 

 3.1.2generateMagicSquare()

理解并修改generateMagicSquare()的代码,使之能够把生成的幻方写到txt文件里

        1.原函数流程图

         2.异常分析/p>

                1.当输入为偶数时,出现数组越界异常,以输入2为例:

                第一次引用右上角元素,第二次引用左下角元素,此时i为2,恰好是阶数2的倍数,

                使得第三次引用第三行的元素,发生越界访问;

               2. 当输入为负数时,由于不允许数组大小是负数,所以出现数组大小为负数的异常

        3.函数扩展

                1.引入PrintWriter将产生的幻方数组写到txt文件中;

                2.在函数开始,对输入的阶数n进行合法化检查

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

上一篇 2022年4月2日
下一篇 2022年4月2日

相关推荐