Портал освітньо-інформаційних послуг «Студентська консультація»

  
Телефон +3 8(066) 185-39-18
Телефон +3 8(093) 202-63-01
 (093) 202-63-01
 studscon@gmail.com
 facebook.com/studcons

<script>

  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){

  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)

  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

 

  ga('create', 'UA-53007750-1', 'auto');

  ga('send', 'pageview');

 

</script>

Основи програмування та алгоритмічні мови 002

Тип роботи: 
Курсова робота
К-сть сторінок: 
30
Мова: 
Українська
Оцінка: 

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

  • З кінця 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.1 Функціональні частини програми
     
    Умовно можна поділити програму на три функціональні рівні: ввід даних, освоєння їх програмою і вивід нагадування. Нижче слідує короткий опис кожного з них.
    Отже, ввід даних це перший крок, який ми маємо виконати, загалом для цього необхідно зазначити дату (число і місяць), коли має відбутись запланована подія. Цей перший крок є найлегшим і на ньому базується вся подальша робота програми.
    Другий рівень заключається в обробці даних програмою. Він являється найважливішим, адже саме тут відбувається аналіз вхідних даних і вибір того, яким має бути результат
    Третій рівень це результат обробки інформації і виведення у вказаний час нагадування та сповіщення за допомогою відтворення звукового файлу .
     
    2.1.3. Опис алгоритму
     
    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. Лістинг програми
    Фото Капча