На этом уроке мы исправим ошибки, которые были допущены при реализации функций перехода между состояниями.
Дата отправки отчёта:
14 октября 2018 г.
Задание выполнено: за
21 час. 20 мин.
Чему научился:
Ошибки, честно говоря, сам не искал. Такое даже в голову не приходило. Программа ведь работает - значит все прекрасно) Может в предыдущем уроке и было такое задание, но то ли пропустил мимо ушей, а может и не было такого - точно не помню...
Что было мной выявлено при тестировании калькулятора:
1 - нужно сбрасывать значение второй переменной в методе StateOpers().opers()
2 - нужно произвести калькуляцию в начале метода StateSecond().opers()
3 - в методе calc() добавил проверку: "Делить на ноль нельзя!"
4 - метод calc() перенёс в класс Context(), так как он вызывается не только в StateResult()
5 - не нужно производить калькуляцию при вводе очередного числа в StateResult()
6 - не нужно производить калькуляцию при вводе операции в StateResult()
7 - нужно делать сброс при вводе числа в StateResult()
8 - оставить ситуацию без изменений, если ввести символ, который не поддерживается
9 - что бы не ввели, брать первый символ
10 - если набрать 2+= то должно увеличивать число само на себя (так работает калькулятор в windows 10)
з.ы.
Последний пункт реализовал после того как мне приснился этот вариант возможного бага.
Так же реализовано за данный урок:
У калькулятора и истории отличается размер шрифта.
Размеры шрифта вынесены в константы.
Размер шрифта зависит от размеров формы.
Если история пуста, выводится надпись: "Пусто".
Если размер истории превышает размеры формы, появляется скроллбар и история добавляется ниже.
При добавлении новой строки в историю, скрол автоматом спускается в самый них и показывает последние записи истории.
Научился: Не все ошибки я смог найти самостоятельно.
В предыдущих отчётах рассказывал какие ошибки нашел.
1. не обнулялся Y после второго состояния если нажать на кнопку операции
2. не работало вычисление если набрать первую цифру и операцию после чего нажать равно.
Эти ошибки я смог поправить сам =) =)