Разработка алгоритма программы "Таймер" на языке программирования C++

 

Департамент образования и науки Приморского края

Краевое государственное бюджетное образовательное учреждение

среднего профессионального образования

«Находкинский государственный гуманитарно-политехнический колледж»








КУРСОВАЯ РАБОТА (ПРОЕКТ)

По дисциплине: Системное программирования

На тему: «Разработка алгоритма программы «Таймер» на языке программирования C++




Студента Соловьева Евгения Андреевича

Группа 731 специальность 230115 Программирование в компьютерных системах







Находка 2013

Содержание


Введение

Раздел 1. Теоретическая часть

1.1 Язык программирование C++

1.2 Среда программирования Embarcadero RAD Studio

Раздел 2. Практическая часть

2.1 Создание окна, которое отображает системную дату и время

2.2 Разработка приложения таймер с функциями

2.2.1 Выполнение выбранного действия в определенный промежуток времени заданный пользователем

2.2.2Выполнение выбранного действия через определенный промежуток времени заданный пользователем

. Руководство программиста

. Руководство пользователя

Заключение

Список использованных источников

Приложение А. Программный Листинг



Введение


В современном мире язык программирования Си (C++) широко используется для разработки программного обеспечения, а также это язык программирования высокого уровня, который хорошо известный своей эффективностью, экономичностью, и переносимостью. Ведь первые Операционные системы были написаны именно на языке Си. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (игр).

Цель данной курсовой работы - является систематизация, углубление и активное применение знаний по системному программированию, закрепление знаний, полученных в лекционном курсе, а также на практических занятиях.

Достижение цели обеспечивается решением следующей задачи:

Разработка приложения «Таймер» при помощи динамических библиотек С++

Использование полученных знаний на лекционном курсе


Раздел 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

® 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 готовых жестов)с поддержкой 9 основных баз данных, включая InterBase®

Многоуровневое промежуточное ПО DataSnap с поддержкой JSON, REST, HTTP, COM и XML

Возможность отладки многопоточных приложений/аудит кода и учет показателей

Единая система для работы с 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. Практическая часть


.1 Создание окна, которое отображает системную дату и время


Для создания этого окна использовались компоненты GroupBox и Label.


Рисунок 2.1 Окно, отображающее системную дату и время


Листинг 2.1 Отображение текущей даты и время

void __fastcall TForm1::Timer1Timer(TObject *Sender)

{->Caption = TimeToStr(Time()); // показать текущее время->Caption = DateToStr(Now()); //показать дату(DayOfWeek(Now()) == 1) {Label7->Caption= "Воскресенье";}(DayOfWeek(Now()) == 2) {Label7->Caption = "Понедельник";}(DayOfWeek(Now()) == 3) {Label7->Caption = "Вторник";}(DayOfWeek(Now()) == 4) {Label7->Caption = "Среда";}(DayOfWeek(Now()) == 5) {Label7->Caption = "Четверг";}(DayOfWeek(Now()) == 6) {Label7->Caption = "Пятница";}(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)

{=StrToInt(FormatDateTime("hh", Time()));=StrToInt(FormatDateTime("nn", Time()));=StrToInt(FormatDateTime("ss", Time()));

// …получим текущее время системы …=StrToInt(FormatDateTime("hh", Form1->timepicker->Time));=StrToInt(FormatDateTime("nn", Form1->timepicker->Time));=StrToInt(FormatDateTime("ss", Form1->timepicker->Time));

// Время срабатывания будильника, которое задал пользователь(Button2->Enabled == false) { //Если ктопка "Старт" не видимая, то

if (iHours == iAlarmHours &&== iAlarmMinutes &&

iSeconds == iAlarmSeconds)

{ // и если оно совпало с заданным временем пользователем…

MediaPlayer1->Play(); // проигрываем мелодию(RadioGroup1->ItemIndex) {0: {ShellExecute(NULL, "open", "mspaint.exe", NULL, NULL, SW_SHOWNORMAL);break;}1: {ShellExecute(NULL, "open", "notepad.exe", NULL, NULL, SW_SHOWNORMAL);break;}2: {ShellExecute(NULL, "open", "calc.exe", NULL, NULL, SW_SHOWNORMAL);break;}3: {ShellExecute(NULL, "open", "wmplayer.exe", NULL, NULL, SW_SHOWNORMAL);break;}4: {ShellExecute(NULL, "open", "#"justify">}

}

}

}

2.2.2 Выполнение выбранного действия через определенный промежуток времени заданный пользователем

В этой функции после того как время на таймере достигало начального значения, программа выполняла выбранное действие и выдавала звуковой сигнал(Рисунок 2.2.2).


Рисунок 2.2.2 Окно в котором выбирается действие и задается время


Листинг 2.2.2 Выполнение выбранного действия через определенный промежуток времени заданный пользователем

void __fastcall TForm1::Timer2Timer(TObject *Sender)

{(StrToInt(Edit5->Text)>0) {->Text = IntToStr(StrToInt(Edit5->Text)-1);

}(Edit5->Text <= 0 &&(Edit4->Text)>0)

{->Text = StrToInt(Edit4->Text)-1; //добавлено StrToInt - было: "59" is not valid date and time

Edit5->Text = 59; // Поле "секунды" - без изменений

}

// Обратый отсчет, и проверка значения в "Еdit4"

if (Edit4->Text <= 0 &&(Edit3->Text)>0)

{->Text = StrToInt(Edit3->Text)-1; //добавлено StrToInt // Поле "секунды"

Edit4->Text = 60; // было 59 - но 1 час = 60 минут, так и стартуем // Поле "минуты"

}(Edit3->Text == 0 && // Поле "секунды"

Edit4->Text == 0 && // Поле "минуты"->Text == 0) // Поле "секунды"

{ // если значения в таймере равны 0, то

Timer2->Enabled=false;->Play(); // проигрываем мелодию(RadioGroup1->ItemIndex) {0: {ShellExecute(NULL, "open", "mspaint.exe", NULL, NULL, SW_SHOWNORMAL);break;}1: {ShellExecute(NULL, "open", "notepad.exe", NULL, NULL, SW_SHOWNORMAL);break;}2: {ShellExecute(NULL, "open", "calc.exe", NULL, NULL, SW_SHOWNORMAL);break;}3: {ShellExecute(NULL, "open", "wmplayer.exe", NULL, NULL, SW_SHOWNORMAL);break;}4: {ShellExecute(NULL, "open", "#"justify">Для разработки окна этой функции использовались компоненты GroupBox, edit, button, label и UpDown.

3. Руководство программиста


Листинг 3.1 Создание окна__fastcall TForm1::FormCreate(TObject *Sender)

{->Position = poDesktopCenter;->Width = 265;->Visible = false; // скрываем плеер->FileName = "alarm.mp3"; // указываем плееру файл

MediaPlayer1->Open(); // и открываем его для проигрывания

}

В данной функции можно изменить позицию, длину и звуковой сигнал программы.

Смена позиции:Form->Positon

Смена длины:Form->Width

Смена звукового сигнала:MediaPlayer1->FileName

Листинг 3.2 Выполнение выбранного действия в заданный промежуток времени

void __fastcall TForm1::Timer3Timer(TObject *Sender)

{=StrToInt(FormatDateTime("hh", Time()));=StrToInt(FormatDateTime("nn", Time()));=StrToInt(FormatDateTime("ss", Time()));

// …получим текущее время системы …=StrToInt(FormatDateTime("hh", Form1->timepicker->Time));=StrToInt(FormatDateTime("nn", Form1->timepicker->Time));=StrToInt(FormatDateTime("ss", Form1->timepicker->Time));

// Время срабатывания будильника, которое задал пользователь(Button2->Enabled == false) { //Если кнопка "Старт" не видимая, то

if (iHours == iAlarmHours &&== iAlarmMinutes &&

iSeconds == iAlarmSeconds)

{ // и если оно совпало с заданным временем пользователем…

MediaPlayer1->Play(); // проигрываем мелодию(RadioGroup1->ItemIndex) {0: {ShellExecute(NULL, "open", "mspaint.exe", NULL, NULL, SW_SHOWNORMAL);break;}1: {ShellExecute(NULL, "open", "notepad.exe", NULL, NULL, SW_SHOWNORMAL);break;}2: {ShellExecute(NULL, "open", "calc.exe", NULL, NULL, SW_SHOWNORMAL);break;}3: {ShellExecute(NULL, "open", "wmplayer.exe", NULL, NULL, SW_SHOWNORMAL);break;}4: {ShellExecute(NULL, "open", "#"justify">}

}

}

}

В данной функции можно изменить какую программу будет запускать таймер в определенный промежуток времени заданный пользователем.

Чтобы изменить названия действий нужно зайти в RadioGroup->Properties->Items и открыть Script List Editor при нажатии на троеточие.

Листинг 3.3 Выполнение выбранного действия через определенный промежуток времени

void __fastcall TForm1::Timer2Timer(TObject *Sender)

{(StrToInt(Edit5->Text)>0) {->Text = IntToStr(StrToInt(Edit5->Text)-1);

}(Edit5->Text <= 0 &&(Edit4->Text)>0)

{->Text = StrToInt(Edit4->Text)-1; //добавлено StrToInt - было: "59" is not valid date and time

Edit5->Text = 59; // Поле "секунды" - без изменений

}

// Обратный отсчет, и проверка значения в "Еdit4"

if (Edit4->Text <= 0 &&(Edit3->Text)>0)

{->Text = StrToInt(Edit3->Text)-1; //добавлено StrToInt // Поле "секунды"

Edit4->Text = 60; // было 59 - но 1 час = 60 минут, так и стартуем // Поле "минуты"

}(Edit3->Text == 0 && // Поле "секунды"

Edit4->Text == 0 && // Поле "минуты"->Text == 0) // Поле "секунды"

{ // если значения в таймере равны 0, то

Timer2->Enabled=false;->Play(); // проигрываем мелодию(RadioGroup1->ItemIndex) {0: {ShellExecute(NULL, "open", "mspaint.exe", NULL, NULL, SW_SHOWNORMAL);break;}1: {ShellExecute(NULL, "open", "notepad.exe", NULL, NULL, SW_SHOWNORMAL);break;}2: {ShellExecute(NULL, "open", "calc.exe", NULL, NULL, SW_SHOWNORMAL);break;}3: {ShellExecute(NULL, "open", "wmplayer.exe", NULL, NULL, SW_SHOWNORMAL);break;}4: {ShellExecute(NULL, "open", "#"justify">}

}

}

В данной функции можно изменить какую программу будет запускать таймер через определенный промежуток времени заданный пользователем.


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 с



Приложение А. Программный Листинг

.cpp

//---------------------------------------------------------------------------


#include <vcl.h>

#pragma hdrstop

//---------------------------------------------------------------------------("Unit1.cpp", Form1);

//---------------------------------------------------------------------------Win Main(HINSTANCE, HINSTANCE, LPSTR, int)

{

{>Initialize();>CreateForm(__classid(TForm1), &Form1);>Run();

}(Exception &exception)

{>ShowException(&exception);

}(...)

{

{Exception("");

}(Exception &exception)

{>ShowException(&exception);

}

}0;

}

//---------------------------------------------------------------------------.cpp

//---------------------------------------------------------------------------

#include <sys/timeb.h>

#include <vcl.h>

#include <windows.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"*Form1;; // Таймер включён; // Текущий час.; // Текущая минута.; // Текущая секунда; // Час оповещения.; // Минута оповещения.; // Секунда оповещения

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------__fastcall TForm1::FormCreate(TObject *Sender)

{->Position = poDesktopCenter;->Width = 265;->Visible = false; // скрываем плеер->FileName = "alarm.mp3"; // указываем плееру файл

MediaPlayer1->Open(); // и открываем его для проигрывания

}

//---------------------------------------------------------------------------__fastcall TForm1::Button2Click(TObject *Sender)

{->Enabled=false; // Кнопка "Старт" невидима

}

//---------------------------------------------------------------------------__fastcall TForm1::Button3Click(TObject *Sender)

{=false; // Выключить будильник->Enabled=true;>Time=StrToTime("0:00:00"); // Сброс на ноль.

}

//---------------------------------------------------------------------------__fastcall TForm1::Timer3Timer(TObject *Sender)

{=StrToInt(FormatDateTime("hh", Time()));=StrToInt(FormatDateTime("nn", Time()));=StrToInt(FormatDateTime("ss", Time()));

// …получим текущее время системы …=StrToInt(FormatDateTime("hh", Form1->timepicker->Time));=StrToInt(FormatDateTime("nn", Form1->timepicker->Time));=StrToInt(FormatDateTime("ss", Form1->timepicker->Time));

// Время срабатывания срабатывания будильника, которое задал пользователь(Button2->Enabled == false) { //Если кнопка "Старт" не видимая, то

if (iHours == iAlarmHours&&== iAlarmMinutes&&

iSeconds == iAlarmSeconds)

{ // и если оно совпало с заданным временем пользователем…

MediaPlayer1->Play(); // проигрываем мелодию(RadioGroup1->ItemIndex) {0: {ShellExecute(NULL, "open", "mspaint.exe", NULL, NULL, SW_SHOWNORMAL);break;}1: {ShellExecute(NULL, "open", "notepad.exe", NULL, NULL, SW_SHOWNORMAL);break;}2: {ShellExecute(NULL, "open", "calc.exe", NULL, NULL, SW_SHOWNORMAL);break;}3: {ShellExecute(NULL, "open", "wmplayer.exe", NULL, NULL, SW_SHOWNORMAL);break;}4: {ShellExecute(NULL, "open", "#"justify">}

}

}

}

//---------------------------------------------------------------------------__fastcall TForm1::Button1Click(TObject *Sender)

{(0); // Выход с программы

}

//---------------------------------------------------------------------------__fastcall TForm1::Timer1Timer(TObject *Sender)

{->Caption = TimeToStr(Time()); // показать текущее время->Caption = DateToStr(Now()); //показать дату(DayOfWeek(Now()) == 1) {Label7->Caption= "Воскресенье";}(DayOfWeek(Now()) == 2) {Label7->Caption = "Понедельник";}(DayOfWeek(Now()) == 3) {Label7->Caption = "Вторник";}(DayOfWeek(Now()) == 4) {Label7->Caption = "Среда";}(DayOfWeek(Now()) == 5) {Label7->Caption = "Четверг";}(DayOfWeek(Now()) == 6) {Label7->Caption = "Пятница";}(DayOfWeek(Now()) == 7) {Label7->Caption = "Суббота";}

}

//---------------------------------------------------------------------------__fastcall TForm1::UpDown3Click(TObject *Sender, TUDBtnType Button)

{(Button == Comctrls::btNext) {->Text = IntToStr(StrToInt(Edit3->Text)+1);

}(Button == Comctrls::btPrev) {->Text = IntToStr(StrToInt(Edit3->Text)-1);

// Изменение значения в поле "Edit1"

}

}

//---------------------------------------------------------------------------__fastcall TForm1::UpDown4Click(TObject *Sender, TUDBtnType Button)

{(Button == Comctrls::btNext) {->Text = IntToStr(StrToInt(Edit4->Text)+1);

}(Button == Comctrls::btPrev) {->Text = IntToStr(StrToInt(Edit4->Text)-1);

}

}

//---------------------------------------------------------------------------__fastcall TForm1::UpDown5Click(TObject *Sender, TUDBtnType Button)

{(Button == Comctrls::btNext) {->Text = IntToStr(StrToInt(Edit5->Text)+1);

}(Button == Comctrls::btPrev) {->Text = IntToStr(StrToInt(Edit5->Text)-1);

}

}

//---------------------------------------------------------------------------__fastcall TForm1::Timer2Timer(TObject *Sender)

{(StrToInt(Edit5->Text)>0) {->Text = IntToStr(StrToInt(Edit5->Text)-1);

}(Edit5->Text <= 0 &&(Edit4->Text)>0)

{->Text = StrToInt(Edit4->Text)-1; //добавлено StrToInt - было: "59" is not valid date and time

Edit5->Text = 59; // Поле "секунды" - без изменений

}

// Обратный отсчет, и проверка значения в "Еdit4"

if (Edit4->Text <= 0 &&(Edit3->Text)>0)

{->Text = StrToInt(Edit3->Text)-1; //добавлено StrToInt // Поле "секунды"

Edit4->Text = 60; // было 59 - но 1 час = 60 минут, так и стартуем // Поле "минуты"

}(Edit3->Text == 0 && // Поле "секунды"

Edit4->Text == 0 && // Поле "минуты"->Text == 0) // Поле "секунды"

{ // если значения в таймере равны 0, то

Timer2->Enabled=false;->Play(); // проигрываем мелодию(RadioGroup1->ItemIndex) {0: {ShellExecute(NULL, "open", "mspaint.exe", NULL, NULL, SW_SHOWNORMAL);break;}1: {ShellExecute(NULL, "open", "notepad.exe", NULL, NULL, SW_SHOWNORMAL);break;}2: {ShellExecute(NULL, "open", "calc.exe", NULL, NULL, SW_SHOWNORMAL);break;}3: {ShellExecute(NULL, "open", "wmplayer.exe", NULL, NULL, SW_SHOWNORMAL);break;}4: {ShellExecute(NULL, "open", "#"justify">}

}

}

//---------------------------------------------------------------------------__fastcall TForm1::Button4Click(TObject *Sender)

{->Enabled = true; // Включить второй таймер

}

//---------------------------------------------------------------------------__fastcall TForm1::Button5Click(TObject *Sender)

{->Enabled = false; //Выключить второй таймер

Edit5->Text = "0"; // Значению в поле "секунды" присвоить 0->Text = "0"; // Значению в поле "минуты" присвоить 0->Text = "0"; // Значению в поле "часы" присвоить 0

}

//---------------------------------------------------------------------------.h

//---------------------------------------------------------------------------


#ifndef Unit1H

#define Unit1H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ComCtrls.hpp>

#include <ExtCtrls.hpp>

//---------------------------------------------------------------------------TForm1 : public TForm

{

__published:// IDE-managed Components*Button1;*GroupBox1;*Label2;*Label3;*Label4;*Label5;*Label6;*Label7;*GroupBox2;*Label8;*Button2;*Button3;*timepicker;*GroupBox3;*Label9;*Button4;*Button5;*RadioGroup1;*Timer1;*Timer2;*Timer3;*Edit3;*UpDown3;*Edit4;*UpDown4;*Edit5;*UpDown5;*MediaPlayer1;__fastcall Button2Click(TObject *Sender);__fastcall Button3Click(TObject *Sender);__fastcall Timer3Timer(TObject *Sender);__fastcall Button1Click(TObject *Sender);__fastcall Timer1Timer(TObject *Sender);__fastcall Timer2Timer(TObject *Sender);__fastcall UpDown3Click(TObject *Sender, TUDBtnType Button);__fastcall UpDown4Click(TObject *Sender, TUDBtnType Button);__fastcall UpDown5Click(TObject *Sender, TUDBtnType Button);__fastcall Button4Click(TObject *Sender);__fastcall Button5Click(TObject *Sender);__fastcallFormCreate(TObject *Sender);:// User declarations:// User declarations

__fastcallTForm1(TComponent* Owner);

};

//---------------------------------------------------------------------------PACKAGE TForm1 *Form1;

//---------------------------------------------------------------------------

#endif


Департамент образования и науки Приморского края Краевое государственное бюджетное образовательное учреждение среднего профессионального образования &#

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ