Об’єктно-орієнтоване програмування

Алгоритм додавання елементу у стек і зберігання його у файлі. Розробка керівництва користувача. Створення абстрактного класу Офіс. Розробка ієрархії класів. Алгоритм сортування у файлі за алфавітом. Особливості об’єктно-орієнтовного програмування.

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

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

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

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

Курсовий проект з дисципліни

«Об'єктно-орієнтоване програмування»

Галузь знань 0501 “ Інформатика та обчислювальна техніка“

Напрям підготовки - 6.050101 «Комп'ютерні науки»

КИЇВ 2015

Вступ

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

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

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

Курсовий проект виконував з використанням Microsoft Visual Studio 2008, під час написання придбав навички самостійної роботи над науково-технічною і довідковою літературою за фахом та іншими посібниками; самостійний вибір найбільш доцільних і технічно зроблених рішень та задач за розглянутим курсом.

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

алгоритм файл програмування

Реферативна глава

(Торговельний офіс, Почтовий офіс, Банківський офіс)

У платформі .NET Framework всі керовані мови, наприклад, Visual Basic і C#, повністю підтримують концепції об'єктно-орієнтованого програмування, включаючи інкапсуляцію, успадкування і поліморфізм.

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

Спадкування описує можливість створення нових класів на основі існуючих класів.

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

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

class Post

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

Для членів класу (даних і методів) визначені такі модифікатори доступу:

Public - члени класу доступні за межами даного класу;

Internal - члени класу доступні в межах однієї збірки;

Protected - члени класу доступні усередині даного класу;

Private - члени класу доступні тільки для інших членів даного класу.

За замовчанням застосовується модифікатор Internal. Клас може містити оголошення наступних елементів :

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

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

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

class post

public string box;

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

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

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

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

Статичний клас не може розглядатися як тип даних.

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

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

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

public override string ToString()

{

return Name + "|" + Adresa + "|" + Employees + "|" + Turnover + "|" + Profit + "|" + Box;

}

Оператор інкремента збільшує свій операнд на 1, а оператор декременту зменшує свій операнд на 1.

Тобто, оператор : x++; Збільшує на одиницю змінну x.

А оператор : х--; зменшує на одиницю змінну х.

В мові C# існує дві форми розглянутих операцій: префіксна і постфіксна. Якщо оператори ++ або -- записані після змінної (так, як написано вище) - це постфіксна форма. При цьому послідовно відбуваються наступні дії: старе значення змінної зберігається для використання в подальшому вираженні, в якому зустрілася ця змінна; І тільки після цього її значення ВІДРАЗУ Ж змінюється на 1.Якщо ці оператори записані перед змінної, ось так : ++х або --х, то це префиксна форма. При цьому послідовність дій така : СПОЧАТКУ змінна змінюється на 1; і тільки після цього використовується у виразі. Але якщо інкремент або декремент виконуються як абсолютно окремий від інших виразів оператор, то префиксна і Постфіксна форма призводять до однакового результату, тобто, при такому використанні немає ніякої різниці, де ми пишемо оператор.

1. Перевантаження операцій інкременту та декременту

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

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

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

Спадкування буває відкритим (Public), закритим (Private) та захищеним (Protected). У всіх випадках клас D отримує доступ до відкритих і захищених членів B. Відмінності:

1. Відкрите - Відкриті члени B стають відкритими в D. Захищені B - захищеними D. Кажуть, що клас успадковує як інтерфейс, так і реалізацію предка.

2. Закрите - Відкриті і захищені члени B стають закритими в D. Застосовують коли клас повинен наслідувати тільки реалізацію.

3. Захищене - відкриті і захищені члени B стають захищеними в D.

Множинне спадкування в C# реалізується через інтерфейси.

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

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

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

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

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

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

При визначенні віртуального методу у складі базового класу перед типом значення, що повертається, указується ключове слово virtual а при перевизначенні віртуального методу в похідному класі використовується модифікатор override.Віртуальний метод не може бути визначений з модифікатором static або abstract. Перевизначений віртуальний метод повинен мати такий саме набір параметрів, як і однойменний метод базового класу. За допомогою віртуальних методів реалізується один з основних принципів об'єктна - орієнтованого програмування - поліморфізм. Це слово в перекладі з грецького означає “багато форм”, що в даному випадку означає “один виклик - багато методів”.

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

Динамічна структура даних характеризується тим що:

Вона не має імені;

Їй виділяється пам'ять в процесі виконання програми;

Кількість елементів структури може не фіксуватися;

Розмірність структури може змінюватися в процесі виконання програми;

В процесі виконання програми може змінюватися характер взаємозв'язку між елементами структури.

Необхідність в динамічних структурах даних зазвичай виникає в наступних випадках.

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

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

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

Разом з тим, зв'язне уявлення не позбавлено і недоліків, основними з яких є наступні:

На поля, що містять покажчики для зв'язування елементів один з одним, витрачається додаткова пам'ять;

Доступ до елементів зв'язної структури може бути менш ефективним за часом. Порядок роботи з динамічними структурами даних наступний:

Створити (відвести місце в динамічній пам'яті);

Працювати за допомогою покажчика;

Видалити (звільнити зайняте структурою місце).

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

Односпрямовані (однозв'язні) списки;

Двонаправлені (двузв'язні) списки;

Циклічні списки;

Стек;

Черга;

Бінарні дерева.

Препроцессори

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

#define #elif #else #endif #endregion #error

#if #line #pragma #region #undef #warning

Шаблони класів.

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

Шаблони функцій.

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

2. Обробка виняткових ситуацій

Блок try використовується програмістами C # для розбиття на розділи коду, який може порушуватися винятком. Пов'язані з ним блоки catch використовуються для обробки можливих винятків. Блок finally, що містить код, що виконується незалежно від того, чи викликано виняток у блоці try, наприклад звільнення ресурсів, виділених блоку try. Блоку try потрібно один або кілька пов'язаних блоків catch або блок finally (або і те, і інше).

Стандартні виключення С++. Альтернативні методи обробки

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

3. Огляд стандартної бібліотеки С++

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

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

Так само, як і в С, можливості бібліотек активізуються використанням директиви #include для включення стандартних файлів. Всього в стандарті Сі++ визначено 50 таких файлів.

4. Загальна характеристика контейнерних класів

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

Vector Вектор.

List Двозв'язний список.

Deque Двостороння черга.

Set Множина.

Multiset Мультмножина.

Map Асоціативний масив, що містить унікальні ключі й значення.

Multimap Асоціативний масив, що допускає дублювання ключів і значень.

Stack Стек.

Queue Черга.

Priority_queue Черга із пріоритетом.

Bitset Бітовий набір.

5. Послідовні контейнери

Послідовність - це різновид контейнерів, що містять скінчену множину однотипних об'єктів, упорядкованих у лінійному порядку. У бібліотеці STL передбачено три види послідовних контейнерів : вектор (клас vector), список (клас list) і двостороння черга (клас deque). Крім того, вони є базовими класами для створення більше складних контейнерів - стека (клас stack). Черги (клас queue) і черги із пріоритетом (клас priority_queue), Для кожної з послідовностей передбачений свій набір операцій, але існують операції, загальні для всіх послідовностей.

6. Асоціативні контейнери

Асоціативні контейнери - це структури даних, що забезпечують швидкий пошук даних по ключі. У стандартній бібліотеці шаблонів передбачено чотири різновиди асоціативних контейнерів : set (множина), multiset (мультимножина), map (асоціативний масив) і multimap (асоціативний мультимасив). Терміни “мультимножина” і “мультимассив” означають, що ці контейнери допускають дублікати елементів, на відміну від множини й масиву, у яких елементи повинні бути унікальними.

Асоціативні контейнери залежать від двох параметрів - Key (ключ) і Compare (відношення повного впорядкування по ключі Key). Класи set і multiset являють собою “вырожденные” асоціативні контейнери, у яких значення не важливі - всі операції здійснюються через ключі. Контейнер класу set повинен складатися з унікальних ключів, а об'єкт класу multiset допускає дублікати. У класах map й multimap зберігаються пари, що складаються з об'єктів довільного типу Т, пов'язаних з об'єктами класу Key.

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

7. Адаптери стандартних контейнерів

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

Алгоритми і функції стандартної бібліотеки

Алгоритм (algorithm) - це визначення обчислювальної процедури. У бібліотеці STL є група функцій, які виконують деякі стандартні дії, наприклад пошук, перетворення, сортування, копіювання тощо. Вони називаються алгоритмами. Параметрами для алгоритмів, зазвичай, служать ітератори. Алгоритму не цікавлять до типу переданого йому ітератора. Головне, щоб останній підпадав під певну категорію. Приміром, якщо параметром алгоритму може бути односпрямованийитератор, то підставляємий ітератор має бути однонаправленим, або двунаправленним, або житератором довільного доступу

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

Достоїнства і недоліки об'єктно - орієнтованого стилю програмування.

Об'єктно-орієнтований підхід має такі переваги, як:

Зменшення складності програмного забезпечення;

Підвищення надійності програмного забезпечення;

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

Забезпечення можливості повторного використання окремих компонентів програмного забезпечення.

Скорочується час на розробку, який може бути віддано іншим завданням.

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

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

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

До недоліків об'єктно-орієнтованого програмування відносяться :

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

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

8. Постановка задачі (1-2с.)

Розробити програму, що використовуючи стек виконує такі процедури:

Додає в створену структуру нові елементи.

Видаляє непотрібні елементи.

Виконує пошук серед елементів.

Точний пошук за назвою.

Пошук за яким оборот перевищує задане число.

Пошук за яким виручка перевищує задане число.

Дозволяє коректування (редагування) заданого елемента.

Дозволяє передивитись усі елементи які були створені.

Виконує сортування полів за зростанням та алфавітом за допомогою списків.

Сортування за назвою.

Сортування за адресою.

Сортування за кількістю співробітників.

Сортування за оборотом.

Сортування за виручкою.

Переміщення елемента між структурами.

Записує елемент у файл.

Видаляє елемент з файлу.

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

Виконує сортування окремо для кожного з файлів за алфавітом та за зростанням за допомогою списків.

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

Контроль за заповненням всіх полів при зберіганні елемента.

Створюємо абстрактний клас Офіс.

Створюємо поля до абстрактного класу Офіс.

Створюємо поле “Назва”.

Створюємо поле “Адреса”.

Створюємо поле “Кількість співробітників”.

Створюємо поле “Оборот”.

Створюємо поле “Виручка”.

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

Створюємо масив записів до кожної із записів офісу свій масив зі списками.

Торговельному офісу створюєм масив записів : Палатка, магазин, супермаркет, гіпермаркет.

Почтовому офісу створюєм масив записів : Письмо, Бандероль, посилка.

Банківському офісу створюєм масив записів : Державний та приватний.

Створюємо властивості до абстрактного класу Офіс.

Створюємо базовий конструктор до абстрактного класу Офіс.

Створюємо 3 похідні класи на базі абстрактного класу Офіс.

Створюємо в кожному похідному класу конструктор.

Перевизначаємо метод ToString() для кожного класу.

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

Розробка ієрархії класів.

Створення абстрактного класу Офіс

abstract class Office

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

public string Name; // Назва офіса

public string Adresa; // Адреса офісу

public int Employees; // Кількість співробітників

public int Turnover; // Оборот офіса

public int Profit; // Выручка офіса

Властивості для організації доступу до полів класу.

Властивість для поля Назва

public string name

{

get { return Name; }

set { Name = value; }

}

Властивість для поля Адреса

public string adresa

{

get { return Adresa; }

set { Adresa = value; }

}

Властивість для поля кількість співробітників

public int employees

{

get { return Employees; }

set { Employees = value; }

}

Властивість для поля оборот

public int turnover

{

get { return Turnover; }

set { Turnover = value; }

}

Властивість для поля Виручка

public int profit

{

get { return Profit; }

set { Profit = value; }

}

Створюємо базовий конструктор Офіс

public Office(string N, string A, int E, int T, int P)

{

Name = N; // Название

Adresa = A; // Адрес

Employees = E; // Кол-во сотрудников

Turnover = T; // Оборот

Profit = P; // Выручка

}

Створюємо клас Торговий який є спадкоємцем батьківського класу Офіс

class Business : Office

Створюємо у класі Business поле місце продажу.

public string Workplace; // місце продажу

Створюємо конструктор класу Торговий на базі абстрактного класу Офіс

public Business(string N, string A, int E, int T, int P, string W) :

base(N, A, E, T, P)

{

Workplace = W;

}

Перевизначаємо метод ToString() та пристосовуємо до нашого класу Торговий.

public override string ToString()

{

return Name + "|" + Adresa + "|" + Employees + "|" + Turnover + "|" + Profit + "|" + Workplace;

}

Створюємо клас Почтовий який є спадкоємцем батьківського класу Офіс

class Post : Office

Створюємо у класі Post поле багаж.

public string Box;

Створюємо конструктор класу Почтовий на базі абстрактного класу Офіс

public Post(string N, string A, int E, int T, int P, string B) :

base(N, A, E, T, P)

{

Box = B; // Багаж

}

Перевизначаємо метод ToString() та пристосовуємо до нашого класу Почтовий.

public override string ToString()

{

return Name + "|" + Adresa + "|" + Employees + "|" + Turnover + "|" + Profit + "|" + Box;

}

Створюємо клас Банк який є спадкоємцем батьківського класу Офіс

class Bank : Office

Створюємо у класі Bank поле тип.

public string Mode;

Створюємо конструктор класу Банк на базі абстрактного класу Офіс

public Bank(string N, string A, int E, int T, int P, string M) :

base(N, A, E, T, P)

{

Mode = M;

}

Перевизначаємо метод ToString() та пристосовуємо до нашого класу Банк.

public override string ToString()

{

return Name + "|" + Adresa + "|" + Employees + "|" + Turnover + "|" + Profit + "|" + Mode;

}

9. Розробка алгоритму рішення задачі

Алгоритм додавання елементу у стек і зберігання його у файлі:

Загальний опис алгоритму додавання нового об'єкту в стек та зберігання об'єкту у файлі обраного офісу.

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

Потім створюємо об'єкт з нашими даними в конструкторі в залежності від обраного офісу.

Далі додаємо об'єкт на вершину стека.

Зберігаємо об'єкт у вигляді строки у файлі офісу якого ми обрали.

Кінець виконування алгоритму.

Алгоритм для перегляду вмісту стека :

Створюємо копію стека під іншим ім'ям .

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

Поки кількість елементів у стеку не дорівнює нулю виводимо на форму у листбоксі елементи по одному на рядок, замінюючи символ “|” на символ “\t”

Кінець алгоритму.

Алгоритм для редагування елемента у стеку :

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

Робимо копію стека під іншим ім'ям .

Заводимо додатково 3 рядкові змінні типу string : str, str2. s1.

Присвоюємо строковій змінній str обраний нами рядок з листбоксу замінюючи символ “\t” на символ “|”

Потім створюємо об'єкт з нашими даними в конструкторі в залежності від обраного офісу.

Очищаємо стек від усіх елементів.

Поки копія стеку більше 0 присвоюємо змінній s1 наведений у рядок елемент зі стеку. Виконуємо : якщо змінна s1 містить рядок змінній str додаємо до стеку об'єкт з нашими даними у конструкторі, якщо ні - додаємо до стеку змінну s1.

Чистимо вміст змінної str2.

Оголошуємо файлову змінну read і зв'язуємо її з файлом.

Введемо у змінну str2 вміст файла за допомогою файлової змінної read.

Зачинемо файл, який зв'язали файловою змінною read.

Якщо у файлі знаходиться розшукуваний рядок тоді замінюємо цей рядок на виправлений рядок, тобто, якщо змінна str2 містить змінну str тоді виконуємо блок команд, а саме :

В змінній str2 знаходимо старий рядок який зберігається в змінній str і замінюємо його новим об'єктом.

Оголошуємо об'єкт write і зв'язуємо її з файлом одного з офісів. Записуємо у об'єкт write змінну str2.

Зачиняємо файл.

Якщо цього рядка не знайдено то виконуємо наступні дії :

Дописуємо у файл новий об'єкт.

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

Створюємо копію стеку.

Чистимо Листбокс.

Поки залишаються елементи у стеку виводимо їх по одному рядку у Листбокс.

Видаляємо усі записи з полів.

Чистимо всі дані в глобальній змінній stroka.

Алгоритм для знищення елемента у стеку :

Створюємо копію стеку.

Заводимо додатково 2 рядкові змінні типу string : str, s1.

Вводимо додаткову цілу змінну типа integer : nomer.

Присвоюємо строковій змінній str обраний нами рядок з листбоксу замінюючи символ “\t” на символ “|”

Визначаємо за назвою офіса в якому файлі треба видалити обраний нами рядок .

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

Заводимо нову рядкову змінну str2

Присвоюємо змінній str2 новий об'єкт приведений до рядкового типу.

Методом Clear() видаляємо усі елементи зі старого стеку.

Виконуємо цикл Пока в новому стеку кількість елементів більше нуля виконуємо : беремо елемент з верху стеку і приводимо його до рядкового типу для присвоєння змінній s1

Якщо змінна s1 тримає у собі змінну str тоді продовжуємо цикл Поки далі та й повертаємось до його початку.

Якщо змінна s1 не тримає у собі змінну str тоді додаємо у старий стек змінну s1

Створюємо рядкову змінну str1.

Оголошуємо файлову змінну read і зв'язуємо її з файлом.

Введемо у змінну str1 вміст файла за допомогою файлової змінної read.

Зачинемо файл, який зв'язали файловою змінною read.

Оголошуємо об'єкт file1 і зв'язуємо її з файлом одного з офісів.

Якщо у змінній str1 розшукуваний індекс у змінній str не дорівнює -1 тоді замінюємо цей рядок на виправлений рядок, тоді можна видалити зі змінної str1 змінну str2 тобто, якщо змінна str1 містить змінну str тоді виконуємо блок команд, а саме :

В змінній str1 знаходимо початковий індекс рядка і знаходимо кількість символів завдяки рядковій змінній str2, яку потрібно видалити враховуючи 2 символи які позначають кінець рядка зі змінної str1.

Записуємо у файлову змінну file1 рядкову змінну str1 і зачиняємо файл, який зв'язали файловою змінною file1.

Кінець алгоритму.

Алгоритм пошуку у стеку по точному збігу під рядка в рядку.

Чистимо Листбокс.

Створюємо копію стеку.

Заводимо змінну булевого типу b.

Заводимо числову змінну a1 і присвоюємо їй початкове значення 0.

Перевіряємо якщо кількість елементів у стеку дорівнює 0 тоді виводимо у листбокс текст Стек порожній, якщо ні виконуємо алгоритм далі.

Якщо поле пошуку дорівнює 0 тоді виводимо повідомлення “Заповните поле пошуку” інакше починаємо цикл Поки.

Поки в новому стеку кількість елементів більше 0 виконуємо :

Беремо з вершини стеку елемент і замінюємо в ньому символ “|” на символ “\t” та присвоюємо змінний s1.

З поля пошуку присвоюємо змінній s2 значення яке ми хочимо знайти у стеку.

Присвоюємо змінній b значення true, якщо змінна s1 містить змінну s2 і значення false, якщо змінна s1 не містить змінну s2.

Якщо змінна b має значення true вивести елемент зі стеку у листбокс в рядок та підвищіти змінну a1 на одиницю.

Якщо a1 більше за 0 вивести у форму текст Знайшли і значення змінної a1.

Якщо a1 дорівнює 0 вивести у форму текст Знайшли 0.

Кінець алгоритму.

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

Створюємо копію стеку.

Чистимо Листбокс.

Заводимо рядкову змінну words.

Заводимо числову змінну kol і присвоюємо їй початкове значення 0.

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

Якщо в полі число є то виконуємо пошук у циклі Поки :

Беремо з вершини стеку елемент та присвоюємо змінний words.

Використовуючи метод Спліт з роздільником “|” одержуємо рядковий масив words1.

Якщо третій елемент масиву words1 більший за число вказане в полі тоді виводимо елемент у листбокс та збільшуємо змінну kol на одиницю.

Кінець алгоритму.

Алгоритм пошуку у стеку за яким виручка перевищує задане число.

Створюємо копію стеку.

Чистимо Листбокс.

Заводимо рядкову змінну words.

Заводимо числову змінну kol і присвоюємо їй початкове значення 0.

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

Якщо в полі число є то виконуємо пошук у циклі Поки :

Беремо з вершини стеку елемент та присвоюємо змінний words.

Використовуючи метод Спліт з роздільником “|” одержуємо рядковий масив words1.

Якщо четвертий елемент масиву words1 більший за число вказане в полі тоді виводимо елемент у листбокс та збільшуємо змінну kol на одиницю.

Кінець алгоритму.

Алгоритм сортування у стеку за алфавітом за назвою.

Заводимо нову рядкову змінну read і ініціалізуємо її.

Використовуючи списки створюємо список Ot на базі абстрактного класу Office.

Починаємо цикл Поки стек більше 0 виконуємо :

Беремо з вершини стеку елемент перетворюємо його на рядок та присвоюємо змінний read.

Використовуючи метод Спліт з роздільником “|” одержуємо рядковий масив words.

Додаємо у список Ot рядок з 6 елементів рядкового масиву words.

Сортуємо за алфавітом за допомогою делегатів список за назвою.

Збираємо у стек всі елементи зі списку Ot.

Чистимо Листбокс.

Створюємо копію стеку та у циклі поки стек більше 0 виводимо кожен елемент у листбокс розташований за алфавітом.

Кінець алгоритму.

Алгоритм сортування у стеку по зростанню за виручкою.

Заводимо нову рядкову змінну read і ініціалізуємо її.

Використовуючи списки створюємо список Ot на базі абстрактного класу Office.

Починаємо цикл Поки стек більше 0 виконуємо :

Беремо з вершини стеку елемент перетворюємо його на рядок та присвоюємо змінний read.

Використовуючи метод Спліт з роздільником “|” одержуємо рядковий масив words.

Додаємо у список Ot рядок з 6 елементів рядкового масиву words.

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

Збираємо у стек всі елементи зі списку Ot.

Чистимо Листбокс.

Створюємо копію стеку та у циклі поки виводимо кожен елемент у листбокс розташований за алфавітом.

Кінець алгоритму.

Алгоритм сортування у файлі за алфавітом.

Створюємо Список з назвою класа який ми обрали для сортування.

Оголошуємо файлову змінну file1 і зв'язуємо її з нашим файлом.

Починаємо цикл Поки у файлі не закінчились рядки виконуємо:

Читаємо один рядок з файлу у змінну read.

Використовуючи метод Спліт з роздільником “|” одержуємо рядковий масив words.

Додаємо у список 6 елементів рядкового масиву words.

Зачинемо файл, який зв'язали файловою змінною file1.

Сортуємо за алфавітом за допомогою делегатів список за назвою.

Оголошуємо об'єкт write і зв'язуємо її з нашим файлом.

За допомогою циклу Foreach записуємо по одному елементи зі списку до нашого файлу.

Зачинемо файл, який зв'язали файловою змінною write.

Кінець алгоритму.

Розробка програми рішення задачі.

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

Збір інформації про завдання.

Розкриття сенсу задачі.

Визначення кінцевих цілей рішення задачі.

Визначення форми видачі результатів.

Опис даних (їх типів, діапазонів величин, структури, назв і т. п.).

Аналіз існуючих аналогів.

Розробка структур даних.

Уточнення способів організації даних.

Написання програми і її налагодження.

Виявлення помилок та їх усунення.

Вдосконалення програми.

Складання документації до вирішеної задачі,

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

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

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

Для зручності роботи користувача була створена форма на якій знаходяться :

Тексти для усвідомлення користувачем призначення полів, об'єктів для вибору та кнопок.

Поля для заповнення користувачем.

Об'єкти для вибору зі списку.

Вікно для перегляду створених елементів користувачем.

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

Форма для створення одного елемента стеку має наступний вигляд

Для завантаження в стек елементів з усіх файлів створена кнопка “Загрузка в стек со всех файлов”

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

Вікно зі вмістом стеку виглядає наступним чином.

Для перегляду кількості елементів у стеку призначена кнопка “Размер стека”

Після її натиснення на формі з'явиться напис -

Для пошуку потрібного елемента у стеку призначена кнопка , а текст за яким проводити пошук потрібно вписати у це поле інакше програма буде видавати наступне повідомлення

Для сортування елементів у стеку за алфавітом та впорядкувати елементи за зростанням призначений об'єкт для вибору за списком

Якщо потрібно обрати елементи в яких оборот або виручка більше за вказану у полі то для цього призначені 2 кнопки

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

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

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

Тоді обраний користувачем елемент з'явиться у полі вводу на формі :

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

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

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

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

Висновок

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

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

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

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

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

Основна література :

1. C# 2005 и платформа .NET 3.0 для профессионалов. Кристиан Нейгел, Билл Ивьен, Джей Глинн, Морган Скиннер, Карли Уотсон. “ДИАЛЕКТИКА” Москва. Санкт-Петербург. Киев. 2008 р. - 1790 с.

2. Полное руководство C# 4.0 Герберт Шилдт “Вильямс”. Москва. Санкт-Петербург. Киев. 2007 р. - 776 с.

3. Язык C#. Краткое описание и введение в технологии программирования. Котов О.М. Екатеринбург Издательство Уральского Университета. Учебное издание. 2014 г. 210 с.

Додаткова література :

1. Мова C# Базовий курс. 2-видання. Подбельський В.В. - 408 с.

2. Язык программирования С# 2005 и платформа .NET 2.0 Эндрю Троелсен, “Вильямс” Москва. Санкт-Петербург. Киев. 2011 р. - 1168 с.

3. Сборник задач по программированию 2- видання. Златопольський Д.М. “БХВ- Петербург”. Санкт-Петербург. 2007 р. - 122с.

Інтернет - ресурси

1. Бібліотека MSDN розділ - Довідник по C#

2. https://msdn.microsoft.com/ru-ru/library/618ayhy6.aspx

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

...

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

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

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

  • Об’єктно-орієнтоване програмування мовою С++. Основні принципи об’єктно-орієнтованого програмування. Розробка класів з використанням технології візуального програмування. Розробка класу classProgressBar. Базовий клас font. Методи тестування програми.

    курсовая работа [211,3 K], добавлен 19.08.2010

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

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

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

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

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

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

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

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

  • Особливості редагування за допомогою текстового редактора NotePad вхідного файлу. C++ як універсальна мова програмування, знайомство с функціями. Характеристика графічних засобів мови С. Аналіз основних понять об’єктно-орієнтованого програмування.

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

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

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

  • Розробка програми на мові програмування С++ з використанням об'єктно-орієнтованого програмування. Робота з файлами, графікою, класами, обробка числової інформації. Графічні засоби мови програмування. Алгоритм задачі та допоміжні програмні засоби.

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

  • Розробка програми для моделювання роботи алгоритму Дейкстри мовою C# з використанням об’єктно-орієнтованих принципів програмування. Алгоритм побудови робочого поля. Програмування графічного інтерфейсу користувача. Тестування програмного забезпечення.

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

  • Фундаментальні поняття об'єктно-орієнтованого програмування. Система лінійних нерівностей та опуклі багатогранники. Системи лінійних рівнянь лінійної алгебри як частковий випадок систем лінійних обмежень. Використання середовища програмування Delphi7.

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

  • Особливості системи онлайн-агрегаторів новин, універсальної програмної платформи Microsoft Window. Використання мови програмування C#, створення бази даних. Розробка програмного продукту, алгоритм його створення. Вихідний код та інструкція користувача.

    дипломная работа [730,9 K], добавлен 21.01.2016

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

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

  • Аналіз сучасного стану технологій програмування. Засоби реалізації об'єктів в мові C++, структура даних і функцій. Розробка програмного продукту - гри "трикутники", з використовуванням моделей, класів і функцій об’єктно-орієнтованого програмування.

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

  • Об'єктно-орієнтоване програмування за допомогою Delphi. Основні види проекцій. Поняття контексту відображення та пристрою в бібліотеці OpenGL. Побудова сфери засобами OpenGL: лістинг програми. Алгоритм операції збільшення та зменшення зображення.

    контрольная работа [268,6 K], добавлен 20.09.2009

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

    лабораторная работа [451,0 K], добавлен 25.01.2014

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

    курсовая работа [958,1 K], добавлен 16.02.2013

  • Основні принципи об’єктно-орієнтованого програмування. Типові середовища програмування та особливості мови С++. Етапи проектування БД. Розробка програмного забезпечення для реалізації створення бази відеофільмів. Основні положення та моделі БД.

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

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

    методичка [326,1 K], добавлен 13.01.2010

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

    контрольная работа [135,2 K], добавлен 25.10.2013

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