# Menu-Based Implementation of the Matrix Calculator

Understand the menu-based matrix calculator.

## We'll cover the following

## 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

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.