Задание взято из курсовой работы по программированию в Delphi. Приложение и его исходники есть в конце статьи.
Разработать калькулятор, работающий с датами в русском, американском и английском форматах. Программа должна уметь вычислять:
Для решения поставленной задачи нам необходимо:
Для написания программы на форму были помещены такие компоненты среды разработки Delphi:
Все процессы считывания введенных пользователем данных, проверки формата даты, расчетов и вывода на экран и в файл будут происходить в процедуре TForm1.Button1Click, которая вызывается при нажатии кнопки Button1.
При нажатии кнопки Button2 вызывается процедура TForm1.Button2Click, с помощью которой будут выведены на экран логи работы программы.
При нажатии на кнопку SpeedButton вызывается процедура TForm1.SpeedButton1Click. Это процедура обращения к справочной системе. Справочная система разработана с помощью утилиты Hcw.exe. Для этого сначала справочный материал был написан в Microsoft Word, расставлены ссылки в каждом пункте справки, информация сохранена в rtf формате.
Далее, с помощью вышеназванной утилиты была создана справочная система и оглавление к ней. Для связи справочной системы с нашим приложением было введено название help-файла в меню Borland Delphi «Проект» → «Параметры» → «Приложение» → «Файл справки».
Например выберем русский формат и вычтем от даты 10.08.2008 дату 30.06.2008. Получим такие результаты:
Если же мы выберем при этом американский формат, то появится сообщение об ошибке, так как при американском формате даты нужно вводить данные в порядке мм.дд.гггг:
Далее можно прибавить к дате 1, к примеру, 20 недель и вычесть 5 месяцев. Получим:
При нажатии на кнопку «Логи» мы увидим логи работы нашей программы:
Полностью просмотреть только что созданный log-файл можно в приложении А.
При нажатии на кнопку помощи мы увидим справочное руководство:
При выборе необходимого нам пункта можно будет почитать интересующий материал.
Ссылка на листинг программы и само приложение находится в конце статьи.
Выполнение операций с датами:
Для вычисления значения дата 1 – дата 2 необходимо ввести обе даты и выбрать формат даты. Для русского и английского формата дата вводится как дд.мм.гггг. Для американского формата – мм.дд.гггг. При несоблюдении правил ввода будет выдано сообщение об ошибке. Затем нажимается кнопка «Расчет». В соответствующих полях появляются значения разности в месяцах, неделях, днях, часах, минутах, секундах.
Для вычисления значения Дата 1 +/- определенное количество месяцев, недель и т.д. необходимо в соответствующее поле ввести нужное число и нажать кнопку «Расчет». При некорректном вводе будет выдано сообщение об ошибке.
Сохранение логов работы:
Программой предусмотрено сохранение логов работы в файл. Туда заносятся даты, вводимые пользователем с клавиатуры, операции с этими датами, результаты операций, а так же сообщения об ошибках.
Просмотреть логи можно, нажав на кнопку «Логи».
Дата 1 - Дата 2
10.08.2008 - 12.07.2008
0 месяцев
4 недель
29 дней
696 часов
41760 минут
2505600 секунд
10.08.2008 - 0 мес -0 нед -0 дн -0 час -0 мин -0 сек
Результат: 10.08.2008
10.08.2008 + 0 мес +0 нед +0 дн +0 час +0 мин +0 сек
Результат: 10.08.2008
Дата 1 - Дата 2
10.08.2008 - 12.07.2008
2 месяцев
8 недель
60 дней
1440 часов
86400 минут
5184000 секунд
10.08.2008 - 0 мес -0 нед -0 дн -0 час -0 мин -0 сек
Результат: 10/08/2008
10.08.2008 + 0 мес +0 нед +0 дн +0 час +0 мин +0 сек
Результат: 10/08/2008
Дата 1 - Дата 2
10.08.2008 - 30.06.2008
1 месяцев
5 недель
41 дней
984 часов
59040 минут
3542400 секунд
10.08.2008 - 0 мес -0 нед -0 дн -0 час -0 мин -0 сек
Результат: 10.08.2008
10.08.2008 + 0 мес +0 нед +0 дн +0 час +0 мин +0 сек
Результат: 10.08.2008
неправильный ввод даты Введите дату в соответствующем формате!!!
неправильный ввод даты Введите дату в соответствующем формате!!!
Дата 1 - Дата 2
10.08.2008 - 30.06.2008
1 месяцев
5 недель
41 дней
984 часов
59040 минут
3542400 секунд
10.08.2008 - 5 мес -0 нед -0 дн -0 час -0 мин -0 сек
Результат: 13.03.2008
10.08.2008 + 0 мес +20 нед +0 дн +0 час +0 мин +0 сек
Результат: 28.12.2008
Здесь можно скачать листинг программы калькулятора дат и готовое приложение:
Вы можете также почитать о программировании в Делфи калькулятора дробных чисел, приложения, вычисляющего корни квадратного уравнения и калькулятора времени.
Постановка задачи
Разработать калькулятор, работающий с датами в русском, американском и английском форматах. Программа должна уметь вычислять:
- дата 1-дата 2=количество месяцев;
- дата 1-дата 2=количество недель;
- дата 1-дата 2=количество дней;
- дата 1-дата 2=количество часов;
- дата 1-дата 2=количество минут;
- дата 1-дата 2=количество секунд;
- дата 1-месяцы=дата 2;
- дата 1-недели=дата 2;
- дата 1-дни=дата 2;
- дата 1-часы=дата 2;
- дата 1-минуты=дата 2;
- дата 1-секунды=дата 2;
- дата 1+месяцы=дата 2;
- дата 1+недели=дата 2;
- дата 1+дни=дата 2;
- дата 1+часы=дата 2;
- дата 1+минуты=дата 2;
- дата 1+секунды=дата 2.
Схема алгоритма решения задачи
Для решения поставленной задачи нам необходимо:
- Проверить пользовательские данные на правильность ввода вообще и на соответствие их заданному формату даты.
- Если значения заданы неверно, прервать выполнение программы, вывести сообщение об ошибке, записать сообщение об ошибке в файл. Если же все правильно, то перейти к п.3.
- Вычислить требуемое значение.
- Вывести результаты на экран и в лог-файл.
Описание используемых компонентов
Для написания программы на форму были помещены такие компоненты среды разработки Delphi:
- RadioGroup (для выбора формата ввода и вывода даты);
- поля Edit (для ввода пользовательских значений и вывода полученных результатов);
- кнопки Button;
- поле Memo (для вывода логов работы программы);
- SpeedButton (кнопка для вывода руководства пользователя);
- Label (Надписи, с помощью которых подпишем поля).
Все процессы считывания введенных пользователем данных, проверки формата даты, расчетов и вывода на экран и в файл будут происходить в процедуре TForm1.Button1Click, которая вызывается при нажатии кнопки Button1.
При нажатии кнопки Button2 вызывается процедура TForm1.Button2Click, с помощью которой будут выведены на экран логи работы программы.
При нажатии на кнопку SpeedButton вызывается процедура TForm1.SpeedButton1Click. Это процедура обращения к справочной системе. Справочная система разработана с помощью утилиты Hcw.exe. Для этого сначала справочный материал был написан в Microsoft Word, расставлены ссылки в каждом пункте справки, информация сохранена в rtf формате.
Далее, с помощью вышеназванной утилиты была создана справочная система и оглавление к ней. Для связи справочной системы с нашим приложением было введено название help-файла в меню Borland Delphi «Проект» → «Параметры» → «Приложение» → «Файл справки».
Пример результатов работы программы
Например выберем русский формат и вычтем от даты 10.08.2008 дату 30.06.2008. Получим такие результаты:
Если же мы выберем при этом американский формат, то появится сообщение об ошибке, так как при американском формате даты нужно вводить данные в порядке мм.дд.гггг:
Далее можно прибавить к дате 1, к примеру, 20 недель и вычесть 5 месяцев. Получим:
При нажатии на кнопку «Логи» мы увидим логи работы нашей программы:
Полностью просмотреть только что созданный log-файл можно в приложении А.
При нажатии на кнопку помощи мы увидим справочное руководство:
При выборе необходимого нам пункта можно будет почитать интересующий материал.
Ссылка на листинг программы и само приложение находится в конце статьи.
Инструкция пользователю программы
Выполнение операций с датами:
Для вычисления значения дата 1 – дата 2 необходимо ввести обе даты и выбрать формат даты. Для русского и английского формата дата вводится как дд.мм.гггг. Для американского формата – мм.дд.гггг. При несоблюдении правил ввода будет выдано сообщение об ошибке. Затем нажимается кнопка «Расчет». В соответствующих полях появляются значения разности в месяцах, неделях, днях, часах, минутах, секундах.
Для вычисления значения Дата 1 +/- определенное количество месяцев, недель и т.д. необходимо в соответствующее поле ввести нужное число и нажать кнопку «Расчет». При некорректном вводе будет выдано сообщение об ошибке.
Сохранение логов работы:
Программой предусмотрено сохранение логов работы в файл. Туда заносятся даты, вводимые пользователем с клавиатуры, операции с этими датами, результаты операций, а так же сообщения об ошибках.
Просмотреть логи можно, нажав на кнопку «Логи».
Приложение А
Дата 1 - Дата 2
10.08.2008 - 12.07.2008
0 месяцев
4 недель
29 дней
696 часов
41760 минут
2505600 секунд
10.08.2008 - 0 мес -0 нед -0 дн -0 час -0 мин -0 сек
Результат: 10.08.2008
10.08.2008 + 0 мес +0 нед +0 дн +0 час +0 мин +0 сек
Результат: 10.08.2008
Дата 1 - Дата 2
10.08.2008 - 12.07.2008
2 месяцев
8 недель
60 дней
1440 часов
86400 минут
5184000 секунд
10.08.2008 - 0 мес -0 нед -0 дн -0 час -0 мин -0 сек
Результат: 10/08/2008
10.08.2008 + 0 мес +0 нед +0 дн +0 час +0 мин +0 сек
Результат: 10/08/2008
Дата 1 - Дата 2
10.08.2008 - 30.06.2008
1 месяцев
5 недель
41 дней
984 часов
59040 минут
3542400 секунд
10.08.2008 - 0 мес -0 нед -0 дн -0 час -0 мин -0 сек
Результат: 10.08.2008
10.08.2008 + 0 мес +0 нед +0 дн +0 час +0 мин +0 сек
Результат: 10.08.2008
неправильный ввод даты Введите дату в соответствующем формате!!!
неправильный ввод даты Введите дату в соответствующем формате!!!
Дата 1 - Дата 2
10.08.2008 - 30.06.2008
1 месяцев
5 недель
41 дней
984 часов
59040 минут
3542400 секунд
10.08.2008 - 5 мес -0 нед -0 дн -0 час -0 мин -0 сек
Результат: 13.03.2008
10.08.2008 + 0 мес +20 нед +0 дн +0 час +0 мин +0 сек
Результат: 28.12.2008
Здесь можно скачать листинг программы калькулятора дат и готовое приложение:
Вы можете также почитать о программировании в Делфи калькулятора дробных чисел, приложения, вычисляющего корни квадратного уравнения и калькулятора времени.
Комментариев нет:
Отправить комментарий