Разработка алгоритма программы "Таймер" на языке программирования C++
Среда программирования Embarcadero RAD Studio. Создание окна, которое отображает системную дату и время. Выполнение выбранного действия в определенный промежуток времени, заданный пользователем. Руководство программиста. Минимальные системные требования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 16.06.2014 |
Размер файла | 85,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
4
Размещено на http://www.allbest.ru
Департамент образования и науки Приморского края
Краевое государственное бюджетное образовательное учреждение
среднего профессионального образования
«Находкинский государственный гуманитарно-политехнический колледж»
КУРСОВАЯ РАБОТА (ПРОЕКТ)
По дисциплине: Системное программирования
На тему: «Разработка алгоритма программы «Таймер» на языке программирования C++
Студента Соловьева Евгения Андреевича
Группа 731 специальность 230115 Программирование в компьютерных системах
Находка 2013
Размещено на http://www.allbest.ru
Содержание
Введение
Раздел 1. Теоретическая часть
1.1 Язык программирование C++
1.2 Среда программирования Embarcadero RAD Studio
Раздел 2. Практическая часть
2.1 Создание окна, которое отображает системную дату и время
2.2 Разработка приложения таймер с функциями
2.2.1 Выполнение выбранного действия в определенный промежуток времени заданный пользователем
2.2.2Выполнение выбранного действия через определенный промежуток времени заданный пользователем
3. Руководство программиста
4. Руководство пользователя
Заключение
Список использованных источников
Приложение А. Программный Листинг
Размещено на http://www.allbest.ru
Введение
В современном мире язык программирования Си (C++) широко используется для разработки программного обеспечения, а также это язык программирования высокого уровня, который хорошо известный своей эффективностью, экономичностью, и переносимостью. Ведь первые Операционные системы были написаны именно на языке Си. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (игр).
Цель данной курсовой работы - является систематизация, углубление и активное применение знаний по системному программированию, закрепление знаний, полученных в лекционном курсе, а также на практических занятиях.
Достижение цели обеспечивается решением следующей задачи:
Разработка приложения «Таймер» при помощи динамических библиотек С++
Использование полученных знаний на лекционном курсе
Раздел 1. Теоретическая часть
1.1 Язык программирование C++
Для разработки программы применялся язык программирования C++ .
Язык программирования С++ был разработан на основе языка Си Бьярном Страуструпом (Bjarne Stroustrup) и вышел за пределы его исследовательской группы в начале 80-х годов. Язык С++ является надмножеством языка Си, поэтому программы, написанные на языке Си могут обрабатываться компилятором языка С++. В программах на языке С++ можно использовать тексты на языке С и обращаться к библиотечным функциям языка Си. Язык С++ был создан с учетом следующих целей: улучшить язык Си, поддержать абстракцию данных и обеспечить объектно-ориентированное программирование.
Объектно-ориентированное программирование (ООП) -- это новый подход к созданию программ. ООП аккумулирует лучшие идеи, воплощенные в структурном и модульном программировании, и сочетает их с новыми мощными концепциями, которые позволяют оптимально организовывать программы. ООП позволяет разложить проблему на составные части наиболее естественным способом с учетом иерархии взаимосвязей. Каждая часть становится самостоятельным объектом, содержащим свои собственные данные, операции и функции, которые относятся к этому объекту. В результате процесс составления программ упрощается и программист получает возможность оперировать с большими по объему программами. Одна из главных особенностей ООП -- это возможность определять новые типы данных так, что их использование ничем не будет отличаться от использования встроенных в язык типов данных. Новые типы данных должны в большей мере соответствовать понятиям той прикладной области, для которой разрабатывается программа, чем встроенные типы, ориентированные на архитектуру компьютера.
Рассмотрим достоинства языка программирования C++:
Высокая совместимость с языком Си
Поддержка различных стилей программирования
Вычислительная производительность
Недостатки:
Синтаксис, провоцирующий ошибки
Некоторые преобразования типов неинтуитивны
Плохая поддержка модульности
Основные среды языка C++: Visual C++, C++ Builder, Borland C++, Embarcadero RAD Studio.
Таким образом, для разработки программы была выбрана среда программирования Embarcadero RAD Studio. Embarcadero RAD Studio была выбрана последующим возможностям:
подключение к локальным базам данных InterBase®, Blackfish™ SQL и MySQL в Delphi и C++Builder;
подключение к базам данных в VisualStudio с помощью ADO.NET, включая подключение к локальным базам данных InterBase и Blackfish в DelphiPrism;
развертывание Blackfish SQL в системах с одним пользователем и размером базы данных 512 МБ;
веб-библиотеку VCL с ограничением числа подключений (не более пяти);
набор характеристик и средств аудита кода начального уровня, помогающих проанализировать стиль программирования и состояние проекта;
визуализацию кода с использованием UML, упрощающую анализ исходного кода благодаря визуальному представлению.
1.2 Среда программирования Embarcadero RAD Studio
Embarcadero® RAD Studio 2010 - это комплексное решение для быстрой разработки приложений Windows®, .NET, веб-приложений и приложений баз данных. Оно включает в себя Delphi®, C++Builder® и Delphi ®Prism™, позволяя создавать приложения для различных платформ Windows и баз данных до 5 раз быстрее. Инструменты RAD Studio значительно ускоряют создание приложений для настольных компьютеров, рабочих станций, сенсорных дисплеев, информационных терминалов и Интернета, поэтому их использует уже более 2 миллионов разработчиков. В состав этих средств входят быстрые компиляторы, визуальная среда для разработки приложений с пользовательским интерфейсом, платформа визуальных компонентов (VCL), а также обширные возможности для подключения к базам данных и службам
Также RAD Studio работает со всеми типами баз данных, архитектур и протоколов.
Платформа RAD Studio DataSnap® и драйверы доступа к данным dbExpress™ позволяют создать одну систему и с ее помощью легко получать доступ к различным источникам данных. При этом обеспечивается поддержка специфических функций баз данных разных поставщиков без ухудшения их производительности и управляемости. В то время как другие средства быстрой разработки рассчитаны на определенную базу данных или архитектуру, либо используют "универсальные" методы подключения к данным, которые ограничивают производительность и возможности управления, открытая среда RAD Studio обладает гибкостью и эффективностью, необходимыми для создания высококачественных приложений.
Основные возможности для разработки приложений Windows:
Интегрированная среда разработки Delphi и C++Builder с функцией перетаскивания мышью
Более 250 компонентов в VCL (Библиотека визуальных компонеентов (Visual Component Library) -- объектно-ориентированная библиотека)
Встроенная поддержка касаний и жестов (более 30 готовых жестов)
dbExpress с поддержкой 9 основных баз данных, включая InterBase®
Многоуровневое промежуточное ПО DataSnap с поддержкой JSON, REST, HTTP, COM и XML
Возможность отладки многопоточных приложений
UML/аудит кода и учет показателей
Единая система для работы с Windows 2000, Windows Xp, Windows Vista и Windows 7
Основные возможности для разработки приложений .NET:
Язык программирования Delphi Prism для .NET
Включена интегрированная среда разработки на основе Visual Studio либо установка в Visual Studio
Поддержка новейших технологий .NET
Стандартное подключение к базам данных с помощью ADO.NET, платформа dbExpress для баз данных InterBase и Blackfish SQL
Разработка клиентов DataSnap .NET
Разработка веб-приложений с помощью ASP.NET
Использование Mono с ОС Windows, Linux и Mac OS X
Раздел 2. Практическая часть
2.1 Создание окна, которое отображает системную дату и время
Для создания этого окна использовались компоненты GroupBox и Label.
Рисунок 2.1 Окно, отображающее системную дату и время
Листинг 2.1 Отображение текущей даты и время
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Label2->Caption = TimeToStr(Time()); // показать текущее время
Label5->Caption = DateToStr(Now()); //показать дату
if (DayOfWeek(Now()) == 1) {Label7->Caption= "Воскресенье";}
if (DayOfWeek(Now()) == 2) {Label7->Caption = "Понедельник";}
if (DayOfWeek(Now()) == 3) {Label7->Caption = "Вторник";}
if (DayOfWeek(Now()) == 4) {Label7->Caption = "Среда";}
if (DayOfWeek(Now()) == 5) {Label7->Caption = "Четверг";}
if (DayOfWeek(Now()) == 6) {Label7->Caption = "Пятница";}
if (DayOfWeek(Now()) == 7) {Label7->Caption = "Суббота";}
2.2 Разработка приложения таймер с функциями
2.2.1 Выполнение выбранного действия в определенный промежуток времени заданный пользователем
Для разработки окна этой функции использовались компоненты GroupBox, button, label и timepicker. В этой функции задавался определенный промежуток времени и выбиралось одно из представленных действий (рисунок 2.2.1). После того как системное время совпадало с заданным, программа выполняла выбранное действие и издавала звуковой сигнал.
Рисунок 2.2.1 Окно в котором выбирается действие и задается время
Листинг 2.2.1 Выполнение выбранного действия в определенный промежуток времени заданный пользователем
oid __fastcall TForm1::Timer3Timer(TObject *Sender)
{
iHours=StrToInt(FormatDateTime("hh", Time()));
iMinutes=StrToInt(FormatDateTime("nn", Time()));
iSeconds=StrToInt(FormatDateTime("ss", Time()));
// …получим текущее время системы …
iAlarmHours=StrToInt(FormatDateTime("hh", Form1->timepicker->Time));
iAlarmMinutes=StrToInt(FormatDateTime("nn", Form1->timepicker->Time));
iAlarmSeconds=StrToInt(FormatDateTime("ss", Form1->timepicker->Time));
// Время срабатывания будильника, которое задал пользователь
if (Button2->Enabled == false) { //Если ктопка "Старт" не видимая, то
if (iHours == iAlarmHours &&
iMinutes == iAlarmMinutes &&
iSeconds == iAlarmSeconds)
{ // и если оно совпало с заданным временем пользователем…
MediaPlayer1->Play(); // проигрываем мелодию
switch(RadioGroup1->ItemIndex) {
case 0: {ShellExecute(NULL, "open", "mspaint.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 1: {ShellExecute(NULL, "open", "notepad.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 2: {ShellExecute(NULL, "open", "calc.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 3: {ShellExecute(NULL, "open", "wmplayer.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 4: {ShellExecute(NULL, "open", "http://www.microsoft.com", NULL, NULL, SW_SHOWNORMAL);break;}
}
}
}
}
2.2.2 Выполнение выбранного действия через определенный промежуток времени заданный пользователем
В этой функции после того как время на таймере достигало начального значения, программа выполняла выбранное действие и выдавала звуковой сигнал(Рисунок 2.2.2).
Рисунок 2.2.2 Окно в котором выбирается действие и задается время
Листинг 2.2.2 Выполнение выбранного действия через определенный промежуток времени заданный пользователем
void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
if (StrToInt(Edit5->Text)>0) {
Edit5->Text = IntToStr(StrToInt(Edit5->Text)-1);
}
if (Edit5->Text <= 0 &&
StrToInt(Edit4->Text)>0)
{
Edit4->Text = StrToInt(Edit4->Text)-1; //добавлено StrToInt - было: "59" is not valid date and time
Edit5->Text = 59; // Поле "секунды" - без изменений
}
// Обратый отсчет, и проверка значения в "Еdit4"
if (Edit4->Text <= 0 &&
StrToInt(Edit3->Text)>0)
{
Edit3->Text = StrToInt(Edit3->Text)-1; //добавлено StrToInt // Поле "секунды"
Edit4->Text = 60; // было 59 - но 1 час = 60 минут, так и стартуем // Поле "минуты"
}
if (Edit3->Text == 0 && // Поле "секунды"
Edit4->Text == 0 && // Поле "минуты"
Edit5->Text == 0) // Поле "секунды"
{ // если значения в таймере равны 0, то
Timer2->Enabled=false;
MediaPlayer1->Play(); // проигрываем мелодию
switch(RadioGroup1->ItemIndex) {
case 0: {ShellExecute(NULL, "open", "mspaint.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 1: {ShellExecute(NULL, "open", "notepad.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 2: {ShellExecute(NULL, "open", "calc.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 3: {ShellExecute(NULL, "open", "wmplayer.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 4: {ShellExecute(NULL, "open", "http://www.microsoft.com", NULL, NULL, SW_SHOWNORMAL);break;}
Для разработки окна этой функции использовались компоненты GroupBox, edit, button, label и UpDown.
3. Руководство программиста
Листинг 3.1 Создание окна
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Form1->Position = poDesktopCenter;
Form1->Width = 265;
MediaPlayer1->Visible = false; // скрываем плеер
MediaPlayer1->FileName = "alarm.mp3"; // указываем плееру файл
MediaPlayer1->Open(); // и открываем его для проигрывания
}
В данной функции можно изменить позицию, длину и звуковой сигнал программы.
Смена позиции:Form->Positon
Смена длины:Form->Width
Смена звукового сигнала:MediaPlayer1->FileName
Листинг 3.2 Выполнение выбранного действия в заданный промежуток времени
void __fastcall TForm1::Timer3Timer(TObject *Sender)
{
iHours=StrToInt(FormatDateTime("hh", Time()));
iMinutes=StrToInt(FormatDateTime("nn", Time()));
iSeconds=StrToInt(FormatDateTime("ss", Time()));
// …получим текущее время системы …
iAlarmHours=StrToInt(FormatDateTime("hh", Form1->timepicker->Time));
iAlarmMinutes=StrToInt(FormatDateTime("nn", Form1->timepicker->Time));
iAlarmSeconds=StrToInt(FormatDateTime("ss", Form1->timepicker->Time));
// Время срабатывания будильника, которое задал пользователь
if (Button2->Enabled == false) { //Если кнопка "Старт" не видимая, то
if (iHours == iAlarmHours &&
iMinutes == iAlarmMinutes &&
iSeconds == iAlarmSeconds)
{ // и если оно совпало с заданным временем пользователем…
MediaPlayer1->Play(); // проигрываем мелодию
switch(RadioGroup1->ItemIndex) {
case 0: {ShellExecute(NULL, "open", "mspaint.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 1: {ShellExecute(NULL, "open", "notepad.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 2: {ShellExecute(NULL, "open", "calc.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 3: {ShellExecute(NULL, "open", "wmplayer.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 4: {ShellExecute(NULL, "open", "http://www.microsoft.com", NULL, NULL, SW_SHOWNORMAL);break;}
}
}
}
}
В данной функции можно изменить какую программу будет запускать таймер в определенный промежуток времени заданный пользователем.
Чтобы изменить названия действий нужно зайти в RadioGroup->Properties->Items и открыть Script List Editor при нажатии на троеточие.
Листинг 3.3 Выполнение выбранного действия через определенный промежуток времени
void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
if (StrToInt(Edit5->Text)>0) {
Edit5->Text = IntToStr(StrToInt(Edit5->Text)-1);
}
if (Edit5->Text <= 0 &&
StrToInt(Edit4->Text)>0)
{
Edit4->Text = StrToInt(Edit4->Text)-1; //добавлено StrToInt - было: "59" is not valid date and time
Edit5->Text = 59; // Поле "секунды" - без изменений
}
// Обратный отсчет, и проверка значения в "Еdit4"
if (Edit4->Text <= 0 &&
StrToInt(Edit3->Text)>0)
{
Edit3->Text = StrToInt(Edit3->Text)-1; //добавлено StrToInt // Поле "секунды"
Edit4->Text = 60; // было 59 - но 1 час = 60 минут, так и стартуем // Поле "минуты"
}
if (Edit3->Text == 0 && // Поле "секунды"
Edit4->Text == 0 && // Поле "минуты"
Edit5->Text == 0) // Поле "секунды"
{ // если значения в таймере равны 0, то
Timer2->Enabled=false;
MediaPlayer1->Play(); // проигрываем мелодию
switch(RadioGroup1->ItemIndex) {
case 0: {ShellExecute(NULL, "open", "mspaint.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 1: {ShellExecute(NULL, "open", "notepad.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 2: {ShellExecute(NULL, "open", "calc.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 3: {ShellExecute(NULL, "open", "wmplayer.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 4: {ShellExecute(NULL, "open", "http://www.microsoft.com", NULL, NULL, SW_SHOWNORMAL);break;}
}
}
}
В данной функции можно изменить какую программу будет запускать таймер через определенный промежуток времени заданный пользователем.
4. Руководство пользователя
алгоритм программа таймер
Минимальные системные требования:
- монитор с минимальным разрешением экрана 800 на 600 пикселей;
- наличие клавиатуры;
- среда MS-DOS, Windows 98/200/ME/XP/Vista/7/8
- процессор тактовой частотой не ниже 200МГц;
- видеокарта;
- минимальный объем оперативной памяти - 32 МБ.
Запуск приложения происходит при двойном нажатии левой кнопки мыши на ярлыке игры с расширением EXE.
Для того чтобы программа выполнила нужное действие в определенный промежуток времени, нужно выбрать действие нажатием левой кнопки мыши и задать время в которое будет выполняться действие, как это показано на Рисунке 3.1. И нажать кнопку старт.
Рисунок 3.1 Окно в котором выбрали действия и задали время
А также если пользователь желает, чтобы действие выполнилось через определенное время. То нужно выбрать действие и задать время, через которое будет запускаться, как это показано на Рисунке 3.2
Рисунок 3.2 Окно в котором выбрали действия и задали время
Заключение
При выполнении данной работы, потребовались знания языка программирования. В ходе написания программы требовалось обращаться к дополнительным источникам, чтобы разобраться с важными аспектами программирования, которые помогли создать приложение.
В целом данная работа помогла лучше освоить язык С++ и улучшить свои навыки программирования.
Список использованных источников
Б. Пахомов - C/C++ и MS Visual C++ 2008 для начинающих; БХВ-Петербург; 2008 - 624с
Герберт Шилдт - C++ from the Ground Up; Вильямс; 2008 - 624 с
Давыдов В.Г. Visual C++. Разработка Windows-приложений с помощью MFC и API-функций. -- СПб: БХВ-Петербург, 2008.
Дж. Коплиен - Программирование на C++; Питер; 2005 - 408 с
Дж. Либерти - Освой самостоятельно C++; 2099 - 820 с
Дьюхерст С.С. - C++. Священные знания. 2-е издание, исправленное; 2012 - 240 с
Зиборов В.В - MS Visual C++ 2010 в среде .NET; 2012 - 320 с
Лаптев В.В. - C++. Объектно-ориентированное программирование; Питер; 2008 - 464 с
Макс Шлее - Профессиональное программирование на C++; БХВ - Петербург; 2009 - 896с
Мэтью Уилсон - Расширение библиотеки STL для С++; ДМК Пресс, Б-П; 2008 - 608 с
Н.А. Литвиненко - Технология программирования на C++. Win32 API-приложения; БХВ-Петербург - 2010, 288с
Паола Франка - С++. Учебный курс; Питер; 2012 - 496 с
Паола Франка - С++. Учебный курс; Питер; 2012 - 496 с
Пахомов Б - Самоучитель C/C++ и C++ Builder; БХВ-Петербург; 2008 - 670 с
Прохоренок Н.А. - Программирование на C++ в VisualStudio 2010 Express; 2010 - 229 с
Роберт Лафоре - Объектно - ориентированное программирование в С++; Питер; 2011 - 928 с
Роберт Лафоре - Объектное - ориентированное программирование в С++; Питер; 2011 - 928 с
Саммерфилд М. - Qt. Профессиональное программирование. Разработка кроссплатформенных приложений на C++; 2011 - 560 с
Степаненко О.Е. - Visual C++/NET. Классика программирования; 2010 - 768 с
Стефан Рэнди Дэвис - С++ для «чайников»; Диалектика, Вильямс; 2009 - 336 с
Стивен Прата - Язык программирования С++. Леции и упражнения; Вильямс; 2012 - 1248 с
Стивен Прата - Язык программирования С++. Леции и упражнения; Вильямс; 2012 - 1248 с
Страуструп Б - Язык программирования C++; Бином - 2011, 1136
Уоллес Вонг - Основы программирования для «чайников»; М. -- ООО "И.Д. Вильямс"; 2008 - 336 с
Федоренко Ю. - Алгоритмы и программы на C++ Builder; 2010 - 544 с
Приложение А. Программный Листинг
Project1.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("Unit1.cpp", Form1);
//---------------------------------------------------------------------------
WINAPI Win Main(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
//---------------------------------------------------------------------------
Uni1.cpp
//---------------------------------------------------------------------------
#include <sys/timeb.h>
#include <vcl.h>
#include <windows.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
boolbIsTimerOn; // Таймер включён
intiHours; // Текущий час.
intiMinutes; // Текущая минута.
intiSeconds; // Текущая секунда
intiAlarmHours; // Час оповещения.
intiAlarmMinutes; // Минута оповещения.
intiAlarmSeconds; // Секунда оповещения
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Form1->Position = poDesktopCenter;
Form1->Width = 265;
MediaPlayer1->Visible = false; // скрываем плеер
MediaPlayer1->FileName = "alarm.mp3"; // указываем плееру файл
MediaPlayer1->Open(); // и открываем его для проигрывания
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Button2->Enabled=false; // Кнопка "Старт" невидима
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
bIsTimerOn=false; // Выключить будильник
Button2->Enabled=true;
timepicker->Time=StrToTime("0:00:00"); // Сброс на ноль.
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer3Timer(TObject *Sender)
{
iHours=StrToInt(FormatDateTime("hh", Time()));
iMinutes=StrToInt(FormatDateTime("nn", Time()));
iSeconds=StrToInt(FormatDateTime("ss", Time()));
// …получим текущее время системы …
iAlarmHours=StrToInt(FormatDateTime("hh", Form1->timepicker->Time));
iAlarmMinutes=StrToInt(FormatDateTime("nn", Form1->timepicker->Time));
iAlarmSeconds=StrToInt(FormatDateTime("ss", Form1->timepicker->Time));
// Время срабатывания срабатывания будильника, которое задал пользователь
if (Button2->Enabled == false) { //Если кнопка "Старт" не видимая, то
if (iHours == iAlarmHours&&
iMinutes == iAlarmMinutes&&
iSeconds == iAlarmSeconds)
{ // и если оно совпало с заданным временем пользователем…
MediaPlayer1->Play(); // проигрываем мелодию
switch(RadioGroup1->ItemIndex) {
case 0: {ShellExecute(NULL, "open", "mspaint.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 1: {ShellExecute(NULL, "open", "notepad.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 2: {ShellExecute(NULL, "open", "calc.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 3: {ShellExecute(NULL, "open", "wmplayer.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 4: {ShellExecute(NULL, "open", "http://www.microsoft.com", NULL, NULL, SW_SHOWNORMAL);break;}
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
exit(0); // Выход с программы
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Label2->Caption = TimeToStr(Time()); // показать текущее время
Label5->Caption = DateToStr(Now()); //показать дату
if (DayOfWeek(Now()) == 1) {Label7->Caption= "Воскресенье";}
if (DayOfWeek(Now()) == 2) {Label7->Caption = "Понедельник";}
if (DayOfWeek(Now()) == 3) {Label7->Caption = "Вторник";}
if (DayOfWeek(Now()) == 4) {Label7->Caption = "Среда";}
if (DayOfWeek(Now()) == 5) {Label7->Caption = "Четверг";}
if (DayOfWeek(Now()) == 6) {Label7->Caption = "Пятница";}
if (DayOfWeek(Now()) == 7) {Label7->Caption = "Суббота";}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::UpDown3Click(TObject *Sender, TUDBtnType Button)
{
if(Button == Comctrls::btNext) {
Edit3->Text = IntToStr(StrToInt(Edit3->Text)+1);
}
if(Button == Comctrls::btPrev) {
Edit3->Text = IntToStr(StrToInt(Edit3->Text)-1);
// Изменение значения в поле "Edit1"
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::UpDown4Click(TObject *Sender, TUDBtnType Button)
{
if(Button == Comctrls::btNext) {
Edit4->Text = IntToStr(StrToInt(Edit4->Text)+1);
}
if(Button == Comctrls::btPrev) {
Edit4->Text = IntToStr(StrToInt(Edit4->Text)-1);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::UpDown5Click(TObject *Sender, TUDBtnType Button)
{
if(Button == Comctrls::btNext) {
Edit5->Text = IntToStr(StrToInt(Edit5->Text)+1);
}
if(Button == Comctrls::btPrev) {
Edit5->Text = IntToStr(StrToInt(Edit5->Text)-1);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
if (StrToInt(Edit5->Text)>0) {
Edit5->Text = IntToStr(StrToInt(Edit5->Text)-1);
}
if (Edit5->Text <= 0 &&
StrToInt(Edit4->Text)>0)
{
Edit4->Text = StrToInt(Edit4->Text)-1; //добавлено StrToInt - было: "59" is not valid date and time
Edit5->Text = 59; // Поле "секунды" - без изменений
}
// Обратный отсчет, и проверка значения в "Еdit4"
if (Edit4->Text <= 0 &&
StrToInt(Edit3->Text)>0)
{
Edit3->Text = StrToInt(Edit3->Text)-1; //добавлено StrToInt // Поле "секунды"
Edit4->Text = 60; // было 59 - но 1 час = 60 минут, так и стартуем // Поле "минуты"
}
if (Edit3->Text == 0 && // Поле "секунды"
Edit4->Text == 0 && // Поле "минуты"
Edit5->Text == 0) // Поле "секунды"
{ // если значения в таймере равны 0, то
Timer2->Enabled=false;
MediaPlayer1->Play(); // проигрываем мелодию
switch(RadioGroup1->ItemIndex) {
case 0: {ShellExecute(NULL, "open", "mspaint.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 1: {ShellExecute(NULL, "open", "notepad.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 2: {ShellExecute(NULL, "open", "calc.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 3: {ShellExecute(NULL, "open", "wmplayer.exe", NULL, NULL, SW_SHOWNORMAL);break;}
case 4: {ShellExecute(NULL, "open", "http://www.microsoft.com", NULL, NULL, SW_SHOWNORMAL);break;}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Timer2->Enabled = true; // Включить второй таймер
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
Timer2->Enabled = false; //Выключить второй таймер
Edit5->Text = "0"; // Значению в поле "секунды" присвоить 0
Edit4->Text = "0"; // Значению в поле "минуты" присвоить 0
Edit3->Text = "0"; // Значению в поле "часы" присвоить 0
}
//---------------------------------------------------------------------------
Unit1.h
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:// IDE-managed Components
TButton *Button1;
TGroupBox *GroupBox1;
TLabel *Label2;
TLabel *Label3;
TLabel *Label4;
TLabel *Label5;
TLabel *Label6;
TLabel *Label7;
TGroupBox *GroupBox2;
TLabel *Label8;
TButton *Button2;
TButton *Button3;
TDateTimePicker *timepicker;
TGroupBox *GroupBox3;
TLabel *Label9;
TButton *Button4;
TButton *Button5;
TRadioGroup *RadioGroup1;
TTimer *Timer1;
TTimer *Timer2;
TTimer *Timer3;
TEdit *Edit3;
TUpDown *UpDown3;
TEdit *Edit4;
TUpDown *UpDown4;
TEdit *Edit5;
TUpDown *UpDown5;
TMediaPlayer *MediaPlayer1;
void __fastcall Button2Click(TObject *Sender);
void __fastcall Button3Click(TObject *Sender);
void __fastcall Timer3Timer(TObject *Sender);
void __fastcall Button1Click(TObject *Sender);
void __fastcall Timer1Timer(TObject *Sender);
void __fastcall Timer2Timer(TObject *Sender);
void __fastcall UpDown3Click(TObject *Sender, TUDBtnType Button);
void __fastcall UpDown4Click(TObject *Sender, TUDBtnType Button);
void __fastcall UpDown5Click(TObject *Sender, TUDBtnType Button);
void __fastcall Button4Click(TObject *Sender);
void __fastcall Button5Click(TObject *Sender);
void __fastcallFormCreate(TObject *Sender);
private:// User declarations
public:// User declarations
__fastcallTForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Размещено на Allbest.ru
Подобные документы
Программа по созданию стрелочных часов. Минимальные требования к составу и параметрам технических средств программы. Выбор и обоснование системы программирования Microsoft Visual Studio. Общее описание алгоритма. Руководство пользователя и программиста.
контрольная работа [1017,1 K], добавлен 11.12.2012Проведение сравнительного анализа языков программирования. Создание алгоритма и специфика составления математической модели программы "Механические часы, показывающие текущее время" в среде Microsoft Visual Studio 2010, на базе языка программирования С++.
курсовая работа [408,9 K], добавлен 11.03.2013Общие сведения о работе программы в среде программирования Microsoft Visual Studio 2008, на языке программирования C++. Ее функциональное назначение. Инсталляция и выполнение программы. Разработанные меню и интерфейсы. Алгоритм программного обеспечения.
курсовая работа [585,5 K], добавлен 24.03.2009Таймер в Windows как устройство ввода информации, которое извещает приложение о том, что истек заданный интервал времени. Работа с таймером в условиях WinAPI, процесс 32-битного программирования на ассемблере под Windows. Результат выполнения программы.
курсовая работа [165,6 K], добавлен 18.05.2014Основные преимущества и возможности объектно-ориентированного языка программирования С#. Руководство пользователя: установка приложения, эксплуатация ежедневника, назначение полей, кнопок и пунктов меню. Руководство программиста. Событие элемента Timer.
курсовая работа [4,5 M], добавлен 16.08.2012Изучение особенностей растровых и векторных графических редакторов. Создание графического редактора: выбор языка программирования, разработка структуры программы и алгоритма работы. Описание интерфейса программы. Руководство программиста и пользователя.
курсовая работа [1,3 M], добавлен 28.07.2013Составление алгоритма и разработка в среде программирования Delphi 7 программы, вычисляющей макроэкономические индексы цен. Реализация программы в виде 4 форм и 1 диалогового окна. Описание алгоритма решения задачи. Текст программы, руководство оператора.
курсовая работа [1,4 M], добавлен 04.06.2013Разработка программы FileInfo, выдающей полную информацию о заданном файле с применением языка программирования С++, используя API функции Win 32. Использование пространств имён .NetFramework. Руководство пользователя и системные требования программы.
курсовая работа [1,2 M], добавлен 25.04.2012Создание программы на языке программирования Visual Prolog. Разработка математической модели. Функциональные характеристики программы: оптимальный маршрут для такси. Интерфейс пользователя, руководство программиста, функциональная схема, тестовый пример.
курсовая работа [515,4 K], добавлен 18.10.2010Характеристика основных разделов программирования, изучаемых в курсе программирования на языке С++. Описание внутренних переменных, входных и выходных данных. Особенности использования компилятора Microsoft Visual Studio 2008. Руководство пользователя.
курсовая работа [18,8 K], добавлен 14.12.2010