Мы продолжаем создание целого калькулятора для демонстрации использования шаблона проектирования State. На этом уроке мы реализуем переход между состояниями ввода данных.
Чему научился:
Ошибки: В состоянии Резултат при вводе новых значений он производит расчет опять. Если не переходить в состояние Результат а продолжить рассчеты через состояние Операция происходят странные вычисления.
Что было сложным:
Тестировать. Да и вообще понять что к чему
Оценка видео-уроку:
Оцени работу
Сохранить страницу:
Отчёт оценивали: 17022. Константин Мельников+119821. Иван020105. Макс Тимашков020149. Roman09014. Николай Денисов+110558. Иван Воронин+117947. Dmitry Sinitsin+11. Евгений Волосатов+118493. Evgenii Kudriavtcev+117606. Виктор+13922. Александр+116396. Денис+116268. Виталий+118681. alklokov+117663. Oleksandr+119869. Артем+16452. Кирилл Шмойлов+11232. Фомичева Наталья+13747. Сергей+116218. Дмитрий+1
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.
Научился: Повторил пройденное Тут не одна ошибка в коде, тут их куча!
Что было мной выявлено при тестировании калькулятора:
1 - нужно сбрасывать значение второй переменной в методе StateOpers().opers()
2 - нужно произвести калькуляцию в начале метода StateSecond().opers()
3 - в методе calc() добавил проверку: "Делить на ноль нельзя!"
4 - метод calc() перенёс в класс Context(), так как он вызывается не только в StateResult()
5 - не нужно производить калькуляцию при вводе очередного числа в StateResult()
6 - не нужно производить калькуляцию при вводе операции в StateResult()
7 - нужно делать сброс при вводе числа в StateResult()
8 - оставить ситуацию без изменений, если ввести символ, который не поддерживается
9 - что бы не ввели, брать первый символ
з.ы.
Помимо этого, как видно из скриншота, динамически увеличивается список истории вычислений.
В результате отображается текущая ситуация, что тоже видно на скриншотах.
Обкатал калькулятор, вроде все нюансы учёл, баги больше не встречались.
Научился: Реализовывать основной метод main() в классе Program(), а также методы
show() и press() в классе Context() и метод digit() в классе StateFirst()