Что было мной выявлено при тестировании калькулятора:
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. не работало вычисление если набрать первую цифру и операцию после чего нажать равно.
Эти ошибки я смог поправить сам =) =)