Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Понятно о Visual Basic.NET. Самоучитель.Ч2.2005...docx
Скачиваний:
46
Добавлен:
25.11.2019
Размер:
4.02 Mб
Скачать
      1. Постановка задачи

Создать Будильник-секундомер следующего вида (см. Рис. 13 .68).

Рис. 13.68

Если вы ставите задачу для серьезного проекта, то прежде всего вам нужно с максимальной подробностью описать, что должен делать ваш проект с точки зрения пользователя (а не программиста!). я начну с того же, но ввиду очевидности того, что изображено на рисунке, я поясню только то, чего не видно или может быть неправильно понято:

  • На верхнем циферблате должно отображаться текущее время суток (системное время Windows) в часах, минутах и секундах

  • Под ним – дата и день недели

  • Время будильника пользователь устанавливает, вручную редактируя (изменяя с клавиатуры) содержимое циферблата будильника

  • При нажатии на кнопку «Выключить будильник» надпись на кнопке меняется на «Включить будильник», а надпись над циферблатом меняется на «Будильник отключен»

  • При срабатывании будильника раздается какая-нибудь продолжительная мелодия, которая замолкает при нажатии на кнопку «Выключить звонок»

  • Секундомер измеряет время с точностью до 0.01 сек. На картинке вы видите секундомер в момент паузы. Цифры на секундомере замерли. Если нажать на ПУСК, то отсчет времени продолжится с 1 минуты 27,97 сек, которые вы видите на картинке, а надпись на кнопке сменится на ПАУЗА. Если снова нажать на кнопку, цифры на секундомере снова замрут.

  • При нажатии на кнопку «Обнулить» секундомер останавливается и сбрасывается в ноль. На циферблате – 00:00.00.

      1. Делим проект на части

Нельзя создавать сразу весь проект одновременно. То есть было бы фатальной ошибкой сразу все нарисовать и пытаться все сразу программировать. Не пытайтесь ломать весь веник сразу, ломайте по прутикам. Когда Наполеон видел, что его армия слишком мала, чтобы сразу одолеть противника, он весь удар сосредотачивал на одной какой-то части вражеской армии и, разбив ее, нападал на следующую.

Надо разделить проект на части. Это не всегда легко. Некоторые проекты, особенно игры, представляют на первый взгляд единое неразрывное целое, так что нужен некоторый опыт, чтобы увидеть, «из каких кубиков построен домик». В нашем случае все более-менее просто. Три части просматриваются сразу, это:

  • Часы (с датой и днем недели)

  • Будильник

  • Секундомер

Отлично! За какую из этих частей браться вначале? Для ответа на этот вопрос нужно сначала решить, зависят ли друг от друга отдельные части. Здесь очень пригодился бы некоторый опыт программирования. А если его нет, подойдет житейский опыт. Действительно, если бы вы мастерили будильник-секундомер из шестеренок, что бы в нем от чего зависело? Ну, ясно, что будильник не сработал бы без часов, ведь он должен чувствовать, когда время на циферблатах часов и будильника совпадает. Значит, будильник от часов зависит. А вот часы ходят и без будильника, значит они от него не зависят. Секундомер же, видимо, представляет собой полностью независимую часть со своим механизмом.

Итак, проект распался на две независимые части:

  • Часы с будильником

  • Секундомер

Какой частью заняться вначале? Дело вкуса. Часы с будильником попроще, поэтому начнем с них. Ну а между ними что выбрать вначале – часы или будильник? Здесь сомнения неуместны –

раньше нужно делать ту часть, которая не зависит от других частей

– это часы.

Итак, мы разделили проект на части и определили порядок выполнения частей:

1.Часы

2.Будильник

3.Секундомер

Беремся за часы. И тут опять пошла дележка. Чем раньше заниматься – временем суток (будем называть это просто часами), датой или днем недели? Шестеренки смутно подсказывают нам, что дата переключается в полночь, а значит момент переключения зависит от часов. Значит дату будем делать позже часов. А день недели, ясно, определяется датой.

Итак, окончательная последовательность такая:

1.Часы (время суток)

2.Дата

3.День недели

4.Будильник

5.Секундомер

Лирическое отступление (утешение): Если вам не удалось разделить ваш проект на части, или вы чувствуете, что разделили неправильно, это не значит, что нужно от проекта отказываться. Программируйте напропалую! В процессе программирования отдельные части постепенно (не без мучений и многократных досадных переделок) встанут на свои места.

Ну что ж, «Задачи ясны, цели определены, за работу, товарищи!», как говорили при социализме.