Програма "Планувальник подій"

Особливості, переваги, недоліки та перспективи використання програми С++. Опис предметної області та постановка задачі для розробки програми "Планувальник подій". Інформаційна структура моделі та алгоритму. Інтерфейс та керівництво користувача.

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

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

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

Размещено на http://www.allbest.ru/

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

Природничо-гуманітарний коледж

Закарпатського державного університету

Програма «Планувальник подій»

Курсова робота з дисципліни «Основи програмування та алгоритмічні мови»

Мигалко Михайло студент ІІ курсу

групи КН-22 денної форми навчання

Науковий керівник:

Микуланинець Олександр Васильович

Ужгород 2012

Зміст

Вступ

1. Теоретична частина

1.1 Загальні відомості по С++

1.2 Опис предметної області та постановка задачі

1.3 Обґрунтування вибору методу розв'язку задачі

2. Практична частина

2.1 Інформаційна структура моделі та алгоритму

2.1.1 Функціональні частини програми

2.1.2 Вхідні-вихідні дані окремих модулів

2.1.3 Опис алгоритму

2.2 Тестування моделі

2.3 Інтерфейс та керівництво користувача

Висновок

Список використаної літератури

Додаток 1 Лістинг програми

Вступ

інтерфейс програма планувальник подія

Курсова робота - це перший серйозний крок у навчанні, адже саме з неї починається усвідомлення значимості того, чим має займатись справжній програміст. Насамперед, треба зазначити важливість програми, котра була створена за час даної курсової роботи. Тема програми звучить наступним чином: « Розробка програми календарне планування подій».

Що ж являє собою календарне планування? По-перше, календарне планування передбачає визначення моментів початку й закінчення кожної роботи, по-друге, враховуючи те, що більшість людей часто планує на перед свої справи ця програма може стати для них хорошим нагадуванням про день народження дружини, чи приїзд тещі, а може хтось просто забуває зранку чистити зуби (ну що ж і таке буває), тому багато людей завдячують цій програмі врятованими нервовими клітинами, змогою вчасно піти з дому чи приємним запахом з рота.

Повернемось до мови програмування за допомогою якої було створено «календарне нагадування». Це мова С++ Builder. Вона є досить легкою в освоєнні і зручною в використанні, до того ж, основним фактором є те, що саме її вивчають на другому курсі всі програмісти коледжу.

Календарне планування важливе також тим, що дає змогу вчасно виконувати всі заплановані речі, без будь - яких інших допоміжних девайсів. Також, можна зазначити необхідність його використання як у сфері бізнесу, де часто приходиться використовувати подібні методи планування назначених зустрічей, подій, договорів, зокрема кожна сфера в тій чи іншій мірі потребує подібні програми, так як запам'ятати все - неможливо.

Отже, підбиваючи підсумки вступу можна сказати лише одне, так як у кожній програмі є свої плюси і мінуси, то мінусом даної програми є напевно, її простота, котра ж в свою чергу являється і плюсом, так як дає змогу освоїти її функції навіть звичайній, середньостатистичній людині, далекій від програмування. Загалом, всі плюси і мінуси створеної програми будуть розглянуті на протязі всього змісту, тому зациклюватись на них не будемо, просто детальніше розглянемо програму у наступних пунктах змісту.

1. Теоретична частина

1.1 Загальні відомості по С++

Інтерес до програмування постійно росте. Це пов'язано з розвитком і впровадженням в повсякденне життя інформаційних технологій. Якщо людина має справу з комп'ютером, то рано чи пізно у нього виникає бажання, а іноді і необхідність, навчитися програмувати. Серед користувачів персональних комп'ютерів в даний час найбільш популярна операційна система Windows, і природно, що той, хто хоче програмувати, хоче і писати програми, які працюватимуть в Windows.

Кілька років тому рядовому програмістові залишалося тільки мріяти про створення своїх власних програм, що працюють в Windows. Єдиним засобом розробки був Borland C++ for Windows, явно орієнтований на професіоналів, що володіють серйозними знаннями і досвідом. Бурхливий розвиток обчислювальної техніки, потребу в ефективних засобах розробки програмного забезпечення привели до появи на ринку цілого ряду систем програмування, орієнтованих на так звану "швидку розробку", серед яких особливо слід зазначити Microsoft Visual Basic і Borland Delphi. У основі систем швидкої розробки (RAD-систем, Rapid Application Development -- середовище швидкої розробки додатків) лежить технологія візуального проектування і подієвого програмування, суть якої полягає в тому, що середовище розробки бере на себе велику частину роботи по генерації коди програми, залишаючи програмістові роботу по конструюванню діалогових вікон і написанню функцій обробки подій. Продуктивність програміста при використанні RAD систем фантастична!

Успіх і популярність Delphi викликав бажання фірми Borland розповсюдити методи швидкої розробки на область професійного програмування, що і привело до появи Borland C++ Builder.

C++ Builder -- це середовище швидкої розробки, в якій як мова програмування використовується мова C++ Builder (C++ Builder Language). Не вдаючись до подробиць, можна сказати, що мова C++ Builder -- це розширений C++. Наприклад, в C++ Builder є строковий (Ansistring) і логічний (bool) типи, яких немає в класичному C++.

В даний час програмістам стала доступна чергова, шоста версія пакету -- Borland C++ Builder 6. Як і попередні версії, Borland C++ Builder 6 дозволяє створювати різні програми: від простих одновіконних застосувань до програм управління розподіленими базами.

Borland C++ Builder може працювати в середовищі операційних систем від Windows 98 до Windows XP. Особливих вимог, по сучасних мірках, до ресурсів комп'ютера пакет не пред'являє: процесор має бути типу Pentium або Celeron (рекомендується Pentium II 400 Мгц); об'єм оперативної пам'яті повинен складати не менше 128 Мбайт (рекомендується 256 Мбайт) і вільний дисковий простір має бути достатнім (для повної установки версії Enterprise необхідно приблизно 750 Мбайт).Система програмування Borland C + + Builder 6 завоювала досить міцні позиції серед професійних і початківців програмістів. Тут можна відзначити ряд причин: велику популярність мови програмування C + +, зручність візуального конструювання додатків, розвинені можливості доступних засобів системи, ефективність генерованого коду та інше

Незважаючи на появу сучасних технологій і відповідних систем програмування, таких як Visual C + +. Net, система C + + Builder буде стійко займати свою нішу. Це зумовлено меншою вимогливістю до апаратних ресурсів при розробці додатків, більшою легкістю в освоєнні і застосуванні засобів системи для розробки додатків різного ступеня складності.

Програма на C + + складається з оголошень (змінних, констант, типів, класів, функцій) і описів функцій. Серед функцій завжди є головна - main для консольних додатків (що працюють з WIN32) або WinMain для додатків Windows. Саме ця головна функція виконується після початку роботи програми. Зазвичай в C + + Builder ця функція дуже коротка і виконує тільки деякі підготовчі операції, необхідні для початку роботи. А далі при об'єктно-орієнтованому підході робота додатка визначається подіями, що відбуваються і реакцією на них об'єктів.

Як правило, програми будуються за модульним принципом і складаються з безлічі модулів. Принцип модульності дуже важливий для створення надійних і відносно легко модифікується і супроводжуваних додатків. Чітке дотримання принципів модульності в поєднанні з принципом приховування інформації дозволяє всередині будь-якого модуля проводити якісь модифікації, не зачіпаючи при цьому інших модулів і головний програму.

У C + + Builder всі об'єкти компонентів розміщуються в об'єктах - формах. Для кожної форми, яку ви проектуєте у своєму додатку, C + + Builder створює окремий модуль. Саме в модулях і здійснюється програмування завдання. У обробниках подій об'єктів - форм і компонентів, ви ставите всі свої алгоритми. В основному вони зводяться до обробки інформації, що міститься у властивостях одних об'єктів, і завданні за результатами обробки властивостей інших об'єктів. При цьому ви постійно звертаєтеся до методів різних об'єктів.

Згідно з принципами приховування інформації зазвичай текст модуля поділяють на заголовний файл інтерфейсу, який містить оголошення класів, функцій, змінних і т.п., і файл реалізації, в якому міститься опис функцій.

Стандартне розширення файлів реалізації - срр. Стандартне розширення заголовних файлів - h.

Після того як програма написана, на її основі повинен бути створений виконуваний файл (модуль). Цей процес здійснюється в кілька етапів.

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

Після закінчення роботи препроцесора починає працювати компілятор. Його завдання - перевести тексти модулів в машинний (об'єктний) код. У результаті для кожного вихідного файлу. Срр створюється об'єктний файл, що має розширення. Obj.

Після закінчення роботи компілятора працює компонувальник, який об'єднує об'єктні файли в єдиний завантажувальний виконуваний модуль, що має розширення. Ехе. Цей модуль можна запускати на виконання.

Особливості

При створенні С++ прагнули зберегти сумісність з мовою С. Більшість програм на С справно працюватимуть і з компілятором С++. С++ має синтаксис, заснований на синтаксисі С.

Нововведеннями С++ порівняно з С є:

· підтримка об'єктно-орієнтованого програмування через класи;

· підтримка узагальненого програмування через шаблони;

· доповнення до стандартної бібліотеки;

· додаткові типи даних;

· обробка винятків;

· простори імен;

· вбудовані функції;

· перевантаження операторів;

· перевантаження імен функцій;

· посилання і оператори управління вільно розподіленою пам'яттю.

Переваги мови C++

· Швидкодія. Швидкість роботи програм на С++ практично не поступається програмам на С, хоча програмісти отримали в свої руки нові можливості і нові засоби.

· Масштабованість. На мові C++ розробляють програми для найрізноманітніших платформ і систем.

· Можливість роботи на низькому рівні з пам'яттю, адресами, портами. (Що, при необережному використанні, може легко перетворитися на недолік.)

· Можливість створення узагальнених алгоритмів для різних типів даних, їхня спеціалізація, і обчислення на етапі компіляції, з використанням шаблонів.

· Підтримуються різні стилі та технології програмування, включаючи традиційне директивне програмування, ООП, узагальнене програмування, метапрограмування (шаблони, макроси).

Недоліки мови C++

· Наявність безлічі можливостей, що порушують принципи типобезпеки приводить до того, що в С++ програми може легко закрастися важковловима помилка. Замість контролю з боку компілятора розробники вимушені дотримуватися вельми нетривіальних правил кодування. По суті, ці правила обмежують С++ рамками якоїсь безпечнішої підмови. Більшість проблем типобезпеки С++ успадкована від С, але важливу роль в цьому питанні грає і відмова автора мови від ідеї використовувати автоматичне управління пам'яттю (наприклад, збірку сміття). Так візитною карткою С++ стали вразливості типу «переповнювання буфера».

· Погана підтримка модульності. Підключення інтерфейсу зовнішнього модуля через препроцесорну вставку заголовного файлу (#include) серйозно уповільнює компіляцію, при підключенні великої кількості модулів. Для усунення цього недоліку, багато компіляторів реалізують механізм прекомпіляциі заголовних файлів (англ. Precompiled Headers).

· Недостача інформації про типи даних під час компіляції (CTTI).

· Мова C++ є складною для вивчення і для компіляції.

· Деякі перетворення типів неінтуїтивні. Зокрема, операція над беззнаковим і знаковим числами видає беззнаковий результат.

· Препроцесор С++ (успадкований від C) дуже примітивний. Це приводить з одного боку до того, що з його допомогою не можна (або важко) здійснювати деякі завдання метапрограмування, а з іншою, в наслідку своєї примітивності, він часто приводить до помилок і вимагає багато дій з обходу потенційних проблем. Деякі мови програмування (наприклад, Scheme і Nemerle) мають набагато могутніші і безпечніші системи метапрограмування (також звані макросами, але макроси С/С++ вони мало нагадують).

· З кінця 1990-х в співтоваристві С++ набуло поширення так зване метапрограмування на базі шаблонів. По суті, воно використовує особливості шаблонів C++ в цілях реалізації на їхній базі інтерпретатора примітивної функціональної мови програмування, що виконується під час компіляції. Сама по собі ця можливість вельми приваблива, але, внаслідкок вище згаданого, такий код вельми важко сприймати і зневаджувати. Мови Lisp/Scheme, Nemerle і деякі інші мають могутніші і водночас простіші для сприйняття підсистеми метапрограмування. Крім того, в мові D реалізована порівнянна за потужністю, але значно простіша в застосуванні підсистема шаблонного метапрограмування.

· Хоча декларується, що С++ мультипарадигмена мова, реально в мові відсутня підтримка функціонального програмування. Частково, даний пропуск усувається різними бібліотеками (Loki, Boost) що використовують засоби метапрограмування для розширення мови функціональними конструкціями (наприклад, підтримкою лямбд/анонімних методів), але якість подібних рішень значно поступається якості вбудованих у функціональні мови рішень. Такі можливості функціональних мов, як зіставлення зі зразком взагалі украй складно емулювати засобами метапрограмування.

Майбутній розвиток

Сі++ продовжує розвиватися, щоб відповідати сучасним вимогам. Одна з груп, що займаються мовою Сі++ в його сучасному вигляді і що направляють комітету із стандартизації Сі++ поради з його поліпшення, -- це Boost. Наприклад, один з напрямів діяльності цієї групи -- вдосконалення можливостей мови шляхом додавання в нього особливостей метапрограмування.

Стандарт Сі++ не описує способи іменування об'єктів, деякі деталі обробки винятків і інші можливості, пов'язані з деталями реалізації, що робить несумісним об'єктний код, створений різними компіляторами. Проте для цього третіми особами створена безліч стандартів для конкретної архітектури і операційних систем.

Проте (за станом на час написання цієї статті) серед компіляторів Сі++ все ще продовжується битва за повну реалізацію стандарту Сі++, особливо в області шаблонів -- частини мови, зовсім недавно повністю розробленій комітетом стандартизації.

Одним із каменів спотикання у цьому питанні є ключове слово export, використовуване також і для розділення оголошення і визначення шаблонів.

Першим компілятором, що підтримів export в шаблонах, став Comeau C++ на початку 2003 року (опісля п'ять років після виходу стандарту). У 2004 році бета-версія компілятора Borland C++ Builder X також почала його підтримку.

Обидва цих компілятора засновані на зовнішньому інтерфейсі EDG. Інші компілятори, такі як Microsoft Visual C++ або GCC, взагалі цього не підтримують. Ерб Саттер ( Herb Sutter), секретар комітету із стандартизації Си++, рекомендував прибрати export з майбутніх версій стандарту унаслідок серйозних складнощів в повноцінній реалізації, проте згодом остаточним рішенням було вирішено його залишити.

Із списку інших проблем, пов'язаних з шаблонами, можна привести питання конструкцій часткової спеціалізації шаблонів, які погано підтримувалися протягом багатьох років після виходу стандарту Сі++.

1.2 Опис предметної області та постановка задачі

Основними задачами при створенні даної програми є логічне використання компонентів С++, доцільний метод написання програми, логічно вбудовані функції та дієвий алгоритм, який було обрано для її створення. Також не мале значення відіграє індивідуальний підхід до написання програми, такі деталі як зручність у використанні та легкість у роботі, без будь - яких надскладних варіацій для користувача, відіграють досить суттєву роль при запуску програми, а також при виводі результатів на екран.

Поставленою задачею було написання програми мовою С++ Builder, за допомогою якої можна створювати календарні нагадування, що супроводжуються ефектами анімації, служать для того, щоб сповістити про заплановану подію.

1.3 Обґрунтування вибору методу розв'язку задачі

Спосіб вибраний для написання даної програми є найбільш доцільнішим і зручним. Нижче будуть наведені факти, що підтверджують це.

1) Зручність використання даних компонентів C++, бо за їх допомогою можна створити найбільш зручну варіацію даної програми.

2) Економія часу, бо лише з цим методом створення програми можна скоротити час необхідний для її написання.

3) Раціональність функцій, котрі виконує програма. За допомогою цього методу створення програма виконує на максимальному рівні всі довірені їй функції.

2. Практична частина

2.1 Інформаційна структура моделі та алгоритму

2.1.1 Функціональні частини програми

Умовно можна поділити програму на три функціональні рівні: ввід даних, освоєння їх програмою і вивід нагадування. Нижче слідує короткий опис кожного з них.

Отже, ввід даних це перший крок, який ми маємо виконати, загалом для цього необхідно зазначити дату (число і місяць), коли має відбутись запланована подія. Цей перший крок є найлегшим і на ньому базується вся подальша робота програми.

Другий рівень заключається в обробці даних програмою. Він являється найважливішим, адже саме тут відбувається аналіз вхідних даних і вибір того, яким має бути результат

Третій рівень це результат обробки інформації і виведення у вказаний час нагадування та сповіщення за допомогою відтворення звукового файлу.

2.2 Тестування моделі

Запускаємо створену програму, відкривається головне вікно програми. Там ми бачимо заплановані події, а також календар, поточний час, та меню програми.(рис. 1)

Рис. 1

Далі ми можемо встановити якусь подію, використовуючи вікно додавання подій (рис. 2)

Рис. 2

Після того як ми записали подію і натиснули кнопку ок, відкривається діалогове вікно відкриття звукового файлу, який почне відтворюватись, коли настане час події.(рис.3)

Рис. 3

Саме нагадування події матиме наступний вигляд, воно відкривається, коли настає час події і виводиться на екран, а разом з ним починає відтворюватись звуковий файл який був вибраний користувачем під час додавання події.(Рис. 4)

Рис. 4

2.3 Інтерфейс та керівництво користувача

Відкрити програму можна двічі клікнувши лівою кнопкою миші на ярлику. Після цього відкривається головна форма, на якій ви бачите заплановані події, календар, годинник та меню програми. Потім ви можете додати нову подію. Це можна зробити трьома способами: вибравши в меню пункт Події->Додати, клікнувши на кнопці додати на панелі, яка знаходиться трохи нижче меню, або двічі клікнувши на відповідну дату в календарі. Потім користувач вводить дані у вікні додавання подій і зберігає їх натиснувши кнопку ОК. А далі вже програма автоматично обробляє дані і в потрібний момент вмикає звуковий файл і виводить нагадування на монітор. Якщо ви помітили нагадування, то натисніть на кнопці ОК і програма закриє це вікно а також видалить подію з пам'яті.

Висновок

Курсова робота завершилась написанням висновку. Що ж, підведемо певні підсумки.

На основі мови програмування С++ було створено багато програм, що дозволяють людям більш зручно і раціонально використовувати час.

Так, як програма складається з окремих модулів, то кожний модуль можна використовувати для реалізації інших подібних програм, які необхідно виконати в стислий термін.

Таким чином, програмування на C++ та відкриває перед програмістом безмежну кількість варіантів та можливостей реалізації поставлених задач, а це досить важливо сьогодні, так як комп'ютери та комп'ютерні мережі та системи стали застосовуватись практично у всіх галузях

Важливим плюсом цієї конкретної програми є її простота, бо кожен намагається знайти речі, які будуть зручні у використанні і прості в освоєнні. Дана програма являється однією з таких речей, вона дає можливість відволіктись від думок про можливість забути про щось, так як є певним залогом впевненості.

В наш час багато хто покладає велику надію на цифрову, компютерну техніки, це стало вже необхідністю, а така річ як календарне планування подій для кожного стане корисною, бо пам'ять часто підводить, це звична річ, мати помічника, котрий не підведе, а, хто може бути кращим помічником, ніж технологія ХХІ століття?

Розумним завершенням висновку буде лише одне, тестування програми, бо лиш так всі бажаючі можуть переконатись у її доцільності і зручності.

Список використаної літератури

1) http://www.online.ru/sp/eel/russian.

2) Adobe Illustrator 9.0. K.: Диа-Софт, 2001. 368 с.

3) Agent Technology: Foundations, Applications, and Markets/ N.R.Jennings, M.J.Wooldridge (Eds.). BerlinTokyo: Springer, 2002. 325p. 258.73.

4) Harris, Chris Adaptive Modelling, Estimation and Fusion from Data: A Neurofuzzy Approach/ C.Harris, X.Hong, Q.Gan. BerlinTokyo: Springer, 2002. 323p. На англ. Яз. 552.35.

5) Visual C и MFC курс МCSD профессионалов. СПб: Питер.

6) Object Windows для C++.. К: Диалектика, 1993. 208 с.

7) Архангельский А.Я. Программирование C++ Builder 6. М.: БИНОМ, 2003.

8) Архангельский А.Я. Программирование C++ Builder 6. М.: БИНОМ, 2003. 1152 с.

9) Архангельский А.Я. Программирование в С++Builder 5.. М.: ЗАО"Изд-во БИНОМ", 2000. 1152 с.

10) Архангельский А.Я. Программирование в С++Builder 6. М.: Бином, 2002. 1152 с.

11) Бишоп Дж., Хорспул Н. C# в кратком изложении. М.: БИНОМ. Лаборатория знаний, 2005.

Додаток 1 Лістинг програми

Unit1.cpp

#include <vcl.h>

#pragma hdrstop

#include "Unit2.h"

#include "Unit1.h"

#include "Unit3.h"

#include "Registry.hpp"

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

#pragma package(smart_init)

#pragma link "trayicon"

#pragma resource "*.dfm"

TForm1 *Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

StringGrid1->Cells[0][0]="Дата";

StringGrid1->Cells[1][0]="Час";

StringGrid1->Cells[2][0]="Тема";

StringGrid1->Cells[3][0]="Подія";

}

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

void __fastcall TForm1::ExitExecute(TObject *Sender)

{

TStringList *Table = new TStringList;

for(int i = 0 ; i < StringGrid1->RowCount ; i++){

Table->Add(StringGrid1->Rows[i]->DelimitedText);

}

Table->SaveToFile(ExtractFilePath(Application->ExeName)+"dat.txt");

delete Table;

Close();

}

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

void __fastcall TForm1::EditExecute(TObject *Sender)

{

Form2->ShowModal();

}

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

void __fastcall TForm1::MonthCalendar1DblClick(TObject *Sender)

{

AnsiStringdat = "";

dat = Form1->MonthCalendar1->Date;

Form2->DateTimePicker1->DateTime = dat;

Form2->ShowModal();

}

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

void __fastcall TForm1::Timer1Timer(TObject *Sender)

{

TimePanel1->Caption=TimeToStr(Time());

}

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

void __fastcall TForm1::FormCreate(TObject *Sender)

{

TRegistry *reg = new TRegistry();

reg->RootKey=HKEY_CURRENT_USER;

reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",true);

reg->WriteString("Client",Application->ExeName);

reg->CloseKey();

deletereg;

TStringList *Table = new TStringList;

Table->LoadFromFile(ExtractFilePath(Application->ExeName)+"dat.txt");

for(int i = 0 ; i < (StringGrid1->RowCount-1) ; i++)

{

StringGrid1->Rows[i]->DelimitedText = Table->Strings[i];

}

delete Table;

//читаннязфайлу//

}

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

void __fastcall TForm1::AboutBoxExecute(TObject *Sender)

{AboutBox->ShowModal();

}

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

void __fastcall TForm1::N4Click(TObject *Sender)

{

AboutBox->ShowModal();

}

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

void __fastcall TForm1::N8Click(TObject *Sender)

{

Form1->Visible = true;

TrayIcon1->Restore();

}

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

void __fastcall TForm1::N9Click(TObject *Sender)

{

Form1->Visible = false;

}

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

void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool&CanClose)

{

CanClose = false;

TrayIcon1->Visible = true;

Form1->Hide();

}

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

void __fastcall TForm1::N10Click(TObject *Sender)

{

Application->Terminate();

}

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

void __fastcall TForm1::N11Click(TObject *Sender)

{

TStringList *Table = new TStringList;

for(int i = 0 ; i < StringGrid1->RowCount ; i++){

Table->Add(StringGrid1->Rows[i]->DelimitedText);

}

Table->SaveToFile(ExtractFilePath(Application->ExeName)+"dat.txt");

deleteTable;

Close();

}

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

Unit2.cpp

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "Unit4.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm2 *Form2;

int S;

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

__fastcall TForm2::TForm2(TComponent* Owner)

: TForm(Owner)

{

}

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

void __fastcall TForm2::Button1Click(TObject *Sender)

{S++;

Form1->StringGrid1->RowCount=S+1;

Form1->StringGrid1->FixedRows=1;

Form1->StringGrid1->Cells[0][S]=DateTimePicker1->Date;

Form1->StringGrid1->Cells[1][S]=DateTimePicker2->Time;

Form1->StringGrid1->Cells[2][S]=Edit1->Text;

Form1->StringGrid1->Cells[3][S]=Memo1->Text;

Form4->Label1->Caption = Memo1->Text;

Form2->Close();

{

do

{

if(OpenDialog1->Execute())

{

MediaPlayer1->FileName=OpenDialog1->FileName;

}

if(MediaPlayer1->FileName=="")

Application->MessageBox("Виповиннівибратимелодіюдлянагадування!", MB_OK+MB_ICONWARNING);

}

while(MediaPlayer1->FileName=="");

iAlarmDates=StrToInt(FormatDateTime("d", DateTimePicker1->Date));

iAlarmMonth=StrToInt(FormatDateTime("m", DateTimePicker1->Date));

iAlarmYears=StrToInt(FormatDateTime("yyyy", DateTimePicker1->Date));

iAlarmHours=StrToInt(FormatDateTime("h", DateTimePicker2->Time));

iAlarmMinutes=StrToInt(FormatDateTime("n", DateTimePicker2->Time));

MediaPlayer1->Open();

Timer1->Enabled=true;

bIsTimerOn=true; //

}

}

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

void __fastcall TForm2::Button2Click(TObject *Sender)

{

Form2->Close();

}

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

void __fastcall TForm2::FormActivate(TObject *Sender)

{

bIsTimerOn=false;

}

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

void __fastcall TForm2::Timer1Timer(TObject *Sender)

{

if(bIsTimerOn==true)

{iDates=StrToInt(FormatDateTime("d", Date()));

iMonth=StrToInt(FormatDateTime("m", Date()));

iYears=StrToInt(FormatDateTime("yyyy", Date()));

iHours=StrToInt(FormatDateTime("h", Time()));

iMinutes=StrToInt(FormatDateTime("n", Time()));

if((iHours==iAlarmHours) && (iMinutes>=iAlarmMinutes)&&(iDates==iAlarmDates)&&(iMonth==iAlarmMonth)&&

(iYears==iAlarmYears))

{ Form4->Show();

MediaPlayer1->Play();

}

if(MediaPlayer1->Mode==mpPlaying) bIsTimerOn==false;

}

}

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

void __fastcall TForm2::FormCreate(TObject *Sender)

{

}

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

Unit 3.cpp

#include <vcl.h>

#pragma hdrstop

#include "Unit2.h"

#include "Unit4.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm4 *Form4;

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

__fastcall TForm4::TForm4(TComponent* Owner)

: TForm(Owner)

{

}

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

void __fastcall TForm4::Button1Click(TObject *Sender)

{Form2->Timer1->Enabled=false;

Form2->MediaPlayer1->Stop();

Form4->Close();

int j;

int r = Form1->StringGrid1->Row;

if (r < Form1->StringGrid1->FixedRows|| r >=Form1->StringGrid1->RowCount) return;

(j, r, Form1->StringGrid1->RowCount-1); {

Form1->StringGrid1->Cols[j] = Form1->StringGrid1->Cols[j+1];

Form1->StringGrid1->Cells[0][j] =Form1->StringGrid1->Cells[0][j+1]; // (*)

}

Form1->StringGrid1->RowCount = Form1->StringGrid1->RowCount - 1;

}

Unit1.h

#ifndef Unit1H

#define Unit1H

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

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ActnList.hpp>

#include <ComCtrls.hpp>

#include <ImgList.hpp>

#include <Menus.hpp>

#include <ToolWin.hpp>

#include <ExtCtrls.hpp>

#include <Grids.hpp>

#include "trayicon.h"

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

class TForm1: public TForm

{

__published: // IDE-managed Components

TMainMenu *MainMenu1;

TMenuItem *N2;

TMenuItem *N3;

TMenuItem *N4;

TMenuItem *N5;

TMenuItem *N6;

TMenuItem *N7;

TToolBar *ToolBar1;

TImageList *ImageList1;

TToolButton *ToolButton1;

TToolButton *ToolButton2;

TToolButton *ToolButton3;

TToolButton *ToolButton4;

TToolButton *ToolButton5;

TToolButton *ToolButton6;

TToolButton *ToolButton7;

TActionList *ActionList1;

TAction *Exit;

TAction *Edit;

TAction *Add;

TMonthCalendar *MonthCalendar1;

TGroupBox *TimeBox1;

TPanel *TimePanel1;

TStringGrid *StringGrid1;

TTimer *Timer1;

TTrayIcon *TrayIcon1;

TPopupMenu *PopupMenu1;

TMenuItem *N8;

TMenuItem *N9;

TMenuItem *N10;

TMenuItem *N1;

TMenuItem *N11;

void __fastcallExitExecute(TObject *Sender);

void __fastcallEditExecute(TObject *Sender);

void __fastcall MonthCalendar1DblClick(TObject *Sender);

void __fastcall Timer1Timer(TObject *Sender);

void __fastcallFormCreate(TObject *Sender);

void __fastcallAboutBoxExecute(TObject *Sender);

void __fastcall N4Click(TObject *Sender);

void __fastcall N8Click(TObject *Sender);

void __fastcall N9Click(TObject *Sender);

void __fastcallFormCloseQuery(TObject *Sender, bool&CanClose);

void __fastcall N10Click(TObject *Sender);

void __fastcall N5Click(TObject *Sender);

void __fastcall N11Click(TObject *Sender);

private: // User declarations

public: // User declarations

__fastcallTForm1(TComponent* Owner);

};

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

extern PACKAGE TForm1 *Form1;

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

#endif

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


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

  • Аналіз предметної області і постановка задачі на розробку програми для автоматизації роботи автопідприємства. Перелік та опис використаних компонентів та основних процедур програми. Опис структур та методів обробки даних. Інструкція для користувача.

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

  • Аналіз предметної області, постановка задачі. Формулювання проблеми. Аналіз предметної області. Постановка задачі. Проект програми. Ієрархія об’єктів. Ієрархія наслідування. Діаграма станів гри. Специфікація. Кодування.

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

  • Опис предметної області по темі "Перевантаження методів". Методика розробки тестових завдань. Проектування та розробка програми. Опис елементів управління, які використовуються в проекті. Опис текстів процедур та опрацювання подій. Отримані результати.

    курсовая работа [620,9 K], добавлен 06.08.2013

  • Загальна характеристика алгоритму та опис програми. Керівництво системного програміста. Особливості запуску програми в Linux, FreeBSD, Windows. Аналіз результатів тестування програми, що проектується, вивчення та оцінка її практичної ефективності.

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

  • Призначення ігрової програми "Змійка" для розвитку уваги та логічного мислення гравців. Розробка програми в середовищі C++ Builder 6, її функціонування в ОС Windows. Опис алгоритму та основних функцій програми. Основні переваги та недоліки мови С++.

    реферат [1,7 M], добавлен 17.12.2014

  • Основи розробки додатків Windows. Параметри функції WinMain. Запуск процесу, використання для цього вибраних на диску файлів. Відслідковування кожного з процесів (його статус, назву, час життя), діяльності користувача. Опис алгоритму роботи програми.

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

  • Опис методів і алгоритмів вирішення задачі в середовищі розробки Myeclipse. Основні функції програмного продукту, його структура. Розробка алгоритму та програми, інструкція користувачу. Результати тестування, лістинг основних блоків. Вікно головного меню.

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

  • Характеристика предметної області: FTP-server для ОС Windows. Шляхи встановлення FTP-серверу в ОС Windows. Опис мови та середовища програмування, компонентів та функцій програми. Аналіз реалізованої програми FTP-клієнта. Тестовий запуск та опис програми.

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

  • Об’єктно-орієнтований аналіз, визначення класів та методів. Загальна схема функціонування системи. Представлення учбового матеріалу, питань та відповідей. Графічний інтерфейс користувача для роботи з програмою. Використання програми викладачами.

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

  • Ігрові програми та BORLAND C++ BUILDER, застосованна для їх створення. Основні прийоми, застосовувані при проектуванні користувальницького інтерфейсу. Середовище розробки. Приклад використання видимих і невидимих компонентів. Прототип оброблювача подій.

    курсовая работа [611,9 K], добавлен 24.03.2009

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