Проектування бази даних "каса продажу квитків" з використанням об’єктно-орієнтованого підходу

Дослідження проблеми автоматизації процесу продажу квитків. Побудова логічної моделі та бази даних для каси. Розробка об’єктно-орієнтованої програми мовою С++. Реалізація пошуку та виведення на екран потрібної інформації. Редагування і сортування записів.

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

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

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

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

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

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”

Відділення “Інформаційних технологій та комп'ютерної техніки”

КУРСОВА РОБОТА

з дисципліни “Об'єктно-орієнтоване програмування ”

на тему:

“Проектування бази даних “каса продажу квитків” з використанням об'єктно-орієнтованого підходу ”

Виконав студент групи ПЗ. ,

Керівник роботи

Львів 2013

АНОТАЦІЯ

Курсова робота присвячена розробці об'єктно-орієнтованої програми мовою С++ на основі пакету MicrosoftVisualC++ 2010 Express.

Розроблено базу даних інформаційної системи “Каса продажу квитків”, оптимізовано її роботу з використанням методів об'єктно-орієнтованого програмування. Інтерфейс у програмі реалізований за допомогою меню.

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

Зміст

Вступ

Розділ 1. Концепція об'єктно-орієнтованого програмування на прикладі проектування бази даних каса продажу квитків

Розділ 2. Побудова uml-діаграми на основі проекту бази даних каса продажу квитків

Розділ 3. Використання методів та функцій під час проектування бази даних інформаційної системи каса продажу квитків

Висновок

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

Додатки

Вступ

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

Об'єктно-орієнтоване програмування - одна з парадигм програмування, яка розглядає програму як множину “об'єктів”, що взаємодіють між собою. В ній використано декілька технологій від попередніх парадигм, зокрема успадкування, модульність, поліморфізм та інкапсуляцію. Незважаючи нате, що ця парадигма з'явилась ще в 1960-тих роках, вона не мала широкого застосування до 1990-тих. Сьогодні багато мов програмування (зокрема, Java,C#, C++, Python, PHP, Ruby та Objective-C, ActionScript 3) підтримують об'єктно-орієнтоване програмування.

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

Для проектування бази даних Каса продажу квитків було використано саме об'єктно-орієнтований підхід.

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

Для досягнення мети роботи передбачалось вирішення таких завдань:

- ознайомлення з концепцією об'єктно-орієнтованого програмування;

- визначення класу, його об'єктів і атрибутів;

- розробка логічної моделі системи у вигляді діаграми класів бази даних інформаційної системи Каса продажу квитків;

- реалізація окремими функціями класу конструктора, деструктора, додавання, знищення, виведення інформації на екран, пошук потрібної інформації за конкретною ознакою, редагування записів і сортування за різними полями.

Об'єктом дослідження є процес проектування бази даних.

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

Для досягнення поставленої мети та вирішення визначених завдань у дослідженні використані як загальнонаукові, так і спеціальні методи, а саме: структурно-функціонального аналізу, методи схематичного та графічного зображення даних та моделювання. У процесі виконання курсової роботи використано програмний продукт Microsoft VisualC++ 2010 Expressз метою побудови та проектування бази даних.

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

Розділ 1. Концепція об'єктно-орієнтованого програмування на прикладі проектування бази даних Каса продажу квитків

Об'єктно-орієнтоване програмування ? це еволюційний етап у розвитку методології програмування, що спирається на ті ідеї структурного і модульного програмування, які виявилися плідними і перспективними для розвитку. Разом з тим об'єктно-орієнтоване програмування ? це революційний, тобто якісно новий етап у методології програмування, що використовує принципово нові ідеї і методи, які не існували раніше. Нарешті, методологія об'єктно-орієнтованого програмування дійсно дозволяє краще, ніж старі методології, справлятися зі зростаючими потребами розроблювачів програмного забезпечення й апетитами замовників і споживачів програмного забезпечення, хоча програмування і залишається однією з найбільш важких галузей людської діяльності. Не слід тому вважати,що подальший прогрес в області розвитку методологій програмування не можливий[1, С.9?10].

Об'єктно-орієнтоване програмування - це модель програмування, яка базується на стверджені того, що програма це сукупність об'єктів, які взаємодіють між собою. Кожен об'єкт в цій моделі є незалежним, і він здатний отримувати, обробляти дані та відправляти ці дані іншим об'єктам[2].

Об'єктно-орієнтоване програмування - ефективний спосіб організації програми. Воно ніяк не пов'язане з процесом виконання програми, а є тільки способом її ефективної організації. Велика частина операторів мови C++ є аналогічною операторам процедурних мов програмування, зокрема мови С. Зовні функція класу у мові програмування C++ дуже схожа на звичайну функцію мови С, і тільки за контекстом програми можна визначити, чи є функція частиною структурної С-програми або об'єктно-орієнтованої програми, написаної мовою C++[3, С.21?22].

Існування об'єктно-орієнтованого програмування можливе завдяки трьом основним парадигмам, на яких базується саме ООП:

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

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

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

- 1 + 2 ? операнди цілого типу, результат цілого типу.

- 1.2 + 1.0e3 ? операнди дійсних типів, результат дійсного типу.

- “коля” + “маня”? операнди рядки, результат конкатенований рядок.

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

Принципи об'єктно-орієнтованого програмування:

1. Усе є об'єктом.

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

3. Кожен об'єкт має незалежну пам'ять, що складається з інших об'єктів.

4. Кожен об'єкт є представником класу, що виражає загальні властивості об'єктів.

5. У класі задається поведінка (функціональність) об'єкта. Тим самим всі об'єкти, що є екземплярами одного класу, здатні виконувати однакові дії.

6. Класи організовані в єдину деревоподібну структуру з загальним коренем, що називається ієрархією спадкування. Пам'ять і поведінка, пов'язана з екземплярами визначеного класу, автоматично доступні будь-якому класу, розташованому нижче в ієрархічному дереві [1, С.18?19].

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

Клас містить як дані, так і коди програм, призначені для виконання дій над ними. Загалом, клас пов'язує дані з кодами програми. У мові програмування C++ специфікацію класу використовують для побудови об'єктів. Об'єкти - це примірники класового типу. Загалом, клас є набором планів і дій, які вказують на властивості об'єкта та визначають його поведінку.

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

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

Оголошення класу синтаксично є подібним до оголошення структури [3, C.29]. Загальний формат оголошення класу має такий вигляд:

classDataBase

{

private:

//приватні поля і методи

public:

//загальні поля і методи

}

Будь-який клас може містити як закриті, так і відкриті члени. За замовчуванням усі члени, визначені в класі, є закритими (private-членами).

Наприклад, зміннаiє закритим членом даних класу DataBase (див. Додаток В). Це означає, що до неї можуть отримати доступ тільки функції-члени класу; ніякі інші частини програми цього зробити не можуть. У цьому полягає один з проявів інкапсуляції: програміст повною мірою може керувати доступом до певних елементів даних.

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

Усі змінні або функції, визначені після специфікатора доступу public, є доступними для всіх інших функцій програми, в тому числі і функції main(). Отже, в класі DataBase функції add(), del(int), show(), edit(int), sort(char), find(char, char[MAX]), find(int) і find(double) є відкритими. Зазвичай у програмі організовується доступ до закритих членів класу через його відкриті функції. програма інформація каса автоматизація

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

Конструктор - це спеціальна функція-член класу, яка викликається при створенні об'єкта, а її ім'я обов'язково збігається з іменем класу [3, C.33?34].

Особливості конструктора:

- призначений для виділення динамічної пам'яті та ініціалізації даних класу;

- якщо конструктор не оголошений, то компілятор згенерує конструктор за замовчуванням (без параметрів);

- для конструктора явно не вказується результуючий тип, конструктор не повертає значення;

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

- може перевантажуватися;

- може мати параметри за замовчуванням;

- не успадковується;

- не може мати оголошень const, virtual, static;

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

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

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

- не викликається при оголошенні вказівників на клас;

- може бути конструктором копіювання, якщо має один параметр з типом T&або constT&;

- не може бути викликаний явно з використанням об'єкта класу (або вказівника чи посилання на клас);

- при успадкуванні раніше викликаються конструктори базових класів, а потім - похідних класів [4, С.76].

Доповненням до конструктора слугує деструктор - це функція, яка викликається під час руйнування об'єкта. У багатьох випадках під час руйнування об'єкта необхідно виконати певну дію або навіть певні послідовності дій. Локальні об'єкти створюються під час входу в блок, у якому вони визначені, і руйнуються при виході з нього. Глобальні об'єкти руйнуються внаслідок завершення програми. Існує багато чинників, які заставляють використовувати деструктори. Наприклад, об'єкт повинен звільнити раніше виділену для нього пам'ять. У мові програмування C++ саме деструкторам доручається оброблення процесу деактивізації об'єкта. Ім'я деструктора має збігатися з іменем конструктора, але йому передує символ “~”. Подібно до конструкторів, деструктори не повертають значень, а отже, в їх оголошеннях відсутній тип значення, що повертається [3, C.33?34].

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

Деструктор викликається автоматично, якщо об'єкт виходить з області досяжності програми. Пам'ять, відведена у стеку для локального об'єкта з класом пам'яті “автоматичний” (діє за замовчуванням), буде вивільнено під час завершення роботи функції. Пам'ять статичного локального об'єкта буде звільнено перед завершенням роботи функції main(). Якщо локальний об'єкт розміщено в області динамічної пам'яті, то при завершенні роботи функції деструктор не викликається. Слід зазначити, що всю не звільнену динамічну пам'ять буде автоматично звільнено після завершення роботи програми [4, С.84].

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

Ім'я структурного компонента програми (об'єкта, типу,поля, методу і т.п.) повинне починатися з великої букви, не містити скорочень слів і, якщо це не мотивовано, цифр. Ім'я може містити кілька слів. У цьому випадку кожне слово повинне починатися з великої букви. Ім'я повинне нести змістовне навантаження, по можливості доповнюючи собою коментарі.

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

- Атрибути - ідентифікуючі характеристики об'єкта. Ідентифікуючі атрибути об'єкта ? це ті дані, що характеризують власне об'єкт. Розрізнення цих атрибутів означає відмінність об'єктів. Ідентифікуючі атрибути об'єкта, отже, приписуються йому в момент створення(народження). Вони не повинні мінятися протягом життєвого циклу цього об'єкта. Сукупність таких атрибутів називають ідентифікатором об'єкта. Ідентифікатор об'єкта повинен бути унікальним. Якщо серед атрибутів об'єкта можна обрати декілька груп атрибутів, що ідентифікують об'єкт, одна з таких груп повинна бути призначена ідентифікатором “за означенням”. У цьому випадку говорять про привілейований ідентифікатор об'єкта.

- Атрибути - описові параметри об'єкта. Описові параметри об'єкта визначають його стан у даний момент часу. Вони можуть змінюватися протягом його життя.

- Допоміжні атрибути (інформаційні поля - посилання). Інформаційні поля посилального типу реалізують атрибути,спеціально призначені для установки і підтримки зв'язків між об'єктами. Ці зв'язки називають залежностями, а відповідні атрибути - допоміжними. (Термін “залежність” запозичений з теорії баз даних. З математичної точки зору залежність - це відношення на множині об'єктів) [1, C.34?39].

У даному курсовому проекті використовуються такі атрибути:

? Name - ім'я пункту типу char;

? DepartureDateTime - дата і час відправлення типу char;

? ArrivalDateTime - дата і час прибуття типу char;

? Price - ціна квитка типу double.

Розділ 2. Побудова UML-діаграми на основі проекту бази даних Каса продажу квитків

Розроблення логічної моделі системи у вигляді діаграми класів займає центральне місце в об'єктно-орієнтованому аналізі та проектуванні. Для побудови діаграми класів використовується уніфікована мова моделювання UML (UnifiedModelingLanguage). Мова UML використовується для візуального проектування і документування організаційно-економічних, технічних, програмних та інших систем. UML є узагальненням методів графічного моделювання Буча, Рамбо і Якобсона, і містить стандартний набір діаграм і нотацій різного призначення.

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

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

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

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

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

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

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

Інтерфейси є елементами діаграми варіантів використання. При побудові діаграми класів окремі інтерфейси можуть уточнюватися, тоді для їхнього зображення використовують спеціальний графічний символ - прямокутник класу з ключовим словом або стереотипом “interface”. У такому випадку секція атрибутів у прямокутника відсутня, а вказується тільки секція операцій. Інтерфейс є абстрактним класом, який не дає змоги створювати об'єкти. Об'єкт можна створити тільки на основі класу, який реалізує інтерфейс. Два класи можуть взаємодіяти між собою через інтерфейси, причому один з них є класом, який використовує інтерфейс, а інший реалізує інтерфейс. Використання інтерфейсу починається штриховою лінією зі стрілкою. Реалізація інтерфейсу починається штриховою лінією з трикутною стрілкою. Стрілки спрямовуються від класів до інтерфейсу.

Об'єкт є окремим екземпляром класу, що створюється на етапі виконання програми. Він має своє власне ім'я і конкретні значення атрибутів. За необхідності можна показати взаємозв'язки не тільки між класами моделі, але й між окремими об'єктами, що реалізують ці класи. Для графічного зображення об'єктів використовується такий самий символ прямокутника, що і для класів. Відмінності виявляються при вказанні імен об'єктів, які обов'язково підкреслюються [4, C.484?521].

UML-діаграма для бази даних інформаційної системи Каса продажу квитків зображена на рис. 2.1.

Рис. 2.1. UML-діаграма

Розділ 3. Використання методів та функцій під час проектування бази даних інформаційної системи Каса продажу квитків

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

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

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

Таким чином, для будь-якої дії (операції), що виконується над атрибутами об'єкта, повинний бути написаний окремий метод [1, C.42].

Проект курсової роботи використовує шість файлів: три файли бібліотек і три файли з кодом програми.

Програма містить такі поля:

? назва пункту - змінна Name типу char;

? дата і час відправлення - змінна DepartureDateTime типу char;

? дата і час прибуття - змінна ArrivalDateTime типу char;

? ціна - змінна Price типу double.

У програмі використовуються такі методи:

? Додавання записів.

? Редагування записів.

? Виведення записів на екран.

? Видалення записів.

? Пошуку інформації.

? Сортування по полям.

Метод додавання записів: Додавання записів у базу даних відбувається за допомогою методу get(), який присутній у файлі з кодом CashBox.cpp і викликається у файлі DataBase.cpp за допомогою методу add(). Спочатку користувач вводить ім'я станції, дату і час відправлення і прибуття, а пізніше вводить ціну квитка. Після введення всієї інформації користувач повертається назад у головне меню програми.

За допомогою cin.getline() відбувається заповнення масивів із вхідного потоку, тобто будь-яка кількість використаних пробілів ігнорується компілятором, на відміну від cin.

voidDataBase::add()

{

CB[i++].get();

}

void CashBox::get()

{

Number = CashBox::getCount() + 1;

CashBox::setCount(Number);

cout<<"Input name: ";

getchar();

cin.getline(Name, MAX);

cout<<"Input date of departure (yyyy.mm.dd hh:mm): ";

cin.getline(DepartureDateTime, MAX);

cout<<"Input date of arrival (yyyy.mm.dd hh:mm): ";

cin.getline(ArrivalDateTime, MAX);

cout<<"Input price: ";

cin>>Price;

}

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

В даному методі використовується один параметр (номер), котрий вводиться з клавіатури в основній програмі.

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

void DataBase::edit(int number)

{

CB[number - 1].get();//порядковийномерінкрементується

CB[number - 1].setNumber(number);//задається число введене з клавіатури

CashBox::setCount(CashBox::getCount() - 1);

}

Метод виведення записів на екран: У даному методі використовується умова: якщо каса продажу квитків дорівнює нулю, тоді вона вважається пустою і на екран виводиться стрічка з наступним змістом “Cashboxempty”, інакше таблиця записів виводиться на екран.

void DataBase::show()

{

if (CashBox::getCount() == 0)

cout<<"Cashbox empty!";

else

for (int j = 0; j < CashBox::getCount(); j++)

CB[j].show();

}

Метод видалення записів: Видалення записів є необхідним у базі даних, тому що деякі дані бувають застарілими чи не потрібними у майбутній експлуатації. У методі видалення записів використовується один аргумент - номер (змінна number), який відповідає за порядковий номер запису у таблиці бази даних. При виклику запиту видалення записів на екран виводиться стрічка з текстом: “Whichnumberyouwanttodelete?”, що означає: “Який порядковий номер Ви хотіли б видалити?” Після введення номера квитка, запис зі всіма його даними видаляється із бази даних, тим самим звільнюючи її пам'ять.

voidDataBase::del(intnumber)

{

for(intj = number - 1; j<CashBox::getCount() - 1; j++)

{

CB[j] = CB[j + 1];

CB[j].setNumber(j + 1);

}

CashBox::setCount(CashBox::getCount() - 1);

}

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

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

Пошук по імені, даті і часі: У методі пошуку по імені, даті і часі використовується два аргументи: перший аргумент c-це саме слово, яке потрібно віднайти у базі даних, а другий str[MAX] -це максимальна кількість символів.

У даному методі використовується булева змінна fl, за допомогою якої визначається значення trueчи false. Тобто, якщо вибрати пошук по імені (натиснути кнопку n/N на клавіатурі) і ввести певне ім'я станції, то змінна fl отримає значення true, після чого виведеться результат на екран (якщо він існує).

Якщо ж натиснути будь-яку іншу клавішу, окрім n/N, d/D, a/A,#, p/P, то змінна fl буде мати значення falseі на екрані появиться надпис, що результати пошуку у касі продажу квитків є невдалими.

void DataBase::find(char c, char str[MAX])

{

int cnt = CashBox::getCount();

bool fl;

for (int i = 0; i < cnt; i++)

{

switch (c)

{

case'n':

case'N':

if ((strcmp(CB[i].getName(), str) == 0))

{

CB[i].show();

fl = true;

}

break;

case'd':

case'D':

if ((strcmp(CB[i].getDeparture(), str) == 0))

{

CB[i].show();

fl = true;

}

break;

case'a':

case'A':

if ((strcmp(CB[i].getArrival(), str) == 0))

{

CB[i].show();

fl = true;

}

break;

}

}

if (!fl)

{

cout<<"Search result is empty!";

}

}

Пошук по порядковому номеру: Пошук по порядковому номеру працює у такому порядку: якщо користувач на клавіатурі в головному меню натискає клавішу f/F, тобто пошук інформації у базі даних, а пізнішевводить символ #, то програмою запропоновується ввести ціле число, яке менше або дорівнює кількості записів у таблиці. Після цього на екран виводиться запис, якщо він існує, якщо ж ні, то виводиться стрічка: “Searchresultisempty”, тобто результат пошуку є порожнім.

void DataBase::find(int number)

{

int cnt = CashBox::getCount();

bool fl;

for (int i = 0; i < cnt; i++)

{

if (CB[i].getNumber() == number)

{

CB[i].show();

fl = true;

}

}

if (!fl)

{

cout<<"Search result is empty!";

}

}

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

void DataBase::find(double price)

{

int cnt = CashBox::getCount();

bool fl;

for (int i = 0; i < cnt; i++)

{

if (CB[i].getPrice() == price)

{

CB[i].show();

fl = true;

}

}

if (!fl)

{

cout<<"Search result is empty!";

}

}

Метод сортування записів: Сортування (sortіng) ? процес, що дозволяє впорядкувати безліч подібних даних у зростаючому або спадаючому порядку.У даному проекті використовується метод сортування записів за допомогою алгоритму бульбашки. Даний метод також називають обмінним сортуванням з вибором. Ідея цього методу відбита в його назві. Найлегші елементи масиву “вспливають” наверх, самі “важчі” ідуть вниз. Бульбашкове сортування працює так як і сортування вибором, хоча воно і робить більше роботи на те, щоб перемістити елемент у його кінцеву позицію.

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

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

void DataBase::sort(char c)

{

int cnt = CashBox::getCount();

CashBox tmp;

for (int i = 0; i < cnt; i++)

{

for (int j = i; j < cnt - 1; j++)

{

bool fl;

switch (c)

{

case'#':

fl = (CB[j].getNumber() > CB[j+1].getNumber());

break;

case'n':

case'N':

fl = (strcmp(CB[j].getName(), CB[j+1].getName()) > 0);

break;

case'd':

case'D':

fl = (strcmp(CB[j].getDeparture(), CB[j+1].getDeparture()) > 0);

break;

case'a':

case'A':

fl = (strcmp(CB[j].getArrival(), CB[j+1].getArrival()) > 0);

break;

case'p':

case'P':

fl = (CB[j].getPrice() > CB[j+1].getPrice());

break;

}

if (fl)

{

tmp = CB[j];

CB[j] = CB[j+1];

CB[j+1] = tmp;

}

}

}

}

Висновок

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

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

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

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

Створений проект забезпечує:

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

- покращення характеристик вихідних даних за рахунок оперативного користування запитами;

- можливість пошуку інформації в залежності від обраного атрибуту;

- швидкий доступ до рідко використовуваної інформації;

- оперативний аналіз з вихідної інформації.

Побудована належним чином база даних забезпечує доступ до оновлених і точних відомостей.

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

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

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

1. Львов М.С. Вступ до об'єктно-орієнтованого програмування:Навчальний посібник / М.С. Львов, О.В. Співаковський. - Херсон: 2000. - 234 с.

2. Об'єктно-орієнтоване програмування. - [Електронний ресурс]. - Режим доступу: http://programming.in.ua/programming/basisprogramming/25-oop.html.

3. Грицюк Ю.І. Об'єктно-орієнтоване програмування мовою С++: Навчальний посібник / Ю.І. Грицюк, Т.Є.Рак; Львів: Вид-во ЛДУ БЖД, 2011 - 404 с.

4. Кравець П.О. Об'єктно-орієнтоване програмування: навч. посібник / П.О. Кравець. - Львів: Видавництво Львівської політехніки, 2012. - 624 с.

Додаток А

Підключення основних бібліотек

#include<iostream>

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

usingnamespace std;

Додаток Б

Оголошення полів бази даних

#include"include.h"

//PragmaOncecтворена для пришвидшення компіляції програми, а також

//для того, щоб компілятор сам порівнював імена файлів без

//необхідності виклику препроцесора для перевірки заголовка

//на наявність в #ifndef и #endif

#pragmaonce

//Максимальний розмір полів у класі

constint MAX = 20;

//Клас Каса продажу квитків

classCashBox

{

private:

staticint count;

int Number;

//Назвапункту

char Name[MAX];

//Датаічасвідправлення

char DepartureDateTime[MAX];

//Датаічасприбуття

char ArrivalDateTime[MAX];

//Цінаквитка

double Price;

public:

CashBox(void);

~CashBox(void);

staticint getCount();

staticvoid setCount(int c);

int getNumber();

void setNumber(int n);

char* getName();

char* getDeparture();

char* getArrival();

double getPrice();

void get();

void show();

};

Додаток В

Оголошення методів для роботи з базою даних

#include"CashBox.h"

#pragmaonce

class DataBase

{

private:

CashBox CB[100];

int i;

public:

DataBase(void);

~DataBase(void);

//Метод добавлення записів

void add();

//Метод видалення записів

void del(int);

//Метод виведення на екран

void show();

//Метод редагування записів

void edit(int);

//Методсортування

voidsort(char);

//Методи пошуку інформації у Базі даних

//поназві, датіічасі

void find(char, char[MAX]);

//по порядковому номеру

void find(int);

//поціні

void find(double);

};

Додаток Д

Функції роботи з значеннями бази даних

#include"CashBox.h"

//Конструктор

CashBox::CashBox(void)

{

}

//Деструктор

CashBox::~CashBox(void)

{

}

int CashBox::count = 0;

//Отримання Count

int CashBox::getCount()

{

return CashBox::count;

}

void CashBox::setCount(int c)

{

CashBox::count = c;

}

//Отриманнячисла

int CashBox::getNumber()

{

return Number;

}

void CashBox::setNumber(int n)

{

Number = n;

}

//Отриманняімені

char* CashBox::getName()

{

return Name;

}

//Отриманнядатиічасувідправлення

char* CashBox::getDeparture()

{

return DepartureDateTime;

}

//Отриманнядатиічасуприбуття

char* CashBox::getArrival()

{

return ArrivalDateTime;

}

//Отриманняціни

double CashBox::getPrice()

{

return Price;

}

//Метод введення даних в базу даних

void CashBox::get()

{

Number = CashBox::getCount() + 1;

CashBox::setCount(Number);

cout<<"Input name: ";

getchar();

cin.getline(Name, MAX);

cout<<"Input date of departure (yyyy.mm.dd hh:mm): ";

//getchar();

cin.getline(DepartureDateTime, MAX);

cout<<"Input date of arrival (yyyy.mm.dd hh:mm): ";

//getchar();

cin.getline(ArrivalDateTime, MAX);

cout<<"Input price: ";

cin>>Price;

}

//Методвиведенняданихбазиданих

void CashBox::show()

{

printf("%2d %17s %17s %17s %14.2f \n", Number, Name, DepartureDateTime, ArrivalDateTime, Price);

}

Додаток Е

Методи для роботи з базою даних Каса продажу квитків

#include"DataBase.h"

//Конструктор

DataBase::DataBase(void) : i(0)

{

}

//Деструктор

DataBase::~DataBase(void)

{

}

//Методдобавленнязаписів

void DataBase::add()

{

CB[i++].get();

}

//Методвидаленнязаписів

void DataBase::del(int number)

{

for(int j = number - 1; j < CashBox::getCount() - 1; j++)

{

CB[j] = CB[j + 1];

CB[j].setNumber(j + 1);

}

CashBox::setCount(CashBox::getCount() - 1);

}

//Методвиведеннянаекран

void DataBase::show()

{

if (CashBox::getCount() == 0)

cout<<"Cashbox empty!";

else

for (int j = 0; j < CashBox::getCount(); j++)

CB[j].show();

}

//Методредагуваннязаписів

void DataBase::edit(int number)

{

CB[number - 1].get();

CB[number - 1].setNumber(number);

CashBox::setCount(CashBox::getCount() - 1);

}

//Методсортування

void DataBase::sort(char c)

{

int cnt = CashBox::getCount();

CashBox tmp;

for (int i = 0; i < cnt; i++)

{

for (int j = i; j < cnt - 1; j++)

{

bool fl;

switch (c)

{

case'#':

fl = (CB[j].getNumber() > CB[j+1].getNumber());

break;

case'n':

case'N':

fl = (strcmp(CB[j].getName(), CB[j+1].getName()) > 0);

break;

case'd':

case'D':

fl = (strcmp(CB[j].getDeparture(), CB[j+1].getDeparture()) > 0);

break;

case'a':

case'A':

fl = (strcmp(CB[j].getArrival(), CB[j+1].getArrival()) > 0);

break;

case'p':

case'P':

fl = (CB[j].getPrice() > CB[j+1].getPrice());

break;

}

if (fl)

{

tmp = CB[j];

CB[j] = CB[j+1];

CB[j+1] = tmp;

}

}

}

}

//Методипошукуінформаціїубазіданих

//Пошук по імені, даті і часі

void DataBase::find(char c, char str[MAX])

{

int cnt = CashBox::getCount();

bool fl;

for (int i = 0; i < cnt; i++)

{

switch (c)

{

case'n':

case'N':

if ((strcmp(CB[i].getName(), str) == 0))

{

CB[i].show();

fl = true;

}

break;

case'd':

case'D':

if ((strcmp(CB[i].getDeparture(), str) == 0))

{

CB[i].show();

fl = true;

}

break;

case'a':

case'A':

if ((strcmp(CB[i].getArrival(), str) == 0))

{

CB[i].show();

fl = true;

}

break;

}

}

if (!fl)

{

cout<<"Search result is empty!";

}

}

//Пошукпопорядковомуномеру

void DataBase::find(int number)

{

int cnt = CashBox::getCount();

bool fl;

for (int i = 0; i < cnt; i++)

{

if (CB[i].getNumber() == number)

{

CB[i].show();

fl = true;

}

}

if (!fl)

{

cout<<"Search result is empty!";

}

}

//Пошукпоціні

void DataBase::find(double price)

{

int cnt = CashBox::getCount();

bool fl;

for (int i = 0; i < cnt; i++)

{

if (CB[i].getPrice() == price)

{

CB[i].show();

fl = true;

}

}

if (!fl)

{

cout<<"Search result is empty!";

}

}

Додаток Ж

Проектування бази даних інформаційної системи Каса продажу квитків

#include"include.h"

#include"CashBox.h"

#include"DataBase.h"

bool orderMenu(DataBase &);

void findMenu(DataBase);

void main()

{

system("cls"); //Очисткаекрану

DataBasedb; //ОбєкткласуDataBase

char choice;

int number;

do

{

cout<<"--- CashBox ---"<<endl;

cout<<"Add record - a"<<endl;

cout<<"Delete record - d"<<endl;

cout<<"Show records - s"<<endl;

cout<<"Edit records - e"<<endl;

cout<<"Find records - f"<<endl;

cout<<"Order records - o"<<endl;

cout<<"Quit - q"<<endl;

cin>>choice;

cout<<endl;

switch(choice)

{

//Добавленнязаписів

case'a':

case'A':

db.add();

break;

//Видалення записів по номеру

case'd':

case'D':

cout<<"Which number you want to delete? ";

cin>>number;

db.del(number);

break;

//Вивід записів на екран

case's':

case'S':

db.show();

break;

//Редагування записів по номеру

case'e':

case'E':

cout<<"Which number you want to edit? ";

cin>>number;

db.edit(number);

break;

//Сортування записів за різними полями

case'o':

case'O':

if (orderMenu(db))

db.show();

break;

//Пошук потрібної інформації за конкретною ознакою

case'f':

case'F':

findMenu(db);

break;

//Авторськеправо

case'q':

case'Q':

cout<<"This application created by Andrik Kochulab"<<endl<<endl;

cout<<"Please, press any key to exit this app!";

getchar();

getchar();

exit(1);

//Очисткаекрану

case'c':

case'C':

system("clrs");

break;

default:

cout<<"Unknown command!";

}

cout<<endl<<endl;

}

while(choice);

getchar();

getchar();

}

//Функціясортуваннязаписів

bool orderMenu(DataBase &db)

{

char choice;

do

{

cout<<"Order by number - #"<<endl;

cout<<"Order by name - n"<<endl;

cout<<"Order by departure - d"<<endl;

cout<<"Order by arrival - a"<<endl;

cout<<"Order by price - p"<<endl;

cout<<"Back to main menu - q"<<endl;

cin>>choice;

cout<<endl;

switch(choice)

{

case'#':

case'n':

case'N':

case'd':

case'D':

case'a':

case'A':

case'p':

case'P':

db.sort(choice);

returntrue;

break;

case'q':

case'Q':

cout<<"Sort canceled!";

returnfalse;

default:

cout<<"Unknown command!";

}

cout<<endl<<endl; }

while(choice); }

//Функціяпошукуінформації

void findMenu(DataBase db)

{

char choice;

do

{

cout<<"Find by number - #"<<endl;

cout<<"Find by name - n"<<endl;

cout<<"Find by departure - d"<<endl;

cout<<"Find by arrival - a"<<endl;

cout<<"Find by price - p"<<endl;

cout<<"Back to main menu - q"<<endl;

cin>>choice;

cout<<endl;

switch(choice)

{

case'#':

int n;

cout<<"Input search number: ";

cin>>n;

db.find(n);

return;

break;

case'n':

case'N':

case'd':

case'D':

case'a':

case'A':

char s[MAX];

cout<<"Input search string: ";

getchar();

cin.getline(s, MAX);

db.find(choice, s);

return;

break;

case'p':

case'P':

double p;

cout<<"Input search price: ";

cin>>p;

db.find(p);

return;

break;

case'q':

case'Q':

cout<<"Search canceled!";

return;

default:

cout<<"Unknown command!";

}

cout<<endl<<endl;

}

while(choice);

}

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

...

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

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

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

  • Проектування бази даних та інтерфейсу програми. Розробка бази даних за допомогою Firebird 2.5. Контроль коректності вхідних та вихідних даних. Додавання та редагування інформації. Вплив електронно-обчислювальних машин на стан здоров'я користувачів.

    дипломная работа [4,7 M], добавлен 12.10.2015

  • Редагування за допомогою текстового редактора NotePad вхідного файлу даних. Програмна реалізація основного алгоритму з використанням засобів об'єктно-орієнтованого програмування. Об’ява та опис класів і об'єктів. Розробка допоміжних програмних засобів.

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

  • Аналіз відомих підходів до проектування баз даних. Ієрархічна, мережева та реляційна моделі представлення даних, їх особливості. Концептуальне проектування: приклад документів, побудова ER-діаграми, модель "сутність-зв'язок". Побудова фізичної моделі.

    курсовая работа [541,5 K], добавлен 29.01.2013

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

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

  • Проектування і реалізація реляційної бази даних для централізованого зберігання інформації з метою полегшення і систематизації даних замовлень клієнтів готельного комплексу. Розробка сценаріїв для створення бази даних і базових таблиць проекту.

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

  • Концепції об'єктно-орієнтованого програмування. Методи створення класів. Доступ до методів базового класу. Структура даних, функції. Розробка додатку на основі діалогових вікон, програми меню. Засоби розробки програмного забезпечення мовами Java та С++.

    курсовая работа [502,5 K], добавлен 01.04.2016

  • Особливості побудови та роботи з об’єктно-реляційною моделлю даних в інструментальній системі управління базами даних PostgreSQL. Розробка бази даних факультету, що має у підпорядкуванні кілька кафедр. Тестування роботи спроектованої бази даних.

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

  • База даних як організована структура, призначена для зберігання інформації. Проектування та реалізація в СУБД MS Access інформаційної системи "База даних Internet-ресурсів тестів з психології". Розробка логічної системи даних, інструкції користувача.

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

  • Принципи об'єктно-орієнтованого підходу. Розробка програмного комплексу з використанням цього алгоритму і користувальницьких класів на мові програмування С++. Реалізація простого відкритого успадкування. Тестування працездатності системи класів.

    курсовая работа [98,0 K], добавлен 06.05.2014

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

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

  • Розробка структури бази даних. ER-моделі предметної області. Проектування нормалізованих відношень. Розробка форм, запитів, звітів бази даних "Автосалон". Тестування роботи бази даних. Демонстрація коректної роботи форми "Додавання даних про покупців".

    курсовая работа [4,0 M], добавлен 02.12.2014

  • Узагальнена структурна схема інформаційної системи та алгоритми її роботи. Проект бази даних. Інфологічне проектування і дослідження предметної області. Розробка інфологічної моделі предметної області. Розробка композиційної, логічної системи бази даних.

    курсовая работа [861,7 K], добавлен 21.02.2010

  • Схема взаємодії учасників платіжної системи з використанням пластикових карток. Вхідні та вихідні повідомлення для проектування бази даних для автоматизації аналізу користувачів пластикових карток. Проектування та реалізація бази даних у MS Access.

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

  • Побудова інформаційної системи "Магазин товарів для настільного тенісу" з автоматизації роботи магазину. Концептуальне моделювання бази даних. Обґрунтування вибору СУБД. Логічне проектування бази даних. Схема бази даних. Створення таблиць в конструкторі.

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

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

    отчет по практике [2,0 M], добавлен 19.03.2015

  • Аналіз предметної галузі, постановка задачі, проектування бази даних. UML-моделювання, побудова ER-діаграми, схеми реляційної бази даних у третій нормальній формі. Призначення і логічна структура. Опис фізичної моделі бази даних, програмної реалізації.

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

  • Проектування бази даних (БД). Проектування логічної моделі БД. Реалізація БД та створення таблиць. Встановлення зв’язків, вибір мови та середовища програмування. Опис функціональних елементів та реалізація програми. Опис та тестовий приклад програми.

    дипломная работа [1,6 M], добавлен 07.01.2017

  • Аналіз проектування баз даних та створення програми на тему IC "Туристичні агентства". Розробка простого для розуміння інтерфейсу, огляд реалізації додавання, редагування, видалення, пошуку інформації. Характеристика задач автоматизації і фізичної моделі.

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

  • Системний аналіз бази даних за вхідною та вихідною документацією, визначення сутностей, атрибутів, зв’язків. Створення логічної моделі бази даних із застосуванням нормалізації, алгоритм її роботи. Розробка програмного забезпечення та інтерфейсу СУБД.

    курсовая работа [946,8 K], добавлен 02.07.2015

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