скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыКурсовая работа: Створення бази відеофільмів

Система програмування Mіcrosoft Vіsual C++ витримала кілька реалізацій. Впроцессе виходу нових версій системи програмування було випущено й кілька версій бібліотеки MFC, на якій заснована дана система.

Сама по собі бібліотека MFC є, на думку автора, досить удалою реалізацією широкого набору класів мови C++, орієнтованого на розробку результуючих програм, що виконуються під керуванням ОС типу Mіcrosoft Wіndows. Це багато в чому обумовлене тим, що творець бібліотеки компанія Mіcrosoft одночасно є й творцем ОС типу Mіcrosoft Wіndows, на які орієнтований об'єктний код бібліотеки. Бібліотека може бути підключена до результуючої програми за допомогою звичайного компоновщика, або використатися як динамічна бібліотека, що підключає до програми під час її виконання. Бібліотека MFC досить широко поширена. Її можливо використати не тільки в складі систем програмування виробництва компанії Mіcrosoft, але й у системах програмування інших виробників.

1.2.3 Мова програмування С++

Мова С++ виникла на початку 1980-х років, коли співробітник фірми «Bell Laboratories» Бьерн Страуструп вигадав ряд удосконалень до мови С. До початку офіційної стандартизації мова розвивалася в основному силами Страуструпа. У 1998 році був ратифікований міжнародний стандарт мови С++: «Standard for the C++ Programming Language».

Страуструп почав працювати над «Сі з класами» в 1979 році. Він вирішив доповнити мову С (наступник BCPL) можливостями, що є в мові Симула (Simula). Мова С, будучи базовою мовою системи UNIX, на якій працювали комп'ютери «Bell», є швидкою, багатофункціональною і переносною. Страуструпдодав до неї моєливість роботи з класами і об'єктами. В результаті, практичні задачі моделювання виявилися доступними для вирішення як з погляду часу розробки (завдяки використанню Симула - подібних класів) так і з погляду часу оючислень (завдяки швидкодії С). На початку в С були додані класи (з інкапсуляцією), похідні класи, сувора перевірка типів, inline-функції і аргументи за умовчанням.

У 1983г. відбулося перейменування мови з С з класами в С++ .

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

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

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

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

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

Мову С++ можна використовувати як мову об'єктно-орієнтованого програмування, проте всі (або деякі) її об'єктно-орієнтовані властивості можна ігнорувати або неправильно використовувати. Нині використовується декілька різних версій мови С++, деякі з них є відкритими і загальнодоступними на базі найрізноманітніших машин.

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

Переваги мови С++ такі:

·  Можливе виконання будь-яких дій на будь-якому рівні операційної системи;

·  Мова С++ є найшвидшою з існуючих нині об'єктно-орієнтованих мов;

·  Ринок програмістів, які пишуть на мові С++, достатньо великий.

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

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

Недоліки С++ полягають в наступному:

·  Відсутність автоматичного управління пам'яттю (складки сміття) і широко поширеневикористовування покажчиків призводять до того, що гарантії безпеки на стадії виконання досягаються насилу;

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

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

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

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

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

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


1.3 Основи алгоритмізації

Одним з основоположних понять інформатики є алгоритм.

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


Властивості алгоритмів:

1.   Дискретність;

2.   Однозначність або детермінована. Кожна дія алгоритму повинна бути чіткою і однозначною. Для однакових початкових даних результат повинен бути одним і тим же.

3.   Кінцівка, результативність. Алгоритм повинен призводити до рішення задачі за кінцеве число кроків.

4.   Масовість або спільність. Алгоритм повинен призначатися не для однієї задачі, а цілого класу задач.

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

Алгоритм має ієрархічну структуру. Для деяких кроків алгоритму можна складати детальніші алгоритми, що містять опис даного кроку.

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

Існують різні способи запису алгоритмів:

1.     Словесний опис кожного кроку на словесній мові.

2.     Графічне зображення алгоритму у вигляді блок-схеми (flowchart).

У структурному програмуванні застосовуються декілька основних прийомів розробки алгоритмів.

1.     Метод покрокової деталізації.

Спочатку створюється загальна структура алгоритму, а потім приробляються окрем частини.

2.     Метод «зверху - вниз».

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

3.   Метод «знизу - вгору».

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

4.   Метод «від центру по краях».

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

5.   Модульний метод.

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

Основна мета використовування модуля – можливість його повторного використання для вирішення різних задач.


2 РОЗРОБКА РІШЕННЯ ЗАДАЧІ СТВОРЕННЯ БАЗИ ВІДЕОФІЛЬМІВ

2.1 Бази даних

2.1.1 Основні положення та моделі БД

Взагалі технологія баз даних як самостійна гілка розвитку інформатики з’явилася порівняно недавно: початок досліджень в цій області пов'язують з епохою великих ЕВМ – шістдесятими роками XX в. Тоді ж сформувався теоретичний апарат технології, почалася розробка програмного забезпечення. Термін «база даних» вперше з’явився в 1962г., відтоді дещо змінилося його змістовне наповнення (у зв'язку з розвитком області) і в найзагальнішому вигляді може бути сформульований так: база даних - це сукупність взаємозв'язаних даних при такій мінімальній надмірності, яка допускає їх використання оптимальним чином для одного або декількох додатків в певній предметній області людської діяльності.

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

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

«Базою даних» часто спрощено або помилково називають Системи Управління Базами даних (СУБД). Потрібно розрізняти набір даних (власне БД) і програмне забезпечення, призначене для організації і ведення бази даних (СУБД).

Організація структури БД формується виходячи з таких міркувань:

1. Адекватність описуваному об'єкту/системі - на рівні концептуальної і логічної моделі.

2. Зручність використання для ведення обліку і аналізу даних - на рівні так званої фізичної моделі.

Види концептуальних (інфологічних) моделей БД: «сутність - зв'язок», семантичні, графські.

Види логічних (даталогічних) моделей БД:

1. Документальні (архіви) - орієнтовані на формат документа, дескрипторні, тезаурусні.

2. Фактографічні (картотеки):

- теоретико-графські: ієрархічна модель, мережева модель.

- теоретико-множинні: реляційна модель (ER-модель), багатомірна модель.

- об'єктно-орієнтовані: об'єктна модель.

- засновані на інвертованих файлах.

На рівні фізичної моделі електронна БД є файлом або їх набором у форматі TXT, CSV, Excel, DBF, XML або в спеціалізованому форматі конкретної СУБД. Також в СУБД в поняття фізичної моделі включають спеціалізовані віртуальні поняття, існуючи в її рамках - таблиця, табличний простір, сегмент, куб, кластер і т.д.

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

2.1.2 Типи БД

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

Першими з’явилися ієрархічні бази даних. Інформація в ієрархічній базі організована за принципом деревовидної структури, у вигляді відносин предок/нащадок. Кожен запис може мати не більш одного батьківського запису і декілька підлеглих. Зв'язки записів реалізуються у вигляді фізичних покажчиків з одного запису на інший. Основний недолік ієрархічної структури бази даних - неможливість реалізувати відносини "багато до багатьох", а також ситуації, коли запис має декілька предків.

Мережева структура баз даних з’явилася як розвиток ієрархічної. Треба підкреслити, що термін «мережева» уживається тут в зовсім незвичному для епохи интернета значенні. Це слово підкреслює модель зв'язків даних в базі, коли кожен запис може знаходитися у відносинах «багато до багатьох» з іншими записами, що робить графічну модель бази схожою на рибальську мережу. Розробляти серйозні додатки в рамках мережевої моделі бази даних досить важко, причому складність розробки при ускладненні задач зростає в геометричній прогресії.

Справжній прорив в розвитку баз даних відбувся тоді, коли збільшена потужність комп'ютерів дозволила повною мірою реалізувати реляційну модель даних. Теорія реляційних баз даних була розроблена доктором Коддом на початку 70-х років 20 століття. У реляційних базах дані зберігаються у вигляді таблиць, що складаються з рядків і стовпців. Стовпці таблиць реляційної бази можуть містити скалярні дані фіксованого типу - числа, рядка, дати... Таблиці в реляційній базі даних можуть бути зв'язані відносинами "один до одного" або "один до багатьох".

Реляційні бази даних займають зараз домінуюче становище. Не буде великим перебільшенням сказати, що ієрархічна і мережева структури баз даних пішли в минуле, поступившися своїм місцем реляційним базам. MS SQL Server і MS Access, InterBase і FoxPro, PostgreSQL і Paradox... Всі вони побудовані на реляційній моделі даних. Реляційною базою в чистому вигляді є і MySQL.

Об'єктно-орієнтовані бази даних з’явилися зовсім нещодавно як природний розвиток об'єктно-орієнтованих мов програмування. На сьогоднішній день ООБД поки не мають широкого розповсюдження, але, поза сумнівом, вони найближчим часом бурхливо розвиватимуться. Це підтверджує і той факт, що розробники багатьох реляційних БД включають в свої бази засоби роботи з об'єктними типами даних. Такі бази даних одержали назву об'єктно-реляційних. Таким же чином, зокрема, розвивається і Oracle. Що була раніше чисто реляційною базою, Oracle починаючи з 8 версії підтримує можливість зберігання і обробки об'єктів і без жодної натяжки може бути віднесена до об'єктно-реляційного класу баз даних.

2.1.3 Етапи проектування БД

I. Концептуальне проектування - збирання, аналіз і редагування вимог до даних. Для цього здійснюються слідуючі заходи:

1.  обстеження предметної області, вивчення її інформаційної структури.

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

3.  моделювання і інтеграція всіх представлень.

Після закінчення даного етапу одержуємо концептуальну модель, інваріантну до структури бази даних. Часто вона представляється у вигляді моделі «сутність-зв'язок».

II. Логічне проектування - перетворення вимог до даних в структури даних. На виході одержуємо СУБД-орієнтовану структуру бази даних і специфікації прикладних програм. На цьому етапі часто моделюють бази даних стосовно різних СУБД і проводять порівняльний аналіз моделей.

III. Фізичне проектування - визначення особливостей зберігання даних, методів доступу і т.д.

Відмінність рівнів представлення даних на кожному етапі проектування реляційної бази даних:

КОНЦЕПТУАЛЬНИЙ РІВЕНЬ - Представлення аналітика (використовується інфологічна модель «сутність-зв'язок»)

·  сутність

·  атрибути

·  зв'язки

ЛОГІЧНИЙ РІВЕНЬ - Представлення програміста

Страницы: 1, 2, 3


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.