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

ПВНЗ ЄВРОПЕЙСЬКИЙ УНІВЕРСИТЕТ

ЧЕРКАСЬКА ФІЛІЯ

Кафедра математичних і комп’ютерних дисциплін

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

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

на тему: “Об’єктно-орієнтована програма обліку продуктового магазину”


Черкаси 2008


Вступ

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

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

Завданням курсової роботи є вивчення предметної області «Продуктового магазину» та програмна реалізація даної області за допомогою об’єктно-орієнтованого напрямку програмування.

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

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

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

Курсова робота розділена на два розділи:

-  в Розділі 1 проведено дослідження предметної області «Продуктового магазину» та визначено головні напрямки і дані, що необхідно відобразити в програмі по веденню обліку продуктового магазину.

-  в Розділі 2 детально розкрито поняття моделі в об’єктно-орієнтованих мовах програмування, реалізована побудова програмної моделі «Обліку продуктового магазину» та надано обґрунтування вибору мови програмування для створення програми.


1. Аналіз предметної області

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

·         молочні продукти (молоко, сметана, сир, ряжанка, кефір);

·         хлібобулочні (хліб, батон, булочки);

·         горілчані (горілка, вино, коняк, портвейн, пиво, слабоалкогольні напої);

·         тютюнові вироби;

·         кондитерські вироби (печиво, торти, цукерки, то що);

·         консервні вироби;

·         продукти швидкого приготування;

·         інші продукти широкого вжитку.

Продукт циркулює наступним чином:

1. приход товару в магазин – продукти поступають на склад за накладними по приходу;

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

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

Облік продуктового магазину передбачає наступні етапи:

·        додавання даних про товар в магазині;

·        видалення даних з магазину;

·        зберігання даних;

·        сортування даних;

·        перегляд даних;

·        редагування даних.

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

·           вид продукції;

·        назва товару;

·        ціна (за одиницю товару);

·        виробник;

·        число, місяць, рік приходу на склад;

·        сума всього товару в магазині.


2. Модель в об’єктно-орієнтованих мовах програмування

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

·        абстрагування;

·        інкапсуляція;

·        модульність;

·        ієрархічність;

·        типізація;

·        паралелізм і збереження.

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

Принципи об'єктно-орієнтованого програмування створені, щоб допомогти розробникам застосовувати могутні виразні засоби об'єктного і об'єктно-орієнтованого програмування, що використовує як блоки класи і об'єкти.

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

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

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

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

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

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

Кожна модель при реалізації використовує наступні методи розподілу пам’яті:

-  за допомогою визначення змінних стандартних типів (цілі, дійсні та ін);

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

-  за допомогою списків, стеків, черг, масивів, дерев тощо.

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

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

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

Найпростіша форма писку - це група об’єктів, до яких можна звернутись.

Зв’язане зберігання лінійного списку являється списком з двома зв’язками або двухзв’язним списком, якщо кожен елемент, що зберігається має два компонента вказівника (на попередній і на наступний елементи лінійного списку). Графічне зображення двухзв’язного списку представлене на мал.1.

 

Мал. 1 - Схема зберігання двухзв’язного списку


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

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

Допустимими операціями над стеком являються:

-  перевірка стека на порожність;

-  додавання нового елемента в кінець стека;

-  видалення останнього елемента зі стека;

-  доступ до останнього елемента.

Таким чином, операції додавання і видалення елемента виконується тільки в кінці списку.

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

Двохстороння черга - лінійний список, у якого операції додавання і видалення елементів та доступ до них можливий як на початку так і в кінці списку.

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

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

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

2.1 Програмна модель

Програма, створена на мові програмування С++, в середовищі програмування Borland С++ Builder 6.0. При розробці моделі програми було створено наступні класи:

1.    Table

2.    Data

3.    Record

4.    Iterator

5.    Number

6.    MyTable<Number>

7.    MyData

8.    Main

Кожин з цих класів має свою будову. Наприклад, будова класу Table представлена на мал.2.


Мал. 2 - Клас Table

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


Мал. 3

З діаграми видно, що кілька класів використовуються одним класом. Наприклад класи Data, Record, Iterator використовуються класом Table, і крім того, використовуються між собою. Стрілочки на діаграмі означають відношення “наслідування” класів, а зв’язок через рисочку, що виходить з кружечка, означає використання одного класу іншим.

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

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

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

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

Кожен модуль програми по обліку товарів магазину має ім'я - це ім'я відповідного фізичного файлу в каталозі проекту (Main.h і Main.cpp, Data.h i Data.cpp, Number.h i Number.cpp, Table.h та ін.).

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

Перша форма програми (MаіnForm) - це форма, що відкривається зразу ж при запуску програми – головна, відображає всі дані про продуктовий магазин. Крім відомостей про товар вона також має в розпорядженні кнопки:

·        Додати

·        Видалити

·        Очистити

·        Змінити

·        Сортувати

·        Зберегти

·        Відкрити

·        Вихід

Код обробника подій кожної з них наведений в додатку, в лістингу програми.

 


Информация о работе «Об’єктно-орієнтована програма обліку продуктового магазину»
Раздел: Информатика, программирование
Количество знаков с пробелами: 40325
Количество таблиц: 0
Количество изображений: 3

Похожие работы

Скачать
304576
89
18

... Чарка, стакан 4 320 2 80 400 Столові прибори (комплект) 4 320 2 80 400 Далі наведемо характеристику посуду, який будуть використовувати в комплексному закладі ресторанного господарства (табл. 2.8–2.11). Таблиця 2.8. Характеристика та призначення класичного вітчизняного порцелянового та фаянсового посуду Найменування Розміри, мм Місткість, см3, порцій Призначення ...

Скачать
87719
8
5

... , що в свою чергу призводить до збільшення прибутку. Об’єктом дослідження в курсовій роботі виступає логістична система розподілу продукції на ЖКУВП “Біатрон-3”. Предметом дослідження є сукупність методичних та практичних проблем управління логістичною системою розподілу продукції. Метою написання курсової роботи є вивчення теоретичних аспектів управління логістичною системою розподілу та дослі ...

Скачать
169717
23
3

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

Скачать
157062
12
4

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

0 комментариев


Наверх