软件构造第一次实验(一)


前言

这次主要是基于Java OO编程和基于JUnit的测试,以及Git的代码配置管理

本次实验推荐使用IDEA


一、实验环境的建立

可在IDEA官网上下载IDEA社区版本,本次实验要求JDK11,可在橡树官网下载

下载好之后可在Project Structure里进行配置,如图所示:

然后开始配置JUnit,如图:

另外可以配置一个test文件用来写测试类,如图:

二、幻方问题

1.判断是否为幻方

 要点就是遵循函数规约:要求每一行和每一列以及对角线的和是否相等

代码如下(示例):

public static boolean isLeagalMagciSquare(String fileName)
{
   //首先要进行文件读取
   //然后将文件的数据读入到一个二维数组中
   //将数组中每一行相加与每一列相加进行判断
   //短路法则,如果不相等,直接返回false
   //相等就可以与对角线进行判断
}

2.生成一个幻方

这个要求就是幻方的结束不能是负数或者是偶数,只能是基数 

代码如下(示例):

public static boolean generateMagicSquare(int n) {
int magic[][] = new int[n][n];
int row = 0, col = n / 2, i, j, square = n * n;
for (i = 1; i <= square; i++) {
magic[row][col] = i;
if (i % n == 0)
row++;
else {
if (row == 0)
row = n ‐ 1;
else
row‐‐;
if (col == (n ‐ 1))
col = 0;
else
col++;
} }
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
System.out.print(magic[i][j] + "\t");
System.out.println();
}
return true;
}

注意:问题还要求我们生成一个幻方后,用第一个方法isLeagalMagicSquare测试是否符合幻方的定义

主函数代码示例:

public static void main(String[] args) throws IOException
    {
        for(char i = '1'; i <= '5'; i++)
        {
            System.out.println(i + " " + String.valueOf(isLeagalMagciSquare("src/P1/txt/" + i + ".txt")));
        }
        Scanner show = new Scanner(System.in);
        int n = show.nextInt();
        while(n <= 0 || n % 2 == 0)
        {
            System.out.println("输入错误!!!");
            n = show.nextInt();
        }
        generateMagicSquare(n);
        System.out.println("6" + " " + String.valueOf(isLeagalMagciSquare("src/P1/txt/" + "6" + ".txt")));
    }

总结

实验的第一部分主要是Java环境的建立和问题1的解答,后续问题将持续更新。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒不是我的fault

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值