Смекни!
smekni.com

Разработка программы осуществляющей выдачу сообщения в заданное время (стр. 2 из 2)

Алгоритм работы программы (приложение А) начинается с ввода пользователем времени выдачи текстового и звукового сообщения – блок один. Далее программа осуществляет выборку значения системного времени – блок два. Для последующего оповещения пользователя о наступлении заданного времени необходимо реализовать подучу звука – блок 3.

Программа находиться в режиме ожидания до момента нажатия клавиши «Готово».

При нажатии клавиши программа обновляет переменную хранения значения системного времени и осуществляет сравнение с временем, заданным пользователем – блок 5. В таком ожидании программа находиться до момента наступления заданного времени, либо выключения программы. Для того, чтобы значение системного времени и заданного пользователем однозначно совпало, необходимо осуществлять выборку системного времени с точностью до секунды.

При совпадении значения системного времени и заданного пользователем программа выводит на экран сообщение, сопровождающееся звуковым оповещением – блоки 6, 8, 10.


4. Описание работы программы

Программа должна реализовывать вывод текстового и звукового сообщения при наступлении заданного пользователем времени. Для успешной реализации программы необходимо создание удобного пользовательского интерфейса. В данной программе используется графический интерфейс (см. рисунок 1).

Рисунок 1 – «Внешний вид окна программы»

Интерфейс и вся программа в целом в курсовом проекте создаётся с помощью языка программирования высокого уровня BuilderC++. Данный язык программирования наиболее удобен для реализации данной программы. Осуществляется это при помощи классов следующим образом.

С помощью строк:

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, ExtCtrls, Mask, MPlayer;

осуществляется выделение память для использующихся переменных.

Строка Label1: TLabel; осуществляет вывод надписи в окне программы.

MaskEdit1: TMaskEdit; - поле для задания пользователем времени.

Button1: TButton; - добавление кнопки «Готово» о окно программы.

Строки Timer1: TTimer; и Label2: TLabel; реализуют вывод на экран текущего системного времени с интервалов в одну секунду, что позволяет реализовать таймер.

Для последующего звукового оповещения пользователя необходимо реализовать подачу звука. Это реализуется с помощью модуля MediaPlayer1: TMediaPlayer;

После построения окна программы, подключения необходимых модулей и ввода значения времени начинается выполнение тела программы:

Строка procedureTForm1.Button1Click(Sender: TObject); реализует запуск программы при нажатии кнопки «Готово» окна программы. Иначе программа находиться в режиме ожидания.

После нажатия клавиши окно программы минимизируется - Application.Minimize;

За тем программа самостоятельно запускается один раз в секунду по системному таймеру - procedure TForm1.Timer1Timer(Sender: TObject); обновляет свои переменную для хранения текущего времени и осуществляет вывод ее в окно программы - Label2.Caption:=TimeToStr(Time);

Проверка превышения системного времени над заданным пользователем реализуется с помощью строки:

if Time>StrToTime(MaskEdit1.Text)then.

Если заданное условие выполняется, происходит восстановление окна программы из минимизированного состояния с помощью строки: Application.Restore;

Далее программа подключает аудио-плеер и проигрывает звуковое сообщение:

MediaPlayer1.FileName:='error.wav';

MediaPlayer1.DeviceType:=dtAutoSelect;

MediaPlayer1.Open;

MediaPlayer1.Play;


Заключение

В результате проделанной работы была создана программа, обеспечивающая всем требованиям задания. Программа осуществляет выдачу сообщения в заданное время.


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

1. Керниган Б., Ритчи Д. Язык программирования Си. – СПб.: «Невский Диалект», 2001. – 352с.: ил.

2. Шилд Г. «Программирование на BorlandC/C++». -Москва.: ООО «Попурри», 1999 г


Приложение А

Блок-схема алгоритма работы программы



Приложение Б

Листинг программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, ExtCtrls, Mask, MPlayer;

type

TForm1 = class(TForm)

//Надпись

Label1: TLabel;

//Строка ввода верени

MaskEdit1: TMaskEdit;

//Кнопка

Button1: TButton;

//Таймер

Timer1: TTimer;

//Надпись (выводит текущее время)

Label2: TLabel;

//Модуль отвечающий за подачу звука

MediaPlayer1: TMediaPlayer;

procedure Button1Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

flag: byte;

implementation

{$R *.DFM}

//Запускается при нажатии кнопки

procedure TForm1.Button1Click(Sender: TObject);

begin

//Программа минимизируется

Application.Minimize;

//Флаг запуска = 1

flag:=1;

end;

//Запускается раз в секунду по таймеру

procedure TForm1.Timer1Timer(Sender: TObject);

begin

//Вывод текущего времени

Label2.Caption:=TimeToStr(Time);

//Если будильник запущен

ifflag=1 then

//Если текущее время превысило время сигнализирования

// функция StrToTime переводит значение текстовой строки MaskEdit1.Text

// в значение время

if Time>StrToTime(MaskEdit1.Text)then

begin

//Восстановление программы

Application.Restore;

//Подключение к медиа плееру файла error.wav

MediaPlayer1.FileName:='error.wav';

//Медиа плеер автоматически определяет тип устройства

//(по умолчанию аудио драйвер)

MediaPlayer1.DeviceType:=dtAutoSelect;

//Медиа плеер открывает файл

MediaPlayer1.Open;

// И проигрывает его

MediaPlayer1.Play;

end;

end;

//Все

end.