- решение квадратных уравнений
- проверка в реальном времени на корректность ввода
- возможность сохранения и просмотра истории введенных уравнений
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
- Методом
UserInterface.SelectUserAction()
передаем управление пользователю и даем способ выбрать действие - Если пользователь выбрал "0", то методом
EquationValidator.InputEquation()
запрашиваем на ввод строку (автоматическая проверка на корректность ввода)
2.1 Полученная строка передается в методEquationParser.ReturnCoaficients()
, который возвращает массив коэффциентов
2.2 Полученный массив коэффициентов передаем в методEquationSolver.SolveQuadraticEquation()
, который возвращаем массив найденных корней
2.3 Создаем обьект классаEquationLogger logger
, передаем в конструктор имя файла, в который будет записываться история уравнений
2.4 При помощи методаlogger.AddEquationSolving()
записываем уравнение и корни в файл - Если пользователь выбрад "1", то выводится информация (история) о всех предыдущих решенных уравнениях.
3.1 Вызывается методShowHistory()
, в котором создается обьект класса EquationLogger logger
3.2logger.GetGetHistory()
- получаемList<String>
со всеми решенным уравнениями и корнями к ним
3.3 ВыводимList
в консоль - Если пользователь выбрал "2", то выводится титры или просто информация о разработчиках
void ShowTitles()
- отображении информации о разработчиках
void ShowResults(double[] results, string equation)
- отображение результатов посчитанного уравнения
void ShowHistory()
- отображении истории введенных уравнений
void SelectUserAction()
- выбор пользователем пункта меню
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)
- решение квадратного уравнения, возвращает корни уравнения
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()
- посимвольный ввод уравнения
List<string> GetHistory()
- возвращает List<String>
с историей уравнений и решений
void AddEquationSolving(string equation, double[] result)
- добавление уравнения и решения к общей истории
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