Разработка приложения "Таймер" для отключения компьютера

Общие сведения о таймерах, история их возникновения и применение. Развитие и совершенствование языков программирования. Разработка приложения "Таймер" для выключения и отмены отключения компьютера, показа времени начала работы программы и ее автозагрузки.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 30.01.2015
Размер файла 182,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Кроме того, технология сценариев много выиграла от повышения производительности компьютерного оборудования. Еще не так давно, чтобы добиться приемлемой скорости работы приложения любого уровня сложности, необходимо было обращаться к языкам системного уровня. В некоторых случаях даже их эффективность оказывалась недостаточной, и программу приходилось писать на ассемблере. Современные машины работают в 100-500 раз быстрее компьютеров 80-х годов, и их производительность продолжает удваиваться примерно каждые 18 месяцев. Сегодня целый ряд приложении может быть реализован на языках описания сценариев при, тем не менее, великолепной производительности. Например, TCL-сценарии позволяет манипулировать тысячами объектов при сохранении хорошего уровня интерактивности. По мере того как компьютеры будут становиться быстрее и быстрее, применение языков описания сценариев будет становиться привлекательным для реализации все более и более масштабных приложений.

Другие языки

Существует огромное количество атрибутов, помимо степени строгости контроля типов или уровня языка, и есть очень много интересных примеров, которые не могут быть однозначно отнесены к одной из двух рассмотренных нами категории. Например, семейство Lisp занимает некоторое промежуточное положение, обладая атрибутами языков описания сценариев и языков программирования системного уровня. В Lisp впервые были реализованы такие концепции, как интерпретация и динамический контроль типов, которые широко используются в современных языках описания сценариев, А также автоматическое управление хранением и интегрированные среды разработки, применяемые в языках обеих категории.

Языки описания сценариев основаны на несколько другом наборе компромиссов, чем языки системного уровня. В них скорость исполнения и строгость контроля типов ставятся в шкале приоритетов на более низкое место, но зато выше цениться производительность труда программиста и повторное использование. Это соотношение ценностей оказывается все более оправданным по мере того, как компьютеры становятся быстродействующими и менее дорогими, чего нельзя сказать о программистах. Языки системного программирования хорошо подходят для создания компонентов, где основная сложность заключена в реализации алгоритмов и структур данных, тогда как языки описания сценариев лучше приспособлены для построения приложении из готовых компонентов, где сложность состоит в налаживании межкомпонентных связей. Задачи последнего рода получают все большее распространение, так что роль парадигмы сценариев будет возрастать и в будущем веке.

программа таймер работа компьютер

Глава 2. Описание основных принципов создания приложения для выключения компьютера приложением ”Таймер”

2.1 Компоненты использованные для создания приложения

Для создания приложения были использованы компоненты, которые не видны на интерфейсе, т.е. были скрыты, но все же активны. Например, один из трех компонентов maskedit, по идее он как бы совмещен с другим компонентом maskedit т.к. без него отчет времени не пошел бы, пришлось бы писать другой код для правильной работы приложения.

Компонент Delphi MaskEdit (Шаблон ввода) расположен на странице Additional Палитры компонентов. Он так же, как и компонент Edit, является однострочным редактором. Но вдобавок к свойствам и функциям компонента Edit, MaskEdit дает дополнительную возможность ввода текста по заданному шаблону.

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

Шаблон (маска) задается с помощью свойства EditMask и состоит из трех полей разделенных между собой символами точка с запятой. В первом поле находиться сам шаблон (маска). Второе поле определяет, войдут ли вспомогательные символы в итоговый текст (по умолчанию 1). Если стоит 0, то они не будут в итоговом результате, а видны на дисплее при редактировании. Любой иной символ разрешает такое включение. Третье поле отвечает за вывод незаполненных (пустых) символов в поле ввода (по умолчанию это символ подчеркивания). При не заданных значениях второго и третьего полей, действуют значения по умолчанию.

В компонентах Edit и MaskEdit вводимый и выводимый текст содержится в свойстве Text. Это свойство можно устанавливать в процессе проектирования или задавать программно. Выравнивание текста, как это имело место в метках и панелях, невозможно. Перенос строк тоже невозможен. Текст, не помещающийся по длине в окно, просто сдвигается, и пользователь может перемещаться по нему с помощью курсора. Свойство AutoSize в окнах редактирования имеет смысл, отличный от смысла аналогичного свойства меток: автоматически подстраивается под размер текста только высота, но не ширина окна.

Окна редактирования снабжены многими функциями, свойственными большинству редакторов. Например, в них предусмотрены типичные комбинации «горячих» клавиш: Ctrl-C -- копирование выделенного текста в буфер обмена Clipboard (команда Copy), Ctrl-X -- вырезание выделенного текста в буфер Clipboard (команда Cut), Ctrl-V -- вставка текста из буфераClipboard в позицию курсора (команда Paste), Ctrl-Z -- отмена последней команды редактирования. Правда, пользователи часто не догадываются об этих возможностях редактирования. Так что полезно напоминать им об этом соответствующими подсказками.

Свойство AutoSelect определяет, будет ли автоматически выделяться весь текст при передаче фокуса в окно редактирования. Его имеет смысл задавать равным true в случаях, когда при переключении в данное окно пользователь будет скорее заменять текущий текст, чем исправлять его. Имеются также свойства только времени выполнения SelLength, SelStart, SelText, определяющие соответственно длину выделенного текста, позицию перед первым символом выделенного текста и сам выделенный текст. Например, если в окне имеется текст «выделение текста» и в нем пользователь выделил слово «текста», то SelLength = 6, SelStart = 10 и SelText = 'текста'. Если выделенного текста нет, то свойство SelStart просто определяет текущее положение курсора.

Окна редактирования можно использовать и просто как компоненты отображения текста. Для этого надо установить в true их свойство ReadOnly и целесообразно установить AutoSelect в false. В этом случае пользователь не сможет изменять отображаемый текст, и окно редактирования становится подобным меткам, рассмотренным в разделе 3.3.2. Но имеются и определенные отличия. Во-первых, окна редактирования оформлены несколько иначе (сравните рис. 3.4 и 3.5.). А главное -- окна редактирования могут вмещать текст, превышающий их длину. В этом случае пользователь может прокручивать этот текст, перемещая курсор в окне. Такими особенностями не обладает ни одна метка.

При использовании окон редактирования для вывода, ввода и редактирования чисел необходимо использовать функции взаимного преобразования строк и чисел. Для вывода это описанные при рассмотрении меток функции FloatToStr и IntToStr. При вводе это функции StrToFloat -- преобразование строки в значение с плавающей запятой, и StrToInt -- преобразование строки в целое значение. Если вводимый текст не соответствует числу (например, содержит недопустимые символы), то функции преобразования генерируют исключение EConvertError. Поэтому в программе необходимо предусмотреть обработку этого исключения. Например:

var A: integer;

try

A := StrToInt(Edit1.Text);

...{операторы, использующие переменную А}

except on EConvertError do

ShowMessage('Вы ввели ошибочное число;

повторите ввод');

Этот код обеспечивает сообщение пользователю об ошибке ввода и предотвращает ошибочные вычисления. Впрочем, это не лучший вариант предотвратить ошибочный ввод, поскольку пользователь узнает о своей ошибке только после того, как программа пытается использовать введенные данные. Лучше, если пользователь просто не сможет ввести неправильные символы. Например, если вы хотите, чтобы пользователь мог вводить в окно редактирования Edit только цифры и символ точки, вы можете в обработчик события OnKeyPress этого компонента вставить оператор:

if not (Key in ['0'..'9', ',']) then Key := #0;

Этот оператор подменит все символы, кроме цифр и запятой, нулевым символом, который не занесется в текст окна Edit.

Свойство MaxLength определяет максимальную длину вводимого текста. Если MaxLength = 0, то длина текста не ограничена. В противном случае значение MaxLength указывает максимальное число символов, которое может ввести пользователь.

Свойство Modified, доступное только во время выполнения, показывает, проводилось ли редактирование текста в окне. Если вы хотите использовать это свойство, то в момент начала работы пользователя с текстом Modified надо установить в false. Тогда при последующем обращения к этому свойству можно по его значению (true или false) установить, было или не было произведено редактирование.

Свойство PasswordChar позволяет превращать окно редактирования в окно ввода пароля. По умолчанию значение PasswordChar равно #0 -- нулевому символу. В этом случае это обычное окно редактирования. Но если в свойстве указать иной символ (например, символ звездочки «*»), то при вводе пользователем текста в окне будут появляться именно эти символы, а не те, которые вводит пользователь Тем самым обеспечивается секретность ввода пароля.

Компонент MaskEdit отличается от Edit тем, что в нем можно задать строку маски в свойстве EditMask. Маска состоит из трех разделов, между которыми ставится точка с запятой (;). В первом разделе -- шаблоне записываются специальным образом символы которые можно вводить в каждой позиции, и символы, добавляемые самой маской; во втором разделе записывается 1 или 0 в зависимости от того, надо или нет, чтобы символы, добавляемые маской, включались в свойство Text компонента; в третьем разделе указывается символ, используемый для обозначения позиций, в которых еще не осуществлен ввод. Прочитать результат ввода можно или в свойстве Text, которое в зависимости от вида второго раздела маски включает или не включает в себя символы маски, или в свойстве EditText, содержащем введенный текст вместе с символами маски.

Таблица 2.1

Символы шаблона маски

!

Наличие символа «!» означает, что в EditText недостающие символы предваряются пробелами, а отсутствие символа «!» означает, что пробелы размещаются в конце.

>

Символ «>» означает, что все последующие за ним символы должны вводиться в верхнем регистре, пока не кончится маска или пока не встретится символ «<».

<

Символ «<» означает, что все последующие за ним символы должны вводиться в нижнем регистре, пока не кончится маска или пока не встретится символ «>».

<>

Символы «<>» означают, что анализ регистра не производится.

\

Символ «\» означает, что следующий за ним символ является буквенным, а не специальным, характерным для маски. Например, символ «>» после символа «\» воспримется как знак >, а не как символ, указывающий на верхний регистр.

L

Символ «L» означает, что в данной позиции должна бытъ буква.

l

Символ «l» означает, что в данной позиции может быть только буква или ничего.

A

Символ «А» означает, что в данной позиции должна быть буква или цифра.

a

Символ «а» означает, что в данной позиции может быть буква, или цифра, или ничего.

C

Символ «С» означает, что в данной позиции должен быть любой символ.

c

Символ «с» означает, что в данной позиции может быть любой символ или ничего.

0

Символ «0» означает, что в данной позиции должна быть цифра.

9

Символ «9» означает, что в данной позиции может быть цифра или ничего.

#

Символ «#» означает, что в данной позиции может быть цифра, знак «+», знак «-» или ничего.

:

Символ «:» используется для разделения часов, минут и секунд.

/

Символ «/» используется для разделения месяцев, дней и годов в датах.

Символ « » означает автоматическую вставку в текст пробела.

Вводить маску можно непосредственно в свойство Edit Mask. Но удобнее пользоваться специальным редактором масок, вызываемым при нажатии кнопки с многоточием в строке свойства Edit Mask в Инспекторе Объектов.

В редакторе масок окно Sample Masks содержит наименования стандартных масок и примеры ввода с их помощью. В окно Input Mask надо ввести маску. Если вы выбираете одну из стандартных масок, то окно Input Mask автоматически заполняется, и вы можете, если хотите, отредактировать эту маску. Окно Character for Blanks определяет символ, используемый для обозначения позиций, в которых еще не осуществлен ввод (третий раздел маски). Индикатор Save Literal Charactersопределяет второй раздел маски: установлен, если второй раздел равен 1, и не установлен, если второй раздел равен 0.

Рис. 2.1 Окно редактора масок с загруженными файлами стандартных масок: американский

Рис. 2.2 Окно редактора масок с загруженными файлами стандартных масок: российский

Кнопка Masks позволяет выбрать и загрузить какой-либо другой файл стандартных масок. К сожалению, среди файлов стандартных масок, поставляемых с Delphi, отсутствует маска, соответствующая российским стандартам. Но вы легко можете сами сделать себе такой файл стандартных масок. Он делается в обычном текстовом редакторе и должен сохраняться как «только текст» с расширением.dem. Чтобы редактор масок Delphi видел этот файл, его надо сохранить в каталоге Delphi BIN. Каждая строка файла состоит из трех частей, разделяемых символом вертикальной черты. Первая часть состоит из пояснительного текста, появляющегося в левой панели окна Sample Masks редактора масок. Вторая часть -- пример, который появляется в правой панели окна Sample Masks редактора масок. А третья часть -- сама маска.

Однострочный редактор, или поле редактирования (поле ввода), представляет собой поле ввода текста, в котором возможно отображение и изменение текста. В Delphi есть несколько однострочных редакторов, из них наиболее часто используется компонент Edit.

Компонент Edit позволяет вводить и редактировать с клавиатуры различные символы, при этом поддерживаются операции, такие как перемещение по строке с использованием клавиш управления курсором, удаление символов с помощью клавиш <Backspace> и <Delete>, выделение части текста и др. Отметим, что у однострочного редактора отсутствует реакция на управляющие клавиши <Enter> и <Esc>. Для изменения регистра символов в поле редактирования служит свойство СharСase типа TEditcharCase, которое может принимать одно из трех значений:

ecLowerCase -- текст преобразуется к нижнему регистру;

ecNormal -- регистр символов не изменяется (по умолчанию);

ecUpperCase -- текст преобразуется к верхнему регистру.

Компонент MaskEdit также является однострочным редактором, но по сравнению с компонентом Edit он предоставляет дополнительную возможность ввода информации по шаблону. С помощью шаблона (маски) можно ограничить число вводимых пользователем символов, тип вводимых символов (алфавитный, цифровой и т. д.). Кроме того, во вводимую информацию можно вставить дополнительные символы (разделители при вводе даты, времени и т. п.). С помощью редактирования по маске удобно вводить телефонные номера, даты, почтовые индексы и другую информацию заранее определенного формата.

2.2 Интерфейс приложения

Интерфейс состоит из 3-х компонентов image, с 28-ми компонентов button, 2 компонента maskedit. Нижний maskedit для показа времени компьютера, на котором была активирована программа, а верхний, ведет отчет времени программы, по умолчанию это запуск компьютера.

Панель вокруг формы, отсутствует. Первоначальный интерфейс приложения показан на рисунке 2.3.

Рис. 2.3 Интерфейс

При нажатии на нижнюю черную панель интерфейс преобразуется (см. рисунок 2.4).

Рис 2.4 Полный интерфейс гаджета

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

Принцип работы гаджета состоит в том, что по нажатию по определенным кнопкам с определенным значением, которое записано на кнопке, отключиться компьютер, и точно так же можно будет отменить вылючение компьютера, нажатием на кнопку с надписью “Отключить таймер”

2.3 Описание кода программы

Для работы гаджета нужно добавить следующие модули выделенные жирным шрифтом в раздел описания модулей, который начинается с служебного слова Uses:

uses

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

Dialogs, ExtCtrls, StdCtrls, shellapi, Mask, Registry, jpeg;

При создании приложения были использованы следующие переменные:

var

Form1: TForm1;

a,b,c:TTime; //используем переменные с типом времени

procedure TForm1.Button3Click(Sender: TObject);

begin

ShellExecute(handle, nil,'shutdown',' -a','', SW_SHOWNORMAL); //код

отменяющий отключение компьютера

end;

Заключение

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

За прошедшие 15 лет в методологии написания программ для компьютеров произошла радикальная перемена. Она состоит в том, что разработчики перешли от языков программирования системного уровня, таких как С и С++, к языкам описания сценариев, примерами которых могут служить Perl Tcl. Хотя в эту перемену оказалось вовлечено огромное количество людей, лишь немногие из них осознают, что в действительности происходит, и еще меньше найдется таких, кто бы смог объяснить причины.

Эти языки создавались для различных целей, что обусловило ряд фундаментальных различий между ним. Системные разрабатывались для построения структур данных и алгоритмов “с нуля”, начиная от таких примитивных элементов, как слово памяти компьютера. В отличие от этого, языки описания сценариев создавались для связывания готовых программ. Их применение подразумевает наличие достаточного ассортимента мощных компонентов, которые требуется только объединить друг с другом. Языки системного уровня используют строгий контроль типов, что помогает разработчикам приложений справляться со сложными задачами; языки же описания сценариев не используют понятие типа, что упрощает установление связей между компонентами и ускоряет разработку прикладных систем.

Языки этих двух типов является взаимодополняющими, и большинство компьютерных платформ еще с середины 60-х годов оснащаются как теми, так и другими. В компонентных инфраструктурах они применяются, как правило, совместно компоненты создаются на языках программирования системного уровня, а для их связи между собой используются языки описания сценариев. Однако ряд современных тенденции, включая появление более быстрых машин и более совершенных языков описания сценариев, повышение значимости графического интерфейса пользователя и компонентных архитектур, а также рост популярности Internet, чрезвычайно расширили сферу применимости языков описания сценариев. Развитие этих тенденции продолжиться и в следующем десятилетии, вследствие чего все больше приложении будет создаваться целиком и полностью на языках описания сценариев, а роль языков программирования системного уровня сведется почти исключительно к созданию компонентов.

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

Список использованной литературы

1. Э. Таненбаум, А. Вудхалл. «Операционные системы: Разработка и реализация.» -- СПб.: 2006.

2. Э. Таненбаум. «Современные операционные системы. 2-е изд.» -- СПб.: Питер, 2005. -- 1038 с.

3. Серафимов В.В., Лермонтов В.В., -- Часы // Энциклопедический словарь Брокгауза и Ефрона: В 86 томах (82 т. и 4 доп.). -- СПб., 1890--1907.

4. Роберт У. Себеста. Основные концепции языков программирования. -- 5-е изд. -- М.: Вильямс, 2001. -- 672 с.

5. В.Л. Шило «Популярные цифровые микросхемы» М. 1989 г

6. Н.Н. Васерин «Применение полупроводниковых индикаторов» М. 1991 г.

7. Ю.И. Степанов «Справочник по ЕСКД» К. 1975 г.

8. А. Уильямс «Применение интегральных схем» М. 1987 г.

9. С.А. Бирюков «Цифровые устройства на интегральных микросхемах» М.1991 г.

10. Информатика и информационные технологии. Конспект лекций. Романова Ю.Д., Лесничая И.Г. (2009, 320 с.)

11. Информатика и информационные технологии. Конспект лекций. Цветкова А.В. (2007, 192 с.)

12. Информатика и информационные технологии. Шпаргалки. Цветкова А.В. (2008, 32с.)

13. Информатика и компьютерные технологии. Основные термины. Толковый словарь. Фридланд А.Я. и др. (2003, 3-е изд., 272 с.)

14. Информатика и основы программирования. (Учебное пособие) Меняев М.Ф. (2007, 458 с.)

15. Информатика и программирование. (УМК) Комлева Н.В., Смирнов А.А., Хрипков Д.В. (ЕАОИ; 2008, 94с.)

16. Информатика. (Учебник) Соболь Б.В. и др. (2007, 3-е изд, 446 с.)

17. Информатика. (Учебник) Под общ. ред. А.Н. Данчула (2004, 528с.)

18. Информатика. (Учебник) Каймин В.А. (2001, 2-е изд., 272с.)

19. Информатика. (Учебное пособие) Горяев Ю.А. (МИЭМП; 2005, 116с.)

20. Архитектура компьютера. Таненбаум Э.С. (2007, 844с.)

Размещено на Allbest.ru


Подобные документы

  • Теоретические сведения о таймерах Windows. Описание используемых WinAPI функций для измерения текущего времени, для создания виртуальных таймеров. Выключение и перезагрузка компьютера по нажатию на кнопку и по таймеру, вывод текущей даты и времени.

    курсовая работа [50,0 K], добавлен 18.05.2014

  • Среда программирования Embarcadero RAD Studio. Создание окна, которое отображает системную дату и время. Выполнение выбранного действия в определенный промежуток времени, заданный пользователем. Руководство программиста. Минимальные системные требования.

    курсовая работа [85,2 K], добавлен 16.06.2014

  • Разработка приложения, которое будет выполнять функции показа точного времени и точной даты. Определение дополнительных функций разработанного приложения. Рассмотрение основных этапов создания программного продукта. Результаты тестирования приложения.

    курсовая работа [2,2 M], добавлен 14.04.2019

  • Описание истории развития информационных технологий. Исследование предпочтений по использованию программного обеспечения пользователя персонального компьютера начального уровня и разработка интерфейсного приложения в среде программирования Delphi.

    дипломная работа [2,0 M], добавлен 14.01.2012

  • Общая характеристика командного интерфейса приложения в системе 1С: Предприятия. Особенности объектов конфигурации: справочников, документов, регистров накопления и отчетов. Разработка интерфейса приложения "Ремонт техники (от компьютера до пылесоса)".

    курсовая работа [2,8 M], добавлен 06.11.2013

  • Составление сметы покупки персонального компьютера на основе имеющихся в продаже отдельных комплектующих как основная функция приложения. Основные требования к данным и транзакциям. Инфологическое, даталогическое и функциональное проектирование.

    курсовая работа [1,5 M], добавлен 07.08.2013

  • Таймер в Windows как устройство ввода информации, которое извещает приложение о том, что истек заданный интервал времени. Работа с таймером в условиях WinAPI, процесс 32-битного программирования на ассемблере под Windows. Результат выполнения программы.

    курсовая работа [165,6 K], добавлен 18.05.2014

  • Краткая история UML. Объектный подход к разработке программных средств. Визуальная среда программирования С++ Builder. Сведения о диаграмме вариантов использования. Диаграмма классов программы "Вычисления нерабочих дней". Алгоритм работы программы.

    курсовая работа [545,0 K], добавлен 31.10.2011

  • Использование драйвера режима ядра и управляющего приложения для создания системных потоков. Имитация обработки данных и организация задержек. Разработка драйвера на языке C++. Конфигурация тестового стенда. Точность изменения задержек и работы таймера.

    курсовая работа [182,4 K], добавлен 24.06.2009

  • Разработка программы создания заметок в любом месте компьютера. Выбор технологии, языка и среды разработки приложения. Описание основных алгоритмов работы программного обеспечения. Проектирование пользовательского интерфейса. Выбор стратегии тестирования.

    отчет по практике [700,5 K], добавлен 24.11.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.