Coder Social home page Coder Social logo

equation-solver's Introduction

EquationSolver - консольное приложение для решения квадратных уравнений

Функционал программы:

  • решение квадратных уравнений
  • проверка в реальном времени на корректность ввода
  • возможность сохранения и просмотра истории введенных уравнений

Краткая документация

Структура проекта:

Program.cs - содержит метод Main, точку входа в программу

UserInterface.cs - отвечает за пользовательский интерфейс, дает выбор пользователю

Equation\EquationLogger.cs - отвечает за сохранения результатов посчитанных уравнений

Equation\EquationParser.cs - отвечает за парсинг (получение) коэффициентов из введенного уравнения

Equation\EquationValidator.cs - отвечает за ввод пользователем квадратного уравнения, не дает ввести некорректные символы

ConsoleInterfaceLibrary\ConsoleScreen.cs - отвечает за вывод строк в консоль

EquationSolverLibrary\EquationSolver.cs - отвечает за решение квадртных уравнений

Tests\UnitTest.cs - тестирования библиотеки EquationSolver.cs

Краткая логика работы:

  1. Методом UserInterface.SelectUserAction() передаем управление пользователю и даем способ выбрать действие
  2. Если пользователь выбрал "0", то методом EquationValidator.InputEquation() запрашиваем на ввод строку (автоматическая проверка на корректность ввода)
    2.1 Полученная строка передается в метод EquationParser.ReturnCoaficients(), который возвращает массив коэффциентов
    2.2 Полученный массив коэффициентов передаем в метод EquationSolver.SolveQuadraticEquation(), который возвращаем массив найденных корней
    2.3 Создаем обьект класса EquationLogger logger, передаем в конструктор имя файла, в который будет записываться история уравнений
    2.4 При помощи метода logger.AddEquationSolving() записываем уравнение и корни в файл
  3. Если пользователь выбрад "1", то выводится информация (история) о всех предыдущих решенных уравнениях.
    3.1 Вызывается метод ShowHistory(), в котором создается обьект класса EquationLogger logger
    3.2 logger.GetGetHistory() - получаем List<String> со всеми решенным уравнениями и корнями к ним
    3.3 Выводим List в консоль
  4. Если пользователь выбрал "2", то выводится титры или просто информация о разработчиках

Описание методов:

UserInterface.cs

void ShowTitles() - отображении информации о разработчиках
void ShowResults(double[] results, string equation) - отображение результатов посчитанного уравнения
void ShowHistory() - отображении истории введенных уравнений
void SelectUserAction() - выбор пользователем пункта меню

EquationSolver.cs

string Reverse(string text) - возвращает перевернутую строку
double[] ReturnCoaficents(string equation) - возвращает полученные коэффициенты из уравнения
double CoaficentCath(string equation, string variable) - возвращает конкретный коэффициент
double CoaficentCath(string equation, string variable, string[] whiteList) - перегрузка double CoaficentCath(string equation, string variable)
double CoaficentCath(string equation) - перегрузка double CoaficentCath(string equation, string variable)
double[] SolveQuadraticEquation(double A, double B, double C, double D, double E, double F) - решение квадратного уравнения, возвращает корни уравнения

EquationValidator.cs

bool NumberPlaceCondition(string line, char number, int index) - проверка на максимальную степень x
bool SimbolsPlaceCondition(string line, char simbol, int index) - проверка на допустимые комбинации символов
bool LineCondition(string line) - коррекность ввода сторки, наличие обеих частей уравнения
void Titles(List<string> titles) - вывод титров
string InputEquation() - посимвольный ввод уравнения

EquationLogger.cs

List<string> GetHistory() - возвращает List<String> с историей уравнений и решений
void AddEquationSolving(string equation, double[] result) - добавление уравнения и решения к общей истории

ConsoleScreen.cs

void addLine(String line, int index) - добавление строки в список строк экрана консоли для выводы
void clearLines() - очищаем буффер строк на вывод
void renderConsoleScreen() - отображение строк в консоль по порядку
void renderConsoleScreen(bool True) - перегрузка void renderConsoleScreen()

Установка

  • скачать весь код можно клонировав репозиторий https://github.com/shlyapp/equation-solver.git
  • актуальная версия программы находится в releases
  • скачать проект Visual Studio 2022 можно по ссылке https://drive.google.com/drive/folders/1hyeTsSlcVCCkyeQPB7w-aIcGGba7kBUB?usp=sharing

Разработчики:

Насибуллин Данил - TeamLeader

Меркульев Никита, Бимаков Данил, Федотов Павел - команда тестировки

Шкляев Дмитрий, Колбин Илья - команда разработчиков библиотеки

Костенков Данил, Соболев Артур, Широбоков Илья - команда разработчиков UI

equation-solver's People

Contributors

shlyapp avatar xzfg-101 avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

xzfg-101

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.