Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

File Square.java contains the shell for a class that represents a square matrix.

ID: 3625533 • Letter: F

Question

File Square.java contains the shell for a class that represents a square matrix. It contains headers for a constructor that gives the size of the square and methods to read values into the square, print the square, find the sum of a given row, find the sum of a given column, find the sum of the main (or other) diagonal, and determine whether the square is magic. The read method is given for you; you will need to write the others. Note that the read method takes a Scanner object as a parameter.

File SquareTest.java contains the shell for a program that reads input for squares from a file named magicData and tells whether each is a magic square. Following the comments, fill in the remaining code. Note that the main method reads the size of a square, then after constructing the square of that size, it calls the readSquare method to read the square in. The readSquare method must be sent the Scanner object as a parameter.

You should find that the first, second, and third squares in the input are magic, and that the rest (fourth through seventh) are not. Note that the -1 at the bottom tells the test program to stop reading.

Copy the data given and save NotePad in a file called magicData.txt.

// ****************************************************************
// Square.java
//
// Define a Square class with methods to create and read in
// info for a square matrix and to compute the sum of a row,
// a col, either diagonal, and whether it is magic.
//
// ****************************************************************

import java.util.Scanner;

public class Square
{
int[][] square;

//--------------------------------------
//create new square of given size
//--------------------------------------
public Square(int size)
{

}

//--------------------------------------
//return the sum of the values in the given row
//--------------------------------------
public int sumRow(int row)
{

}

//--------------------------------------
//return the sum of the values in the given column
//--------------------------------------
public int sumCol(int col)
{

}

//--------------------------------------
//return the sum of the values in the main diagonal
//--------------------------------------
public int sumMainDiag()
{

}

//--------------------------------------
//return the sum of the values in the other ("reverse") diagonal
//--------------------------------------
public int sumOtherDiag()
{

}

//--------------------------------------
//return true if the square is magic (all rows, cols, and diags have
//same sum), false otherwise
//--------------------------------------
public boolean magic()
{

}

//--------------------------------------
//read info into the square from the standard input.
//--------------------------------------
public void readSquare(Scanner scan)
{
for (int row = 0; row < square.length; row++)
for (int col = 0; col < square.length; col ++)
square[row][col] = scan.nextInt();
}

//--------------------------------------
//print the contents of the square, neatly formatted
//--------------------------------------
public void printSquare()
{

}

}


// ****************************************************************
// SquareTest.java
//
// Uses the Square class to read in square data and tell if
// each square is magic.
//
// ****************************************************************

import java.util.Scanner;

public class SquareTest
{
public static void main(String[] args) throws IOException
{
Scanner scan = new Scanner(new File("magicData.txt"));

int count = 1; //count which square we're on
int size = scan.nextInt(); //size of next square

//Expecting -1 at bottom of input file
while (size != -1)
{

//create a new Square of the given size

//call its read method to read the values of the square

System.out.println(" ******** Square " + count + " ********");
//print the square

//print the sums of its rows

//print the sums of its columns

//print the sum of the main diagonal

//print the sum of the other diagonal

//determine and print whether it is a magic square

//get size of next square
size = scan.nextInt();

}

}
}






Use the data given below – copy and paste it into a text file in NotePad or similar editor.


3
8 1 6
3 5 7
4 9 2
7
30 39 48 1 10 19 28
38 47 7 9 18 27 29
46 6 8 17 26 35 37
5 14 16 25 34 36 45
13 15 24 33 42 44 4
21 23 32 41 43 3 12
22 31 40 49 2 11 20
4
48 9 6 39
27 18 21 36
15 30 33 24
12 45 42 3
3
6 2 7
1 5 3
2 9 4
4
3 16 2 13
6 9 7 12
10 5 11 8
15 4 14 1
5
17 24 15 8 1
23 5 16 14 7
4 6 22 13 20
10 12 3 21 19
11 18 9 2 25
7
30 39 48 1 10 28 19
38 47 7 9 18 29 27
46 6 8 17 26 37 35
5 14 16 25 34 45 36
13 15 24 33 42 4 44
21 23 32 41 43 12 3
22 31 40 49 2 20 11
-1

Explanation / Answer

please rate - thanks


// ****************************************************************
// SquareTest.java
//
// Uses the Square class to read in square data and tell if
// each square is magic.
//
// ****************************************************************

import java.util.Scanner;
import java.io.*;
public class SquareTest
{
public static void main(String[] args) throws IOException
{
Scanner scan = new Scanner(new File("magicData.txt"));

int count = 1; //count which square we're on
int size = scan.nextInt(); //size of next square

//Expecting -1 at bottom of input file
while (size != -1)
{Square s;
s=new Square(size);
//create a new Square of the given size
s.readSquare(scan);
//call its read method to read the values of the square

System.out.println(" ******** Square " + count + " ********");
//print the square
s.printSquare();
//print the sums of its rows
System.out.println("Row Sums Row Sum");
for(int i=0;i<size;i++)
     System.out.println((i+1)+" "+s.sumRow(i));
System.out.println();
//print the sums of its columns
System.out.println("Column Sums Col Sum");
for(int i=0;i<size;i++)
     System.out.println((i+1)+" "+s.sumCol(i));
System.out.println();

//print the sum of the main diagonal
System.out.println("Diagonol Sums Diagnol Sum");
System.out.println("Main "+s.sumMainDiag());
//print the sum of the other diagonal
System.out.println("Other "+s.sumOtherDiag());
//determine and print whether it is a magic square
if(s.magic())
      System.out.println("Square is magic");
else
     System.out.println("Square is not magic");

//get size of next square
size = scan.nextInt();
count++;
}

}
}

-----------------------------------------------------------------


// ****************************************************************
// Square.java
//
// Define a Square class with methods to create and read in
// info for a square matrix and to compute the sum of a row,
// a col, either diagonal, and whether it is magic.
//
// ****************************************************************

import java.util.Scanner;

public class Square
{
int[][] square;

//--------------------------------------
//create new square of given size
//--------------------------------------
public Square(int size)
{ square= new int[size][size];

}

//--------------------------------------
//return the sum of the values in the given row
//--------------------------------------
public int sumRow(int row)
{int sum=0,i;
for(i=0;i<square.length;i++)
      sum+=square[row][i];
return sum;

}

//--------------------------------------
//return the sum of the values in the given column
//--------------------------------------
public int sumCol(int col)
{int sum=0,i;
for(i=0;i<square.length;i++)
      sum+=square[i][col];
return sum;



}

//--------------------------------------
//return the sum of the values in the main diagonal
//--------------------------------------
public int sumMainDiag()
{int sum=0,i;
for(i=0;i<square.length;i++)
      sum+=square[i][i];
return sum;



}

//--------------------------------------
//return the sum of the values in the other ("reverse") diagonal
//--------------------------------------
public int sumOtherDiag()
{int sum=0,i;
for(i=0;i<square.length;i++)
      sum+=square[i][square.length-1-i];
return sum;



}

//--------------------------------------
//return true if the square is magic (all rows, cols, and diags have
//same sum), false otherwise
//--------------------------------------
public boolean magic()
{int i,total;
total=this.sumOtherDiag();
if(this.sumMainDiag()!=total)
      return false;
int []rows=new int[square.length];
int []cols=new int[square.length];
for(i=0;i<square.length;i++)
     {rows[i]=this.sumRow(i);
    cols[i]=this.sumCol(i);
       }
for(i=0;i<square.length;i++)
    if(rows[i]!=total||cols[i]!=total)
          return false;
      return true;

}

//--------------------------------------
//read info into the square from the standard input.
//--------------------------------------
public void readSquare(Scanner scan)
{
for (int row = 0; row < square.length; row++)
for (int col = 0; col < square.length; col ++)
square[row][col] = scan.nextInt();
}

//--------------------------------------
//print the contents of the square, neatly formatted
//--------------------------------------
public void printSquare()
{for (int row = 0; row < square.length; row++)
    {for (int col = 0; col < square.length; col ++)
           System.out.print(square[row][col]+" ") ;
    System.out.println();
    }

}

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote