Вход

Стрелочный таймер

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 190581
Дата создания 2015
Страниц 23
Источников 6
Мы сможем обработать ваш заказ (!) 24 апреля в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
1 700руб.
КУПИТЬ

Содержание

Оглавление
Задание 2
Введение 3
Выбор среды для реализации 4
Историческая справка 5
Компонентный анализ .................................................................................6
Анализ задачи 13
Процесс рисования 14
Блок-схема алгоритма рисования 16
Блок-схема начала отсчета 18
Блок-схема одного такта 19
Инструкция по применению 20
Пример работы таймера 21
Заключение 22
Список литературы 23
Приложение А. Исходный код 25

Фрагмент работы для ознакомления

В поля ввода интервала времени работы необходимо ввести требуемое время (по умолчанию 3 минуты 30 секунд), после чего таймер начнет тикать и стрелки начнут перемещаться. [1,с. 321]При нажатии на кнопку стоп таймер останавливается.Если нажать на кнопку «отметка» в поле справа добавится текущее время, которое показывает таймер.К примеру, чтобы отмерить 5 минут 25 секунд введите в соответсвующие поля 5 и 25 и запустите таймер.Пример работы таймераЗаключениеВ ходе данной работы мы реализовали программу-таймер, изучили среду разработки Borland Delphi 7.В результате получилась работающая программа, выполняющая посталвенную задачу.Были получены навыки рисования графики, синхронизации процессов.Также был получен навык отладки приложенийСписок литературыDelphi, Хомоненко, BHV, 2008, с. 321Delphi 2006 Справочное пособие, Архангельский, 2001, с.156Программирование графики в Delphi, Тюкачев, BHV, 2008, с.284OpenGL. Графика в проектах Delphi, Краснов, BHV, 2005,с. 192Алгоритмы: построение и анализ, Кормен, Лейзерсон, Вильямс, 1190, с.412Искусство программирования, т.1-3, Кнут, Вильямс, 2015, с.275 Приложение А. Исходный кодunit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Math;type TForm1 = class(TForm) PaintBox1: TPaintBox; Button1: TButton; Button2: TButton; Button3: TButton; Memo1: TMemo; Label1: TLabel; Timer1: TTimer; Label2: TLabel; Edit1: TEdit; Label3: TLabel; Edit2: TEdit; procedure PaintBox1Paint(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } sec, min: integer; end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.PaintBox1Paint(Sender: TObject); procedure c( var p: TPoint; x,y, r: integer; a: single ); begin p.x := round( x + cos((a-90) * PI / 180) * r ); p.y := round( y + sin((a-90) * PI / 180) * r ); end;var i, x, y, r, x2, y2, r2, m, s: integer; canv: TCanvas; a: single; arr: array of TPoint;begin canv := PaintBox1.Canvas; canv.Brush.Color := clBtnFace; canv.FillRect( PaintBox1.ClientRect ); x := PaintBox1.Width div 2; y := PaintBox1.Height div 2; x2 := x + x div 3; y2 := y - y div 4; r := x - 10; canv.Ellipse( x - r, y - r, x + r, y + r ); r := r - 15; r2 := 27; canv.Ellipse( x2-r2, y2-r2, x2+r2, y2+r2 ); m := StrToIntDef( Edit1.Text, MaxInt ); s := StrToIntDef( Edit2.Text, MaxInt ); if ((m <> MaxInt) and (s <> MaxInt)) then begin a := m * 2 * PI / 20.0 - PI / 2; r2 := 20; canv.Pen.Color := clGreen; canv.MoveTo( x2, y2 ); canv.LineTo( round(x2 + cos(a) * r2), round(y2 + sin(a) * r2) ); a := s * 2 * PI / 60.0 - PI / 2; r2 := r - 25; canv.MoveTo( x, y ); canv.LineTo( round(x + cos(a) * r), round(y + sin(a) * r) ); end; canv.Pen.Color := clBlack; for i := 0 to 11 do begin a := i * PI / 6 - PI / 2; canv.MoveTo( round(x + cos(a)*(r+ 5)), round(y + sin(a)*(r+ 5)) ); canv.LineTo( round(x + cos(a)*(r+15)), round(y + sin(a)*(r+15)) ); canv.TextOut( round(x + cos(a) * r)-4, round(y + sin(a) * r)-6, IntToStr(i*5) ); end; r2 := 19; for i := 0 to 3 do begin a := i * PI / 2 - PI / 2; canv.TextOut( round(x2 + cos(a) * r2)- canv.TextWidth( IntToStr(i*5) ) div 2, round(y2 + sin(a) * r2)-6, IntToStr(i*5) ); end; SetLength( arr, 4 ); canv.Brush.Color := clWhite; c( arr[0], x2, y2, r2, min * 18 ); c( arr[1], x2, y2, 3, min * 18 + 90 ); c( arr[2], x2, y2, 3, min * 18 + 180 ); c( arr[3], x2, y2, 3, min * 8 + 270 ); canv.Polygon(arr); c( arr[0], x, y, r, sec * 6 ); c( arr[1], x, y, 5, sec * 6 + 90 ); c( arr[2], x, y, 5, sec * 6 + 180 ); c( arr[3], x, y, 5, sec * 6 + 270 ); canv.Polygon( arr );end;procedure TForm1.FormCreate(Sender: TObject);begin sec := 0; min := 0;end;procedure TForm1.Button1Click(Sender: TObject);begin Timer1.Enabled := true; min := 0; sec := 0; Button1.Enabled := false; Button2.Enabled := true; Button3.Enabled := true; Memo1.Lines.Clear (); Memo1.Lines.Add( 'Íà÷àëè' );end;procedure TForm1.Timer1Timer(Sender: TObject);var m, s: integer;begin inc( sec ); if (sec >= 60) then begin sec := sec-60; inc(min); end; m := StrToIntDef( Edit1.Text, MaxInt ); s := StrToIntDef( Edit2.Text, MaxInt ); if ((m <> MaxInt) and (s <> MaxInt)) then if (m*60 + s <= min * 60 + sec) then Button3Click( nil ); PaintBox1.Invalidate;end;procedure TForm1.Button3Click(Sender: TObject);begin Timer1.Enabled := false; Timer1.Enabled := false; Button1.Enabled := true; Button2.Enabled := false; Button3.Enabled := false; Memo1.Lines.Add( 'Îñòàíîâëåíî' );end;procedure TForm1.Button2Click(Sender: TObject);begin Memo1.Lines.Add( 'Îòìåòêà: ' + IntToStr(min) + ':' + IntToStr( sec ) );end;end.

Список литературы [ всего 6]

Список литературы
1. Delphi, Хомоненко, BHV, 2008, с. 321
2. Delphi 2006 Справочное пособие, Архангельский, 2001, с.156
3. Программирование графики в Delphi, Тюкачев, BHV, 2008, с.284
4. OpenGL. Графика в проектах Delphi, Краснов, BHV, 2005,с. 192
5. Алгоритмы: построение и анализ, Кормен, Лейзерсон, Вильямс, 1190, с.412
6. Искусство программирования, т.1-3, Кнут, Вильямс, 2015, с.275  
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00488
© Рефератбанк, 2002 - 2024