前言
这次主要是基于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的解答,后续问题将持续更新。