Menu-Based Implementation of the Matrix Calculator

Understand the menu-based matrix calculator.

Implementation of the matrix calculator

Here’s the playground containing all the operator overloading implementations we learned in the previous lessons.

4

2 2
1 2 
4 5

2 2
7 8 
2 2

3 3
4 7 5
9 8 5
3 7 2

4 3 
4 6 5
3 3 4
5 8 9
4 5 3
Implementation of the matrix calculator

Let’s review the code in the main.cpp file:

  • Lines 1–11: We’ve written a PrintMatrices() function that takes a double pointer of type Matrix and an integer NOM representing the number of matrices to print.

  • Lines 12–24: We’ve written a LoadingMatrix() function that reads the matrices from the Matrix.txt file and loads them to Ms array.

  • Lines 25–36: We’ve created a menu that’s displayed to the user so that the user can select which operation to perform on matrices using the menu() function.

  • Lines 37–45: In these lines, we’ve started the main() function and initialized the matrices by calling the LoadingMatrix() function, and we’ve declared some variables that’ll be used later.

  • Lines 46–302: These lines indicate the while loop that runs until the STOP flag is false. We can set the STOP flag true by selecting the 8th option from the menu.

  • Lines 49–51: We’ve displayed the menu using the menu() function and asked the user for input. We’ve developed a switch structure based on the input that performs the relevant operations according to the user’s selection.

  • Lines 54–89: The first choice is the binary arithmetic operations on two matrices and store the result in the third matrix.

  • Lines 90–125: The second choice is the accumulation assignments (+=, -=, *=, /=). In these operations, the output of the operation is stored in the left matrix.

  • Lines 126–162: The third option is to perform unary scalar arithmetic, in which we perform the arithmetic operations on the matrix using a scalar int or float value.

  • Lines 163–219: The fourth option is to perform increment/decrement operations on a matrix.

  • Lines 220–249: The fifth option is the unary operations (-, !, ~). These operators are implemented to perform a matrix’s unary minus (negation), transpose, and inverse.

  • Lines 250–260: In the sixth option, two matrices are compared.

  • Lines 261–288: We’ve set the flag to terminate the loop in the eighth option.

  • Lines 289–299: This default option displays the error message to the users, indicating they input the wrong option and terminates the program.

The given code appears to be implementing a menu-based program for performing various operations on matrices. The program allows the user to choose different options such as binary arithmetic, accumulation assignments, unary scalar arithmetic, unary increment/decrement, unary operations, comparison of matrices, rotation of matrices, and exiting the program.

The program continues to execute until the user chooses to exit. Each menu option corresponds to a different operation on matrices, such as performing arithmetic operations, incrementing/decrementing matrix values, calculating unary operations, checking matrix equality, and rotating matrices.