Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

State / State - Целый калькулятор - Logic

  • Мы продолжаем создание целого калькулятора для демонстрации
    использования шаблона проектирования State.
    На этом уроке мы реализуем переход между состояниями ввода данных.

    Постарайтесь самостоятельно найти все ошибки в программе.
    Потом сравните со списком ошибок, которые нашёл Иван Воронин:
    www.videosharp.info/10558/checking/design-state=1510
  • Дата отправки отчёта: 11 мая 2017 г.
  • Задание выполнено: за 1 час. 46 мин.
  • Чему научился: Повторил пройденное
  • Что было сложным: найти время
  • Комментарии: Тут не одна ошибка в коде, тут их куча!
    Что было мной выявлено при тестировании калькулятора:
    1 - нужно сбрасывать значение второй переменной в методе StateOpers().opers()
    2 - нужно произвести калькуляцию в начале метода StateSecond().opers()
    3 - в методе calc() добавил проверку: "Делить на ноль нельзя!"
    4 - метод calc() перенёс в класс Context(), так как он вызывается не только в StateResult()
    5 - не нужно производить калькуляцию при вводе очередного числа в StateResult()
    6 - не нужно производить калькуляцию при вводе операции в StateResult()
    7 - нужно делать сброс при вводе числа в StateResult()
    8 - оставить ситуацию без изменений, если ввести символ, который не поддерживается
    9 - что бы не ввели, брать первый символ
    з.ы.
    Помимо этого, как видно из скриншота, динамически увеличивается список истории вычислений.
    В результате отображается текущая ситуация, что тоже видно на скриншотах.
    Обкатал калькулятор, вроде все нюансы учёл, баги больше не встречались.
  • Оценка видео-уроку:
Отчёт от 10558 за State / State - Целый калькулятор - Logic


Отчёт от 10558 за State / State - Целый калькулятор - Logic




Оцени работу

 
Сохранить страницу:

1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Иван Воронин  # 9. State / State - Целый калькулятор - Logic / 2017-05-11 20:48

Я знал, что ошибки есть. И в след. уроке мы их исправляли. Но у тебя более полный список.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Евгений Волосатов  # 9. State / State - Целый калькулятор - Logic / 2017-05-11 20:50

В след уроке погляжу, может ещё найду =) Ведь там будет добавление GUI, а это тоже доп. код где могут закрасться ошибки.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Евгений Волосатов  # 9. State / State - Целый калькулятор - Logic / 2017-05-12 22:19

10 - если набрать 2+= то должно увеличивать число само на себя (так работает калькулятор в windows 10)
з.ы.
внёс уже в код к следующему уроку. =)


  • Отчёт оценивали:
    11589Yefim+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()