Робота з таймером
Visual Component Library, VCL (бібліотека візуальних компонентів) — об'єктно-орієнтована бібліотека для розробки програмного забезпечення, розроблена компанією «Borland» для підтримки принципів візуального програмування. VCL входить в комплект постачання «Delphi», «C++ Builder» і «Borland Developer Studio» і є, по суті, частиною середовища розробки, хоча розробка застосунків в цих середовищах… Читати ще >
Робота з таймером (реферат, курсова, диплом, контрольна)
Міністерство освіти і науки України Чернігівський радіомеханічний технікум Робота з таймером ПОЯСНЮВАЛЬНА ЗАПИСКА до курсового проекту з предмету
«Системне програмування»
ЧРМТ 119 606.47 ПЗ Розробив:
студент групи КС-0706
Капля В. В Керівник проекту:
Міненок К.О.
ЗМІСТ Вступ
1. Аналіз задачі
2. Визначення шляхів і методів розв’язання задачі
3. Розробка блок-схеми програми
4. Розробка інтерфейсу користувача
5. Розробка програми
5.1 Підключення бібліотек
5.2 Опис змінних
5.3 Опис функцій
5.4 Розробка схеми взаємодії модулів
Висновки
Література
ВСТУП
Таймер (англ. Time — час) — прилад виробничо-технічного, військового або побутового призначення, в заданий момент часу видає певний сигнал, або включає - вимикає яке або обладнання через свій пристрій комутації електроланцюга. Здебільшого під таймерами маються на увазі пристрої, що відмірюють заданий інтервал часу з моменту запуску (вручну або електричним імпульсом) з секундоміром зворотного відліку, разом з тим, існують таймери, момент спрацювання яких задається установкою необхідного часу доби (так звані таймери реального часу), в цьому випадку таймер має у своєму складі годинник або пристрій. Також, існують програмні таймери, що реалізують подібні функції. У програмуванні, таймером є об'єкт, збудливий подія після закінчення заданого проміжку часу. Подією є посилка повідомлення, виклик функції, встановлення параметрів об'єкта ядра і т.д. Зазвичай, даний тип таймерів підтримується операційною системою, причому часто підтримка таймерів існує на рівні апаратури.
Головною характеристикою таймера є його точність — мінімальний гарантовано витримує інтервал часу. За цим параметром таймери ділять на:
— малоточні (помилка вимірювання може досягати 0,1 с) ;
— точні (помилка вимірювання не перевищує 0,001 с) ;
— надточні (помилка вимірювання не перевищує 10 -6 c) .
Існують два види таймерів:
— апаратні таймери функціонують незалежно від центрального процесора і у момент спрацьовування посилають переривання;
— програмні таймери реалізуються за рахунок виконання у циклі заданої кількості однакових «порожніх» операцій. При фіксованій частоті роботи процесора це дозволяє точно визначати минулий час. Головними мінусами такого методу є: залежність кількості ітерацій циклу від типу і частоти процесора, неможливість виконання інших операцій під час затримки.
Класифікація за принципом відліку часу:
— таймери інтервалів часу;
— таймери поточного (реального) часу.
Класифікація за вихідним впливом:
— таймери з електричним вихідним сигналом (електричний потенціал, імпульси або цифровий код) ;
— таймери зі звуковою або візуальної сигналізацією.
Завданням курсового проекту є розробка програми на мові програмування С++ в середовищі Borland C++ Builder, яка надає можливість відкривати певну программу в певний час або через певний час. Програма повинна встановлюватися на комп’ютері за допомогою інсталятора.
Мета курсового проекту: вивчити основні функції роботи з часом, удосконалити знання про мову С++ і вивчити принципи взаємодії периферійних пристроїв з програмою.
1. АНАЛІЗ ЗАДАЧІ
Для вирішення даної задачі застосовується програма Borland C++ Builder 6, оскільки вона завоювала достатньо міцні позиції серед професійних та початкових програмістів. Для того, щоб розв’язати задачу в цілому, потрібно вирішити наступні підзадачі:
— створення інтерфейсу користувача ;
— можливість запускати та відключати таймер ;
— можливість запускати та відключати будильник;
— вихід з програми ;
— можливість запуску програми, яка буде здійснюватись після закінчення часу ;
— створення і настройка інсталятора.
Програму можно вдосконалити додавши:
запуск програми в певний час та дату;
запуск програм після програвання декількох пісень в winamp чи іншому програвачі;
запуск програми через деякий час бездіяльності системи.
2. ВИЗНАЧЕННЯ ШЛЯХІВ І МЕТОДІВ РОЗВ’ЯЗАННЯ ЗАДАЧІ
C++ - універсальна мова програмування високого рівня з підтримкою декількох парадигм програмування. Зокрема: об'єктно-орієнтованої та процедурної. Розроблена Б’ярном Страуструпом (англ. Bjarne Stroustrup) в AT&T Bell Laboratories (Мюррей-Хілл, Нью-Джерсі) у 1979 році та названа «С з класами». Страуструп перейменував мову у C++ у 1983 р. Базується на мові Сі. Визначена стандартом ISO/IEC 14 882:2003.
Будучи одним із найбільш популярних мов програмування, C++ широко використовується для розробки програмного забезпечення. Область його застосування включає операційні системи, прикладні програми, драйвери пристроїв, додатки для вбудованих систем, високопродуктивні сервери, а також розважальні програми, наприклад, відеоігри.
При створенні С++ прагнули зберегти сумісність з мовою С. Більшість програм на С справно працюватимуть і з компілятором С++. С++ має синтаксис, заснований на синтаксисі С.
Нововведеннями С++ порівняно з С є:
підтримка об'єктно-орієнтованого програмування через класи;
підтримка узагальненого програмування через шаблони;
доповнення до стандартної бібліотеки;
додаткові типи даних;
обробка винятків;
простори імен;
вбудовані функції;
перевантаження операторів;
перевантаження імен функцій;
посилання і оператори управління вільно розподіленою пам’яттю.
Функція Timer (вкладка System). Таймер дозволяє генерувати події OnTimer з частотою, яка визначається його властивістю Interval. За замовчуванням воно дорівнює 1000 мілісекунд (або одній секунді). Коли викликається обробник події OnTimer, відбувається скидання таймера і відлік проміжку часу, визначеного властивістю Interval, починається знову. В якості обробника події виступить висновок поточного часу на панель з використанням її властивості Caption.
Щоб отримати поточний час в средовищі Borland C++ Builder є функція Time (); для отримання — поточної дати — Date (). Обидві ці функції повертають значення типу TDateTime. Розглянемо його докладніше. Цей тип являє собою число з плаваючою точкою, ціла частина якого містить число днів, відлічених від 0 годин 30 грудня 1899 року, а дробова частина дорівнює частині 24-годинного дня, відлічених від полудня (12 годин). Тобто дробова частина характеризує час і не відноситься до дати. Подібний спосіб представлення даних не дуже-то зручний для практичного використання, тому в середовищі Borland C + + Builder є ряд функцій для перетворення типу TDateTime в більш легкотравну форму — рядок (AnsiString). Функція DateToStr () виводить у рядок дату, TimeToStr () — час, а DateTimeToStr () — дату і час, причому форма представлення даних визначається установкою глобальних змінних (залежить від налаштувань Вашої операційної системи).
Поточний час перетворюється функцією Time () у рядок і привласнили її властивості Caption панелі. Оскільки подібне присвоювання буде відбуватися кожну секунду по події OnTimer, це буде найпростіший електронний годинник.
Функція DateTimePicker, розташованого на вкладці Win32 палітри компонентів. Функція може працювати в двох режимах, що визначаються властивістю Kind: введення часу (значення dtkTime) і введення дати (dtkDate).
Задавши хвилину і годину побудки програма буде перевіряти зберігши значення в оголошених раніше змінних iAlarmHours і iAlarmMinutes. Для цього потрібно скористалися властивістю Time компонента TimePicker, в якому користувач задав час оповіщення. Воно і було збережено у властивості Time (тип значення TDateTime). Потім перетворити користувальницький час в рядок з використанням функції FormatDateTime (). Вона набагато зручніше, ніж функції доступу до властивостей дати-часу, згадані вище, тому що дозволяє форматувати висновок даних. Як перший аргумент функція приймає рядок — прапор формату виводу даних, а в якості другого — час або дату (тип значення TDateTime), яку потрібно перетворити.
Для часу специфікатора висновку можуть бути наступними:
h — друк години без початкового нуля (0−23);
hh — друк години з початковим нулем (00−23);
n — друк хвилин без початкового нуля (0−59);
nn — друк хвилин з початковим нулем (0−59);
s — друк секунд без початкового нуля (0−59);
ss — друк секунд з початковим нулем (0−59).
Функція StrToInt конвертує рядок з цілим значенням — IntegerString, такий як '123 ', в ціле Integer
Функція ShellExecute з бібліотеки Shell32. dll виконує операцію над вказаним файлом. ShellExecute не тільки запускає програми, а відкриває, редагує або друкує файл, з урахуванням зареєстрованої типу, а також відкриває вказану папку провідником.
Створення Windows-процесу здійснюється викликом однієї з таких функцій, як CreateProcess
Оператор вибору switch дозволяє вибрати ділянку коду для виконання по мітці, яка співпаде з виразом в конструкції оператора.
Smart Install Maker — це потужний і зручний засіб для створення інсталяторів. Програма має зручний та інтуїтивно зрозумілим інтерфейс, а також повний набор необхідних функцій для створення професійних інсталяторів з мінімальним розміром, високим ступенем стиснення файлів і приємним інтерфейсом.
Крім стандартного мінімуму, Smart Install Maker дозволяє редагувати системний реєстр і INI-файли, створювати програмні ярлики, запускати асоційовані і виконувані файли, реєструвати нові шрифти і ActiveX компоненти, відображати тексти інформації і ліцензійної угоди. Також, за допомогою цієї утиліти, ви зможете створити багатомовними інсталятори з підтримкою більше 20-ти популярних мов світу.
Інсталятори, створені в середовищі Smart Install Maker мають невеликий розмір і підтримують чудовий формат стиснення Cab. Все це дозволяє створювати дійсно компактні дистрибутиви, які не створять проблем при їх розповсюдженні по інтернету.
Особливості Smart Install Maker:
сучасний стиль оформлення;
повністю настроюваний інтерфейс інсталятора;
невеликий розмір інсталяційного модуля;
підтримка алгоритму стиснення Cab;
підтримка багатомовних інсталяторів;
інтуїтивно зрозумілий інтерфейс користувача;
перевірка версії встановленого. NET Framework;
можливість використання змінних директорій;
можливість розбиття інсталятора на настановні диски.
Для створення інсталятора розробленої програми було обрано додаток FastInstall, тому що він зручний в користуванні має кольоровий інтерфейс. Також він має декілька форматів стиснення даних, що дозволяє створювати компактні інсталятори, які можна легко переміщувати на різних носіях інформації.
3. РОЗРОБКА БЛОК-СХЕМИ Зображення блок-схеми зображено на рисунку 3.1.
Рисунок 3.1 — Блок-схема програми
Після запуску програми спочатку необхідно визначити, що саме буде робити користувач — чи використовувати будильник, чи використовувати таймер для запуску програм нової задачі. Приклад дії, запуск програми на вибір користувача.
Під час відліку часу або запусту будильника можна зупинити їх роботу.
Після завершення відліку часу запускається програма як була вибрана.
4. РОЗРОБКА ІНТЕРФЕЙСУ КОРИСТУВАЧА
Інтерфейс користувача — сукупність засобів для обробки та відображення інформації, максимально пристосованих для зручності користувача; у графічних системах реалізовується багатовіконним режимом, змінами кольору, розміру, видимості (прозорість, напівпрозорість, невидимість) вікон, їх розташуванням, сортуванням елементів вікон, гнучкими налаштовуваннями як самих вікон, так і окремих їх елементів (файли, папки, ярлики, шрифти тощо), доступністю багатокористувацьких налаштувань.
Існують такі види інтрерфейсів:
— інтерфейс командного рядка (англ. command-line interface, CLI) — різновид текстового інтерфейсу користувача і комп’ютера, в якому інструкції комп’ютера даються тільки шляхом введення з клавіатури текстових рядків (команд). Також відомий під назвою консоль. Інтерфейс командного рядка може бути протиставлений системам управління програмою на основі меню, а також різних реалізацій графічного інтерфейсу. Формат виводу інформації в інтерфейсі командного рядка не регламентується; звичайно це простий текстовий вивід, але може бути і графічним, звуковим виводом тощо;
— графімчний інтерфемйс коримстувача (ГІК, англ. GUI, Graphical user interface) — інтерфейс між комп’ютером і його користувачем, що використовує піктограми, меню, і вказівний засіб для вибору функцій та виконання команд. Зазвичай, можливе відкриття більше, ніж одного вікна на одному екрані. ГІК — система засобів для взаємодії користувача з комп’ютером, заснована на представленні всіх доступних користувачеві системних об'єктів і функцій у вигляді графічних компонентів екрану (вікон, значків, меню, кнопок, списків і т. п.). При цьому, на відміну від інтерфейса командного рядка, користувач має довільний доступ (за допомогою клавіатури або пристрою координатного введення типу «миша») до всіх
видимих екранних об'єктів. Вперше концепція ГІК була запропонована вченими з дослідницької лабораторії Xerox PARC в 1970-х, але отримала комерційне втілення лише в продуктах корпорації Apple Computer. У операційній системі AMIGAOS ГІК з багатозадачністю був використаний в 1985 р. В даний час ГІК є стандартним складовим більшості доступних на ринку операційних систем. Приклади операційних систем, що використовують ГІК: Mac OS, Ubuntu, Microsoft Windows, NEXTSTEP, OS/2;
— SILKінтерфейс (Speech — промова, Image — образ, Language — мова, Knowlege — знання) — найбільш наближений до звичайного людського спілкування, оскільки під час його використання відбувається звичайна «розмова» людини та комп’ютера;
— семантичний (суспільний) інтерфейс — включає використання командного рядка, графічного, мовленнєвого та мімічного інтерфейсів. Головна його риса — це відсутність команд під час спілкування з комп’ютером. Запит формується природною для людини мовою у вигляді звязного тексту та образів.
В нашому видаку застосовується графічний інтрефейс, тому що використовуються вікна та різні графічні компоненти при створенні програми.
Для створення таймеру інтрефейсу програми застосовувались ряд компонентів:
а) компонент Button — це кнопка стандартного для даної графічної системи виду з написом, що вміє реагувати на клацання кнопки. Приклади використання цього компонента наведено на рисунку 4.1 ;
Мал 4.1 — Приклади використання компонента Button
б) RadioGroup — панелі групи радіокнопок. Це панель, яка може містити регулярно розташовані стовпцями та рядками радіо кнопки. Зображення цього компонента наведено на рисунку 4.2 .
Мал 4.2 — Зображення компонента RadioGroup
Приклад використання наведено на рисунку 4.3 ;
МАл 4.3 — Приклад RadioGroup
в) компонент GroupBox — панель не має таких широких можливостей завдання різних стилів оформлення. Але вона має вбудовану рамку з написом, яка зазвичай використовується для виділення на формі групи функціонально об'єднаних компонентів рисунок 4.4 ;
Мал. 4.4 — Зображення компонента GroupBox
г) компонент Edit — представляє собою однорядкове текстове поле, що служить для введення даних користувачем рисунок 4.5 ;
Мал 4.5 — Зображення компонента Edit
д) компонент UpDown — перетворює вікно редагування Edit в компонент, в якому користувач може вибирати ціле число, змінюючи його кнопками зі стрілками рисунок 4.6 ;
МАл 4.6 — Зображення компонента UpDown
е) компонет Label — для відображення різних написів на формі. Приклади використання цього компонента наведено на рисунку 4.7 ;
Мал 4.7 — Зображення компонента Label
є) компонет DateTimePicker — компонент має 2 властивості - режим вводу дати та режим вводу часу, його властивість Kind визначає режим роботи компонента: dtkDate — ввід дати, dtkTime — ввід часу. Приклад використання цього компонента наведено на рисунку 4.8;
Мал 4.8 — Приклад використання компонента DateTimePicker
ж) компонент Timer — дозволяє задавати в додатку інтервали часу. Приклад використання цього компонента наведено на рисунку 4.9.
Мал 4.9 — Приклад використання компонента Timer
5. РОЗРОБКА ПРОГРАМИ
5.1 Підключення бібліотек Для підключення бібліотек в Borland C++ Builder використовується директива include. При написанні програми було підключено 3 бібліотеки:
Visual Component Library, VCL (бібліотека візуальних компонентів) — об'єктно-орієнтована бібліотека для розробки програмного забезпечення, розроблена компанією «Borland» для підтримки принципів візуального програмування. VCL входить в комплект постачання «Delphi», «C++ Builder» і «Borland Developer Studio» і є, по суті, частиною середовища розробки, хоча розробка застосунків в цих середовищах можлива і без використання VCL. VCL представляє величезну кількість готових до використання компонентів для роботи в найрізноманітніших областях програмування, таких, наприклад, як інтерфейс користувача (екранні форми і т.зв. «контроли»), робота з базами даних, взаємодія з операційною системою, програмування мережевих застосунків і інше;
— для роботи з часом потрібно підключити бібліотеку sys/timeb.h. ftime визначає поточний час і заповнює поля структури типу timeb, також зберігає поточний час в цій структурі. time — це поле містить час у секундах 00:00:00 1 січня 1970 по грінвічським меридіану;
— windows. h є Windows-конкретний файл заголовків для мови C програмування, який містить заяви для всіх функцій у Windows API, всі загальні макроси, які використовуються програмістами вікон, і всі типи даних, використовуваних різними функціями і підсистем. Він визначає велику кількість вікон конкретні функції, які можуть бути використані в С. Win 32 API можуть бути додані до проекту програмування C, включивши заголовка файлу та посилання на відповідні бібліотеки.
— Unit1. h — ця бібліотека вказує на те, що в текст модуля повинен бути включений відповідний заголовний файл.
5.2 Опис змінних Змінна — це іменована деяким чином область пам’яті в якій зберігається дані певного типу, змінного ім'я та значення. Перед виконанням змінна повинна бути оголошеною.
double a, b, n; //змінні a, b, n — числа з плаваючою комою Для оголошення змінних використовуються такі типи даних:
Int — цілі числа;
Char — символьний тип даних;
Bool — логічний тип;
Double — тип для чисел з плаваючою комою;
Float — числа з плаваючою комою;
String — зберігає послідовність символів (пропозиції).
Для типів даних ще можна застосувати специфікатори типів такі, як short (короткий), long (довгий), signed (знаковий), unsigned (беззнаковий).
В даній курсовій роботі було використано такі змінні:
iHours — типу int, для, відображення теперішньої години;
iMinutes — типу int, для відображення теперішньої хвилини;
iSeconds — типу int, для відображення теперішньої секунди;
iAlarmHours — типу int, для запам’ятовування години оповіщення;
iAlarmMinutes — типу int, для запам’ятовування хвилини оповіщення;
iAlarmSeconds — типу int, для запам’ятовування секунди оповіщення.
5.3 Опис функцій Функція — в програмуванні - це пойменована частина програми, яка може викликатися з інших частин програми стільки разів, скільки необхідно.
Функція, на відміну від процедури, обов’язково повертає значення.
З точки зору теорії систем, функція в програмуванні - окрема система (підсистема, підпрограма), на вхід якої надходять керуючі впливу у вигляді
значень аргументів. На виході функція повертає результат, який може бути як скалярною величиною, так і векторним значенням (структура, індексний масив і т.п.). По ходу виконання функції можуть виконуватися, також, деякі зміни у керованій системі, причому як оборотні, так і незворотні.
При розробці програми були задіяні такі функції:
функції StrToFloat та FloatToStr — перетворення рядка в число і навпаки;
функція TimeTOStrвыведення поточного часу ;
функція StrToInt конвертує рядок з цілим значенням — IntegerString;
функція FormatDateTime, працювати будемо з часом;
функція Timer (вкладка System). Таймер дозволяє нам генерувати події OnTimer з частотою, яка визначається його властивістю Interval;
функція DateTimePicker представляє елемент управління Windows, який дозволяє вибрати дату і час і відобразити їх у вказаному форматі.
5.4 Розробка схеми взаємодії модулів програма таймер змінний інтерфейс Схема — графічне представлення визначення, аналізу або методу вирішення задачі, у якому використовуються символи для позначення операцій, даних, потоку, обладнання і т. д.
Схеми алгоритмів, програм, даних і систем складаються з символів що мають певні значення, короткого тексту пояснення і сполучних ліній.
Була розроблена схема взаємодії модулів системи (рисунок 5.1).
Рисунок 5.1- Схема взаємодії модулів програми
ВИСНОВКИ В ході курсової роботи було таймер на С++. Під час написання курсового проекту були закріплені і поглиблені теоретичні знання, отриманні в процесі вивчення питань з предмету «Системне програмування «, і був використаний вивчений матеріал для розробки програми.
Був проведений детальний аналіз задачі, в якому визначились основні підзадачі для вирішення задачі в цілому.
Було визначено шляхи і методи розв’язання задачі. Розглянуто основні функції роботи з графікою. Визначено, що таке інсталятор і які види його бувають.
Для вирішення задачі було розроблено алгоритм програми і накреслена блок-схема .
Далі було розроблено інтерфейс користувача, де детально розглянуто призначення кожного компонента.
Після визначення методів, написання алгоритму і розробки інтерфейсу відбулась розробка програми. Було описано всі змінні, що використовувались в програмі. Розглянуто бібліотеки, що підключаються до програми і описано всі функції, що використовувались: виведення стандартних фігур, зміна кольорів фону та контуру, очищення екрану, можливість збереження та відкриття графічних файлів.
При розробці програми ніяких зіткнень з проблемами не відбулось.
Цю програму можна б було вдосконалити, збільшивши можливості програми, наприклад, запуск програм після програвання декількох пісень в winamp чи іншому програвачі, також при певній бездіяльності системи.
ЛІТЕРАТУРА
1. Архангельский А. Я. — Приемы программирования в C++Builder 6 и 2006, издательство «Бином-Пресс», 2006 г.
2. А. Я. Архангельский Программирование в C++ Builder 6
3. А. Я. Архангельский. C++ Builder 6 СПРАВОЧНОЕ ПОСОБИЕ Книга 2
4. Бондарев В. М., Марченко Ю. С. Программирование на языке С++: Учеб. Пособие — Харьков: ХТУРЕ, 1998.
5. В. В. Подбельский. Язык С++.(М: Финансы статистика, 2000. 560 с.
6. Д. Элджер. Библиотека программиста С++. С.-Петербург: Птр, 2000. 320 с.
7. Д. Либерти. Освой С++за 21 день. 3-е издание, 1999. — 250 с.
8. Ермолаев В., Сорока Т. C++ Builder Книга рецептов — 2006
9. Культин Н. Б. Самоучитель C++ Builder
10. Культин Н. Б. С/C++ в примерах и задачах. — - СПб.: БХВ — Петербург, 2001. — 288 с., ил.
11. Леонтьев В. П. — Новейшая энциклопедия персонального компьютера 2004, издательство «ОЛМА-ПРЕСС Образование» 129 075, Москва, Звездный бульвар, 23А, стр. 10, ЗАО «ОЛМА МЕДИА ГРУПП».
12. Подбельский В. В., Фомин С. С. Программирование на языке Си: Учеб. Пособие.- 2-е доп.изд.-М.: Финансы и статистика, 1999.
13. Проценко В. С. и др. Техника программировавния на языке Си.: Учеб. Пособие. — К.: Либідь
14. С. Б. Липман. Язык программированич С++. Вводный курс. 3-е издание, 1998. — 283с.
15 Страустрап Б. Язык программирования С++, 3-е изд.: «Невский Диалект" — Издательство «БИНОМ», 1999
www.