Создать консольное приложение "Строковый калькулятор"

500 руб. за проект
23 января 2023, 17:03 • 9 откликов • 80 просмотров
Приложение должно читать из консоли введенные пользователем строки, числа, арифметические операции, проводимые между ними, и выводить в консоль результат их выполнения. Калькулятор должен быть написан только с использованием встроенных библиотек golang, без применения готовых решений.
Пример:
./calc "Bye-bye!" - "World!"
"Bye-bye!"
Калькулятор умеет выполнять операции сложения строк, вычитания строки из строки, умножения строки на число и деления строки на число: "a" + "b", "a" - "b", "a" * b, "a" / b. Данные передаются в одну строку (смотри пример)! Решения, в которых каждая строка, число и арифметическая операция передаются с новой строки, считаются неверными.
Значения строк передаваемых в выражении выделяются двойными кавычками.
Результатом сложения двух строк является строка, состоящая из переданных.
Результатом деления строки на число n является строка в n раз короче исходной (смотри пример).
Результатом умножения строки на число n является строка, в которой переданная строка повторяется ровно n раз.
Результатом вычитания строки из строки является строка, в которой удалена переданная подстрока или сама исходная строка, если в нее нет вхождения вычитаемой строки (смотри пример).
Калькулятор должен принимать на вход числа от 1 до 10 включительно, не более, и строки длинной не более 10 символов. Если строка, полученная в результате работы приложения, длиннее 40 символов, то в выводе после 40 символа должны стоять три точки (...).
Калькулятор умеет работать только с целыми числами.
Первым аргументом выражения, подаваемым на вход, должна быть строка, при вводе пользователем выражения вроде 3 + "hello", калькулятор должен выбросить исключение и прекратить свою работу.
При вводе пользователем неподходящих чисел, строк или неподдерживаемых операций (например, деление строки на строку) приложение выбрасывает исключение и завершает свою работу.
При вводе пользователем выражения, не соответствующего одной из вышеописанных арифметических операций, приложение выбрасывает исключение и завершает свою работу.
Пример работы программы:
Input:
"100" + "500"

Output:
"100500"

Input:
"Hi World!" - "World!"

Output:
"Hi "

Input:
"Bye-bye!" - "World!"

Output:
"Bye-bye!"

Input:
"Golang" * 5

Output:
"GolangGolangGolangGolangGolang"

Input:
"Example!!!" / 3

Output:
"Exa"
Отзывы
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Заказчик
 
1 год назад
R50 de5db7f877b94f7c738f60c2409db3ec
Фрилансер
Очень четкое ТЗ(первый раз такое точное встретил). Вежливость и культура в общение. Было очень приятно работать.
1 год назад