Створення бази відеофільмів
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
?нучкість обєктів дозволила дуже просто пристосовувати їх для власних цілей, докладаючи для цього мінімум зусиль. Програмісти обзавелися готовими бібліотеками обєктів, але, як і раніше, створення призначеного для користувача інтерфейсу вимагало силу-силенна часу і сил, особливо коли програма повинна була працювати під управлінням популярної операційної системи Windows і мати графічний призначений для користувача інтерфейс.
Знання про світ розвиваються з неймовірною швидкістю. Причиною тому є науково-технічний прогрес, заснований на полегшенні роботи та життєдіяльності людини та пошуку методів для розвязання різноманітних задач. Прогрес базується на дослідженні, а будь-яке дослідження, в свою чергу, базується на використанні доступних даних. І у кожного фахівця існує свій, персональний "архів" довідкової інформації, який після машинної обробки та систематизації має вигляд бази даних.
Створення бази даних передбачає рішення цілого комплексу проблем, в тому числі розробку програмних, мовних, організаційних і технічних засобів, призначених для централізованого зберігання і колективного використання інформації.
1 ВИКОРИСТАННЯ СУЧАСНИХ СИСТЕМ І МОВ ПРОГРАМУВАННЯ
1.1 Основні принципи обєктно-орієнтованого програмування
Якісним кроком в розвитку методів структурного програмування став винахід обєктно-орієнтованого програмування. Обєктне і обєктно-орієнтоване програмування (ООП) виникло внаслідок розвитку ідеології процедурного програмування, де дані і підпрограми (процедури, функції) їх обробки формально не звязані. Крім того, в сучасному обєктно-орієнтованому програмуванні часто велике значення мають поняття події (так зване подієво-орієнтоване програмування) і компоненту (компонентне програмування).
Першою мовою програмування, в якій були запропоновані принципи обєктної орієнтованості, була Симула. У момент своєї появи (у 1967 році), ця мова програмування запропонувала справді революційні ідеї: обєкти, класи, віртуальні методи і ін., проте це все не було сприйнято сучасниками як щось грандіозне. Однак, більшість концепцій була розвинена Аланом Кейем і Деном Інгаллсом в мові Smalltalk. Саме вона стала першою широко поширеною обєктно-орієнтованою мовою програмування.
С++ додає до С обєктно-орієнтовані можливості. Він запроваджує класи, які забезпечують три найважливіші властивості ООП:
1.Інкапсуляція;
2.Наслідування;
3.Поліморфізм.
Додаткові властивості корисні, та не обовязкові.
Розглянемо сі ці властивості детальніше.
Інкапсуляція
Основним способом організації інформації в С++ є класи. На відміну від типу структура (struct) мови С, яка може складатися лише з полів і вкладених типів, клас (class) С++ може складатися з полів, вкладених типів і функцій-членів (member functions). Члени класу бувають публічними (відкритими, public), захищеними (protected) і власними (закритими, приватними, private). В С++ тип структура аналогічний типу клас, відмінність в тому, що за умовчанням члени і базові класи в структурі публічні, а в класі - власні.
З відкритими (публічними) членами класу можна робити зовні класу все, що завгодно. До закритих (приватних) членів не можна звертатися ззовні класу, щоб не порушити цілісність даних класу. Спроба такого звертання спричине помилку компіляції. До таких членів можуть звертвтися тільки функції-члени класу. Крім відкритих і закритих членів класу, можуть бути ще і захищені - це члени, доступні класу, що містить їх, його друзям, а також похідним від нього класам. Такий захист членів називається інкапсуляцією.
Використовуючи інкапсуляцію, автор класу може захистити свої дані від некоректного використання. Крім того, вона замислювалася для полегшення спільної розробки класів. Малося на увазі, що при зміні способу зберігання даних, якщо вони оголошені як захищені або власні, не вимагається відповідних змін в класах, які використовують змінений клас. Навіть оператор доступу operator [] може бути визначений як така стандартна функція.
Наслідування
Для створення класів з доданою функціональністю вводять наслвдування. Клас-наслідувач має поля і функції-члени базового класу, але не має права звертатися до власних (private) полів і функцій базового класу. У цьому і полягає різниця між власними і захищеними членами.
Клас-наслідувач може додавати свої поля і функції або перевизначати функції базового класу.
За умовчанням, конструктор спадкоємця без параметрів викликає конструктор базового класу, а потім конструктори нестатичних членів-даних, що є екземплярами класів. Деструкція працює в зворотном порядку. Інші конструктори доводиться визначати кожного раз наново. На щастя, це можна зробити викликом конструктора базового класу.
Наслідувач це більш ніж базовий клас, тому, якщо спадкоємств відкрите, то він може використовуватися скрізь, де використовується базовий клас, але не навпаки.
Наслідування буває публічним, захищеним і власним. При публічному спадкоємстві, публічні й захищені члени базового класу зберігають свій статус, а до власних не можуть звертатися навіть функції-члени спадкоємця. Захищене наслідування відрізняється тим, що при ньому публічні члени базового класу є захищеними членами спадкоємця. При власному спадкоємстві всі члени базового класу стають власними членами класу-спадкоємця. Таким чином, користувач похідного класу не може звертатися до членів базового класу, навіть якщо вони оголошені я публічні. Клас-насл