Розробка додатку 'EvolAnim'

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    83,36 Кб
  • Опубликовано:
    2014-03-26
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Розробка додатку 'EvolAnim'

ВСТУП

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

В рамках даного курсового проекту використовувалось середовище розробки Borland Builder C++, що використову «класичну» інтерпретацію мови С++ та дозволяє створювати багатомодульні проекти на основі програмних підходів, таких як: VP, OLE, COM.

Відповідно до поставленого завдання було розроблено додаток «EvolAnim». Дана тема є цікавою з погляду реалізації принципів об’єктно орієнтованого програмування, так як в найбільшій повноті розкриває їх, як буде описано нижче. Також реалізація моделі життєвого простору може складати інтерес для різних галузей науки: наприклад біології, екології, медицини.

1. ОПИС ПРОГРАМИ

.1 Загальні відомості

Найменування програмного проекту: «Project1». Проект створено в середовищі розробки C++ Builder 6..exe - назва виконуючого файлу програми. Програма для своєї роботи не вимагає попереднього встановлення специфічного (спеціального) програмного забезпечення.

.2 Функціональне призначення

Програма «EvolAnim» створена для моделювання житєвого простору. Вона дає можливість користувачеві наглядно преглянути можливий розвиток організмів і взаємодію між представниками зданих трьох рас.

1.3 Опис логічної структури

Програмний проект складається з таких файлів: Unit1.h, Unit2.h, Unit3.h, Unit4.h, Unit5.h, File1.h і Unit1.cpp, Unit2.cpp, Unit3.cpp, Unit4.cpp, Unit5.cpp, в яких інтерфейс реалізований за допомогою 5 класів форм.

Додаток складається з 5 класів форм додатку: TForm1 : public TForm - головна форма.TForm2 : public TFormTForm3 : public TFormTAboutBox : public TFormTForm5 : public TForm

Зв’язок між класами можна побачити з наступних діаграм:

Рисунок 1.1. Схема зв’язку між об’єктами

Рисунок 1.2. Композиція об’єктів класу Form1.

Рисунок 1.3. Композиція об’єктів класу Form2.

Рисунок 1.4. Композиція об’єктів класу AboutBox.

Рисунок 1.5. Композиція об’єктів класу Form3.

Рисунок 1.6. Композиція об’єктів класу Form5.

Для реалізації програми були визначені наступні змінні:::TBitmap* Fon; //зображення фону життєвого простору::TBitmap** Olen; //зображення для організму Олень::TBitmap** Wolf; //зображення для організму Вовк::TBitmap** Flower; //зображення для організму Квіткаk=0,g=0,f=0; //змінні для створення нових об’єктів та порівняння їх з максимальною кількістюCountw,Counto,Countf; //максимальна кількість обєктів, які будуть виведені на екран*** live; //масив організмів*** livetemp; //допоміжний масив організмів

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

Рисунок 1.7. Граф наслідування класу living.

class living

{protected:X, Y; //координати виводу зображення на екранage; //вік організмуCountSosedWolf; //кількість вовків, які є сусідами для даного організмуCountSosedOlen; // кількість оленів, які є сусідами для даного організмуCountSosedFlower; // кількість квітів, які є сусідами для даного організму:

//Метод повертає, організм якого класу вибранийstate who()=0;

//конструктор по замовчанню

living():X(0),Y(0),age(0),next(0),CountSosedWolf(0),CountSosedOlen(0),(0) { }

//конструктор з параметрами(int XX,int YY,int Age)

{X=XX;=YY;=Age;=0;=0;=0;=NULL;

}

//Метод, який здійснює вивід організму на екран

virtual void show(Graphics::TBitmap** Wolff,TImage* Imagee,int WhoForm)=0;

//Метод, який здійснює перерахунок кількості сусідів для даного організму

virtual void calculateSosed(living*** Live,int ForNearX,int ToNearX, int ForNearY, int ToNearY, int indX, int indY)=0;

//Метод, який повертає кількість вовків для даного організмуint get_CountSosedWolf()=0;

//Метод, який повертає кількість оленів для даного організмуint get_CountSosedOlen()=0;

//Метод, який повертає кількість квітів для даного організмуint get_CountSosedFlower()=0;

//Метод, який повертає вік даного організму

virtual int get_age()=0;

Деструктор~living() {}

};grass : public living - об’єкти класу: можливе зародження життяwolf: public living - об’єкти класу: представники раси Вовкolen : public living - об’єкти класу: представники раси Оленьflower : public living - об’єкти класу: представники раси Квітка

Для всіх породжених класів: grass, wolf, olen, flower - реалізований свій чистий метод. Своїх методів породжені класи не мають.

Умови існування об’єктів даних класів схематично представлені на рисунку:

Рисунок 1.8 Умови існування об’єктів

.4 Виклик і завантаження

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

2. КЕРІВНИЦТВО ПРОГРАМІСТА

2.1 Призначення та умови застосування программ

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

Програмний проект складається з таких файлів: Unit1.h, Unit2.h, Unit3.h, Unit4.h, Unit5.h, File1.h і Unit1.cpp, Unit2.cpp, Unit3.cpp, Unit4.cpp, Unit5.cpp

Для реалізації програми були визначені наступні змінні:::TBitmap* Fon; //зображення фону життэвого простору::TBitmap** Olen; //зображення для організму Олень::TBitmap** Wolf; //зображення для організму Вовк::TBitmap** Flower; //зображення для організму Квіткаk=0,g=0,f=0; //змінні для створення нових обєктів та порівняння їх з максимальною кількістюCountw,Counto,Countf; //максимальна кількість обєктів, які будуть виведені на екран*** live; //масив організмів*** livetemp; //допоміжний масив організмів

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

У файлі Unit1.cpp реалізований код програмного додатку.

Реалізовані наступні методи:__fastcall FormCreate(TObject *Sender) - метод, що відповідає за створення головного вікна програми.__fastcall Timer1Timer(TObject *Sender) - таймер, що відповідає за вивід зображень представників кожного виду на кожному етапі життя.__fastcall BitBtn1Click(TObject *Sender) - задання нової моделі живих організмів для дослідження

Методи:__fastcall N1AdvancedDrawItem(TObject *Sender,*ACanvas, TRect &ARect, TOwnerDrawState State);__fastcall N2AdvancedDrawItem(TObject *Sender,*ACanvas, TRect &ARect, TOwnerDrawState State);__fastcall N3AdvancedDrawItem(TObject *Sender,*ACanvas, TRect &ARect, TOwnerDrawState State);__fastcall N4AdvancedDrawItem(TObject *Sender,*ACanvas, TRect &ARect, TOwnerDrawState State);__fastcall N5AdvancedDrawItem(TObject *Sender,*ACanvas, TRect &ARect, TOwnerDrawState State);__fastcall N6AdvancedDrawItem(TObject *Sender,*ACanvas, TRect &ARect, TOwnerDrawState State);__fastcall N7AdvancedDrawItem(TObject *Sender,*ACanvas, TRect &ARect, TOwnerDrawState State);__fastcall N8AdvancedDrawItem(TObject *Sender,*ACanvas, TRect &ARect, TOwnerDrawState State);__fastcall N9AdvancedDrawItem(TObject *Sender,*ACanvas, TRect &ARect, TOwnerDrawState State);__fastcall N10AdvancedDrawItem(TObject *Sender,*ACanvas, TRect &ARect, TOwnerDrawState State);__fastcall N11AdvancedDrawItem(TObject *Sender,*ACanvas, TRect &ARect, TOwnerDrawState State);__fastcall N12AdvancedDrawItem(TObject *Sender,*ACanvas, TRect &ARect, TOwnerDrawState State);__fastcall N13AdvancedDrawItem(TObject *Sender,*ACanvas, TRect &ARect, TOwnerDrawState State);__fastcall N14AdvancedDrawItem(TObject *Sender,*ACanvas, TRect &ARect, TOwnerDrawState State);__fastcall N15AdvancedDrawItem(TObject *Sender,

TCanvas *ACanvas, TRect &ARect, TOwnerDrawState State); - промальовують фон пунктів меню.

void __fastcall BitBtn2Click(TObject *Sender); - задання кількості представників кожного виду.__fastcall BitBtn3Click(TObject *Sender); - зупинка життєвого циклу

void __fastcall BitBtn4Click(TObject *Sender); -запуск життєвого циклу

void __fastcall N4Click(TObject *Sender); - перехід на поле моделювання життєвого простору розміром 8×12__fastcall N6Click(TObject *Sender); - вихід з програми__fastcall N7Click(TObject *Sender); -- задання нової моделі живих організмів для дослідження__fastcall N8Click(TObject *Sender); ); - задання кількості представників кожного виду.

void __fastcall N10Click(TObject *Sender); - зупинка життєвого циклу__fastcall N11Click(TObject *Sender); -запуск життєвого циклу

void __fastcall N12Click(TObject *Sender); - допомога__fastcall N13Click(TObject *Sender); - інформація про програму__fastcall UpDown1Changing(TObject *Sender, bool &AllowChange); __fastcall BitBtn5Click(TObject *Sender); - перехід на поле моделювання життєвого простору розміром 8×12


.2. Характеристика програми

Програма «EvolAnim» має такі основні характеристики:

•        Умови розвитку життя залежать від декількох об’єктів

•        Об’єктами еволюції вибрані не клітини, а складні організми

•        Можливість задання різноманітних початкових умов для дослідження різних життєвих циклів

•        Можливість керувати запущеним життєвим циклов в ході його розвитку

.3 Вхідні та вихідні дані

Вхідними даними програми «EvolAnim» являються:

•        Кількість представників кожної з рас: вовка, оленя, квітки

•        Швидкість інтервалу зміни поколінь

Вихідними даними цієї програми являються:

•        Масив представників кожної з рас

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

програма додаток клас даний

2.4 Повідомлення

Спеціальних повідомлень немає.

3. КЕРІВНИЦТВО ОПЕРАТОРА

.1 Інтерфейс програми

Основними елементами інтерфейсу користувача (додаток Б, рис.1) є:

пункти меню (додаток Б, рис.2), панель швидкості (додаток Б, рис.5), інструменти управління програмою (додаток Б, рис.6), панель статистики (додаток Б, рис.7).

Також в додатку є ще чотири вікна: вікно програми з більшим життєвим простором (додаток Б, рис.3), вікно вибору початкових умов (додаток Б, рис.4), інформація про програму (додаток Б, рис.8), вікно допомоги (додаток Б, рис.9)

.2 Алгоритм роботи з програмою

.        Шляхом подвійного натискання лівої клавіші миші запустити на виконання файл Project1.exe.

.        Після запуску програми буде створено вікно з життєвим простором (робоче поле розміром 5×8 одиниць)(див. Додаток А рис.1).

.        Для того, щоб задати кількість представників кожного виду потрібно вибрати кнопку "Задать начальные условия" або в меню "Инструменты" вибрати відповідний пункт меню або натиснути комбінацію клавіш «Ctrl+M».

.        Для того, щоб розставити представників кожного виду на життєвий простір, потрібно вибрати кнопку "Новый набор" або в меню "Инструменты" вибрати відповідний пункт меню або натиснути комбінацію клавіш «Ctrl+N».

.        Для запуску імітації життєвого циклу потрібно вибрати кнопку "Запустить" або в меню "Инструменты" вибрати відповідний пункт меню або натиснути комбінацію клавіш «Ctrl+S».

.        Для зупинки імітації життєвого циклу потрібно вибрати кнопку "Остановить" або в меню "Инструменты" вибрати відповідний пункт меню або натиснути комбінацію клавіш «Ctrl+F».

.        Для вибору більшого життєвого простору (робоче поле 7×12) (див. додаток А рис.3) потрібно вибрати кнопку " Выбрать большее поле " або в меню "Главная" вибрати відповідний пункт меню.

.        Для завершення роботи з програмою необхідно вибрати пункт меню "Главная->Выход".

.3 Умови виконання програми

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

До складу технічних засобів повинен входити IBM-сумісний персональний комп'ютер (ПЕОМ) включає в себе:

Мінімальні системні вимоги:

а) процесор Intel або AMD з тактовою частотою не менше 300 МГц;

б) оперативну пам'ять обсягом 32 Мб

в) вільний простір на жорсткому диску не менше 20 Мб;

г) операційну систему MS Win9X

Рекомендовані системні вимоги:

а) процесор Intel або AMD з тактовою частотою не менше 2.4 ГГц та кількістю ядер не менше 2

б) оперативну пам'ять обсягом 2 Гб

в) вільний простір на жорсткому диску не менше 2 Гб;

г) операційну систему MS WinXP/Vista/Seven

.3.2   Вимоги до програмних засобів, що використовуються програмою

Системні програмні засоби, що використовуються програмою, повинні бути представлені ліцензійною локалізованою версією операційної системи Microsoft Windows XP Professional, Microsoft Window XP Home Edition, Microsoft Windows 98, Microsoft Windows 7.

ПЕРЕЛІК ПОСИЛАНЬ

1.      Руссинович М. и Соломон Д. Внутреннее устройство Microsoft Windows Server 2003, Windows XP и Windows 2000. Мастер-класс: /Пер. с англ. - 4-е изд. - М.: Издательско-торговый дом «Русская редакция»; - СПб.: Питер; 2005. - 992 с.

.        Рихтер Дж. Windows для профессионалов: создание эффективных Win32 приложений с учетом специфики 64-разрядной версии Windows: /Пер. с англ. - 4-е изд. - СПб; Питер; М.: Издательско-торговый дом "Русская Редакция", 2001. - 752 с.: ил.

.        Харт, Джонсон, М. Системное программирование в среде Windows - 3-е издание: Пер. с англ. - М.: Издательский дом «Вильямс», 2005. - 592 с.

.        Лафоре Р. Объектно-ориентированное программирование в С++. /Пер. с англ. - 4-е изд. -СПб.: Питер; 2004. - 924 с.

.        Уолтер Сэвитч (Walter Savitch) C++ в примерах. - М.: ЭКОМ, 1997. - 736 с.: ил.

.        Страуструп Б. С++ .Язык программирования. - М.: И.В.К.-СОФТ, 1991. - 315 с.

.        Архангельский Я.А. Программирование в С++ Builder 6. - М.: БИНОМ, 2003. - 1152с., ил.5.        Шрайбер С. Недокументированные возможности Windows 2000. Библиотека программиста. - СПб.: Питер, 2002. - 544 с.: ил.

.        Неббет, Гєри. Справочник по базовым функциям API Windows NT/2000.: Пер. с англ. - М.: , Издательский дом "Вильямс", 2002. - 528 с.: ил.

.        MS SDK Help Files.

.        Арханглельский А.Я., Тагин М.А. C++ Builder 6 и 2006.

Похожие работы на - Розробка додатку 'EvolAnim'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!