Skip to content

Matrix calculator in C++ using OOP, polymorphism, STL, parsers, variety of algorithms ๐Ÿงฎ

Notifications You must be signed in to change notification settings

bursasha/cpp-matrix-calculator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

8 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

CMatrixCalculator ๐Ÿงฎ

Project Structure: ๐Ÿ“

  • src/: Contains the source code files for the matrix calculator.
  • examples/: Includes example files for loading matrices.
  • assets/: Holds images and documentation files.
  • Makefile: Used for building the project.
  • Doxyfile: Configuration file for generating documentation with Doxygen.
  • DOCUMENTATION.md: Additional documentation for the project.
  • README.md: The main README file for the project.

Technology Stack: ๐Ÿ”

  • Language: C++
  • Paradigm: Object-Oriented Programming (OOP)
  • Techniques: Polymorphism, Inheritance, Encapsulation
  • Libraries: STL (Standard Template Library)
  • Tools: Makefile, Doxygen
  • Concepts: Dense and Sparse Matrices, Effective Memory Usage
  • Other: Parsers, Various Algorithms

What is it capable of? ๐Ÿš€

Support for working with many matrices (as many as there are letters in the English alphabet).

Basic operations:

  • โž• Addition.
  • โž– Subtraction.
  • โœ–๏ธ Multiplication/multiplication by a constant.
  • โœ‚๏ธ Trimming/joining matrices.
  • ๐Ÿ“ Vertical/Horizontal join of matrices.
  • ๐Ÿ“„ Loading the matrix from the formatted file.
  • โœ๏ธ Changing the entered matrix by the console or file input.
  • ๐Ÿ–ฅ๏ธ Output of the matrix to the console or to the file.

Advanced linear operations:

  • ๐Ÿ”„ Transposition.
  • ๐Ÿ” Finding the inverse matrix.
  • ๐Ÿงฎ Search for a determinant.
  • ๐Ÿ“‰ Gaussian elimination.

Program interface: ๐Ÿ–ฅ๏ธ

  • Console application.
  • User and file input processing.
  • Support for the above operations, also read the documentation.
  • Error output depending on the problem encountered.
  • To load a matrix from a file, it must be formatted as files in the examples/ folder.

Application of polymorphic functions: ๐Ÿงฌ

  • 2 types of matrices โ€“ dense and sparse, for efficient storage of internal elements, depending on the number of non-zero elements.
  • The getElement function to get the desired element from the matrix, depending on its type.
  • The print function to output the matrix to the console, depending on its type.
  • The save function to save the matrix to a file depending on its type.

Project Description: ๐Ÿ“œ

I created a console calculator for performing basic operations on different matrices. It will be possible to interact with the program by entering commands such as ADD, SUBTRACT, MULTIPLY, TRANSPOSE, DETERMINANT, and others. When starting the calculator, the user will be greeted with a welcome message and a short guide to using the program. While working with the calculator, in case of incorrect input or other issues, the program will notify the user of the exceptions that have occurred. It will also be possible to terminate the program using a specific command.

General basic view of the program: ๐Ÿ—๏ธ

Calculator structure

Calculator documentation: ๐Ÿ“–

Calculator documentation