Розробка додатку "EvolAnim"
Створення програми "EvolAnim" для моделювання еволюції і розвитку живих організмів. Опис логічної структури. Умови існування об’єктів даних класів. Виклик і завантаження програми. Вимоги до складу й параметрів технічних засобів. Вхідні та вихідні дані.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 29.04.2014 |
Размер файла | 437,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
ВСТУП
Сучасні інформаційні технології увібрали в себе методи моделі та програмне забезбечення для вирішення суспільно важливих проблем людства. В останнє десятиліття еволюція розробки програмного забезпечення створила технології, що увібрали в себе засади об'єктного-орієнтованого програмування такі як: інкапсуляція даних, наслідування, поліморфізм. Флагманською мовою розробки програмного забезпечення, яка була покладена в основу топових середовищ створенння багатомодульних проектів є С++. В залежноті від специфіки застосування, технології основані на мові С++ розкривають локальні її особливості та переваги.
В рамках даного курсового проекту використовувалось середовище розробки Borland Builder C++, що використову «класичну» інтерпретацію мови С++ та дозволяє створювати багатомодульні проекти на основі програмних підходів, таких як: VP, OLE, COM.
Відповідно до поставленого завдання було розроблено додаток «EvolAnim». Дана тема є цікавою з погляду реалізації принципів об'єктно орієнтованого програмування, так як в найбільшій повноті розкриває їх, як буде описано нижче. Також реалізація моделі життєвого простору може складати інтерес для різних галузей науки: наприклад біології, екології, медицини.
1. ОПИС ПРОГРАМИ
1.1 Загальні відомості
Найменування програмного проекту: «Project1». Проект створено в середовищі розробки C++ Builder 6.
Project1.exe - назва виконуючого файлу програми. Програма для своєї роботи не вимагає попереднього встановлення специфічного (спеціального) програмного забезпечення.
1.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 класів форм додатку:
class TForm1 : public TForm - головна форма.
class TForm2 : public TForm
class TForm3 : public TForm
class TAboutBox : public TForm
class TForm5 : public TForm
Зв'язок між класами можна побачити з наступних діаграм:
Рисунок 1.1. Схема зв'язку між об'єктами
Рисунок 1.2. Композиція об'єктів класу Form1.
Рисунок 1.3. Композиція об'єктів класу Form2.
Рисунок 1.4. Композиція об'єктів класу AboutBox.
Рисунок 1.5. Композиція об'єктів класу Form3.
Рисунок 1.6. Композиція об'єктів класу Form5.
Для реалізації програми були визначені наступні змінні:
Graphics::TBitmap* Fon; //зображення фону життєвого простору
Graphics::TBitmap** Olen; //зображення для організму Олень
Graphics::TBitmap** Wolf; //зображення для організму Вовк
Graphics::TBitmap** Flower; //зображення для організму Квітка
int k=0,g=0,f=0; //змінні для створення нових об'єктів та порівняння їх з максимальною кількістю
int Countw,Counto,Countf; //максимальна кількість обєктів, які будуть виведені на екран
living*** live; //масив організмів
living*** livetemp; //допоміжний масив організмів
В програмному додатку була створена модель життєвого простору. Реалізація якої відображена у вигляді наступної ієрархії класів.
Рисунок 1.7. Граф наслідування класу living.
class living
{protected:
int X, Y; //координати виводу зображення на екран
int age; //вік організму
int CountSosedWolf; //кількість вовків, які є сусідами для даного організму
int CountSosedOlen; // кількість оленів, які є сусідами для даного організму
int CountSosedFlower; // кількість квітів, які є сусідами для даного організму
public:
//Метод повертає, організм якого класу вибраний
virtual state who()=0;
//конструктор по замовчанню
living():X(0),Y(0),age(0),next(0),CountSosedWolf(0),CountSosedOlen(0),
CountSosedFlower(0) { }
//конструктор з параметрами
living(int XX,int YY,int Age)
{X=XX;
Y=YY;
age=Age;
CountSosedWolf=0;
CountSosedOlen=0;
CountSosedFlower=0;
next=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;
//Метод, який повертає кількість вовків для даного організму
virtual int get_CountSosedWolf()=0;
//Метод, який повертає кількість оленів для даного організму
virtual int get_CountSosedOlen()=0;
//Метод, який повертає кількість квітів для даного організму
virtual int get_CountSosedFlower()=0;
//Метод, який повертає вік даного організму
virtual int get_age()=0;
Деструктор
virtual ~living() {}
};
class grass : public living - об'єкти класу: можливе зародження життя
class wolf: public living - об'єкти класу: представники раси Вовк
class olen : public living - об'єкти класу: представники раси Олень
class flower : public living - об'єкти класу: представники раси Квітка
Для всіх породжених класів: grass, wolf, olen, flower - реалізований свій чистий метод. Своїх методів породжені класи не мають.
Умови існування об'єктів даних класів схематично представлені на рисунку:
Рисунок 1.8 Умови існування об'єктів
1.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
Для реалізації програми були визначені наступні змінні:
Graphics::TBitmap* Fon; //зображення фону життэвого простору
Graphics::TBitmap** Olen; //зображення для організму Олень
Graphics::TBitmap** Wolf; //зображення для організму Вовк
Graphics::TBitmap** Flower; //зображення для організму Квітка
int k=0,g=0,f=0; //змінні для створення нових обєктів та порівняння їх з максимальною кількістю
int Countw,Counto,Countf; //максимальна кількість обєктів, які будуть виведені на екран
living*** live; //масив організмів
living*** livetemp; //допоміжний масив організмів
У файлі Unit1.h описані прототипи функцій і методів даної форми:
TImage - використовується для відображення графічних зображень на робочому полі життєвого простору.
TBitBtn - забезпечує роботі функції програми.
TLabel і TEdit - використовується для виводу символьних повідомлень користувачеві, таких як: кількість представників кожного виду на даному етапі еволюлюції, час зміни популяцій тощо.
TUpDown - використовується автоматичного прокручування вибору швидкості зміни популяцій.
TMainMenu - головне меню програми.
TTimer - використовується для відліку часу та контролювання виводу популяцій на кожному етапі.
TMenuItem - використовується для пунктів головного меню.
У файлі Unit1.cpp реалізований код програмного додатку.
Реалізовані наступні методи:
void __fastcall FormCreate(TObject *Sender) - метод, що відповідає за створення головного вікна програми.
void __fastcall Timer1Timer(TObject *Sender) - таймер, що відповідає за вивід зображень представників кожного виду на кожному етапі життя.
void __fastcall BitBtn1Click(TObject *Sender) - задання нової моделі живих організмів для дослідження
Методи:
void __fastcall N1AdvancedDrawItem(TObject *Sender,
TCanvas *ACanvas, TRect &ARect, TOwnerDrawState State);
void __fastcall N2AdvancedDrawItem(TObject *Sender,
TCanvas *ACanvas, TRect &ARect, TOwnerDrawState State);
void __fastcall N3AdvancedDrawItem(TObject *Sender,
TCanvas *ACanvas, TRect &ARect, TOwnerDrawState State);
void __fastcall N4AdvancedDrawItem(TObject *Sender,
TCanvas *ACanvas, TRect &ARect, TOwnerDrawState State);
void __fastcall N5AdvancedDrawItem(TObject *Sender,
TCanvas *ACanvas, TRect &ARect, TOwnerDrawState State);
void __fastcall N6AdvancedDrawItem(TObject *Sender,
TCanvas *ACanvas, TRect &ARect, TOwnerDrawState State);
void __fastcall N7AdvancedDrawItem(TObject *Sender,
TCanvas *ACanvas, TRect &ARect, TOwnerDrawState State);
void __fastcall N8AdvancedDrawItem(TObject *Sender,
TCanvas *ACanvas, TRect &ARect, TOwnerDrawState State);
void __fastcall N9AdvancedDrawItem(TObject *Sender,
TCanvas *ACanvas, TRect &ARect, TOwnerDrawState State);
void __fastcall N10AdvancedDrawItem(TObject *Sender,
TCanvas *ACanvas, TRect &ARect, TOwnerDrawState State);
void __fastcall N11AdvancedDrawItem(TObject *Sender,
TCanvas *ACanvas, TRect &ARect, TOwnerDrawState State);
void __fastcall N12AdvancedDrawItem(TObject *Sender,
TCanvas *ACanvas, TRect &ARect, TOwnerDrawState State);
void __fastcall N13AdvancedDrawItem(TObject *Sender,
TCanvas *ACanvas, TRect &ARect, TOwnerDrawState State);
void __fastcall N14AdvancedDrawItem(TObject *Sender,
TCanvas *ACanvas, TRect &ARect, TOwnerDrawState State);
void __fastcall N15AdvancedDrawItem(TObject *Sender,
TCanvas *ACanvas, TRect &ARect, TOwnerDrawState State); - промальовують фон пунктів меню.
void __fastcall BitBtn2Click(TObject *Sender); - задання кількості представників кожного виду.
void __fastcall BitBtn3Click(TObject *Sender); - зупинка життєвого циклу
void __fastcall BitBtn4Click(TObject *Sender); -запуск життєвого циклу
void __fastcall N4Click(TObject *Sender); - перехід на поле моделювання життєвого простору розміром 8Ч12
void __fastcall N6Click(TObject *Sender); - вихід з програми
void __fastcall N7Click(TObject *Sender); -- задання нової моделі живих організмів для дослідження
void __fastcall N8Click(TObject *Sender); ); - задання кількості представників кожного виду.
void __fastcall N10Click(TObject *Sender); - зупинка життєвого циклу
void __fastcall N11Click(TObject *Sender); -запуск життєвого циклу
void __fastcall N12Click(TObject *Sender); - допомога
void __fastcall N13Click(TObject *Sender); - інформація про програму
void __fastcall UpDown1Changing(TObject *Sender, bool &AllowChange);
void __fastcall BitBtn5Click(TObject *Sender); - перехід на поле моделювання життєвого простору розміром 8Ч12
void __fastcall FormClose(TObject *Sender, TCloseAction &Action); - знищення динамічно створених об'єктів і завершення програми
2.2. Характеристика програми
Програма «EvolAnim» має такі основні характеристики:
* Умови розвитку життя залежать від декількох об'єктів
* Об'єктами еволюції вибрані не клітини, а складні організми
* Можливість задання різноманітних початкових умов для дослідження різних життєвих циклів
* Можливість керувати запущеним життєвим циклов в ході його розвитку
2.3 Вхідні та вихідні дані
Вхідними даними програми «EvolAnim» являються:
* Кількість представників кожної з рас: вовка, оленя, квітки
* Швидкість інтервалу зміни поколінь
Вихідними даними цієї програми являються:
* Масив представників кожної з рас
* Кількість представників кожної з рас: вовка, оленя, квітки на кожному з етапів еволюції
програма додаток клас даний
2.4 Повідомлення
Спеціальних повідомлень немає.
3. КЕРІВНИЦТВО ОПЕРАТОРА
3.1 Інтерфейс програми
Основними елементами інтерфейсу користувача (додаток Б, рис.1) є:
пункти меню (додаток Б, рис.2), панель швидкості (додаток Б, рис.5), інструменти управління програмою (додаток Б, рис.6), панель статистики (додаток Б, рис.7).
Також в додатку є ще чотири вікна: вікно програми з більшим життєвим простором (додаток Б, рис.3), вікно вибору початкових умов (додаток Б, рис.4), інформація про програму (додаток Б, рис.8), вікно допомоги (додаток Б, рис.9)
3.2 Алгоритм роботи з програмою
1. Шляхом подвійного натискання лівої клавіші миші запустити на виконання файл Project1.exe.
2. Після запуску програми буде створено вікно з життєвим простором (робоче поле розміром 5Ч8 одиниць)(див. Додаток А рис.1).
3. Для того, щоб задати кількість представників кожного виду потрібно вибрати кнопку "Задать начальные условия" або в меню "Инструменты" вибрати відповідний пункт меню або натиснути комбінацію клавіш «Ctrl+M».
4. Для того, щоб розставити представників кожного виду на життєвий простір, потрібно вибрати кнопку "Новый набор" або в меню "Инструменты" вибрати відповідний пункт меню або натиснути комбінацію клавіш «Ctrl+N».
5. Для запуску імітації життєвого циклу потрібно вибрати кнопку "Запустить" або в меню "Инструменты" вибрати відповідний пункт меню або натиснути комбінацію клавіш «Ctrl+S».
6. Для зупинки імітації життєвого циклу потрібно вибрати кнопку "Остановить" або в меню "Инструменты" вибрати відповідний пункт меню або натиснути комбінацію клавіш «Ctrl+F».
7. Для вибору більшого життєвого простору (робоче поле 7Ч12) (див. додаток А рис.3) потрібно вибрати кнопку " Выбрать большее поле " або в меню "Главная" вибрати відповідний пункт меню.
8. Для завершення роботи з програмою необхідно вибрати пункт меню "Главная->Выход".
3.3 Умови виконання програми
3.3.1 Вимоги до складу й параметрів технічних засобів
До складу технічних засобів повинен входити IBM-сумісний персональний комп'ютер (ПЕОМ) включає в себе:
Мінімальні системні вимоги:
а) процесор Intel або AMD з тактовою частотою не менше 300 МГц;
б) оперативну пам'ять обсягом 32 Мб
в) вільний простір на жорсткому диску не менше 20 Мб;
г) операційну систему MS Win9X
Рекомендовані системні вимоги:
а) процесор Intel або AMD з тактовою частотою не менше 2.4 ГГц та кількістю ядер не менше 2
б) оперативну пам'ять обсягом 2 Гб
в) вільний простір на жорсткому диску не менше 2 Гб;
г) операційну систему MS WinXP/Vista/Seven
3.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 с.
2. Рихтер Дж. Windows для профессионалов: создание эффективных Win32 приложений с учетом специфики 64-разрядной версии Windows: /Пер. с англ. - 4-е изд. - СПб; Питер; М.: Издательско-торговый дом "Русская Редакция", 2001. - 752 с.: ил.
3. Харт, Джонсон, М. Системное программирование в среде Windows - 3-е издание: Пер. с англ. - М.: Издательский дом «Вильямс», 2005. - 592 с.
4. Лафоре Р. Объектно-ориентированное программирование в С++. /Пер. с англ. - 4-е изд. -СПб.: Питер; 2004. - 924 с.
5. Уолтер Сэвитч (Walter Savitch) C++ в примерах. - М.: ЭКОМ, 1997. - 736 с.: ил.
6. Страуструп Б. С++ .Язык программирования. - М.: И.В.К.-СОФТ, 1991. - 315 с.
7. Архангельский Я.А. Программирование в С++ Builder 6. - М.: БИНОМ, 2003. - 1152с., ил.5. Шрайбер С. Недокументированные возможности Windows 2000. Библиотека программиста. - СПб.: Питер, 2002. - 544 с.: ил.
8. Неббет, Гєри. Справочник по базовым функциям API Windows NT/2000.: Пер. с англ. - М.: , Издательский дом "Вильямс", 2002. - 528 с.: ил.
9. MS SDK Help Files.
10. Арханглельский А.Я., Тагин М.А. C++ Builder 6 и 2006.
Размещено на Allbest.ru
Подобные документы
Розробка програми "Тетрис", яка виконує створення та переміщення фігур, видалення повних рядів та нарахування балів. Вимоги до умов експлуатації ігрової програми, вхідні та вихідні дані. Проектування діаграми класів та діаграми станів ігрового додатку.
курсовая работа [515,8 K], добавлен 27.05.2019Загальні відомості про протоколи: Інтернету, управління передачею, користувача. Функції та структури, які беруть участь у реалізації алгоритму передачі даних. Виклик та завантаження, розробка структури програми. Вхідні та вихідні данні з сервера.
курсовая работа [1,5 M], добавлен 01.12.2010Мови програмування. Алгоритм програми, функціональні обмеження на застосування. Опис логічної структури. Типи комп'ютерів, що використовуються при роботі програми. Виклик і завантаження. Організація, характер та попередня підготовка вихідних даних.
курсовая работа [95,0 K], добавлен 01.04.2016Проектування інтерфейсу програми. Вимоги до продукту. Вхідні дані на розробку автоматизованої системи. Вибір середовища програмування. Розробка структури бази даних. Функціональна та логічна структура програми. Розробка структури таблиць бази даних.
курсовая работа [43,1 K], добавлен 30.06.2015Створення програми, яка здатна перетворювати двовимірні зображення у об’ємні. Проект для побудови ландшафтів, отримання фотографій об’єктів під іншим кутом огляду, досліджень поверхонь зрізів матеріалів. Опис алгоритму програми. Вхідні та вихідні дані.
курсовая работа [548,3 K], добавлен 09.06.2010Створення програми, що видає результати голосування та підсумки виборів. Алгоритм розробки програми. Опис структури даних та вимоги до них, стандартних процедур та функцій, файлів та їх призначення. Приклад тестування та результати роботи програми.
курсовая работа [1,0 M], добавлен 28.06.2012Послідовність створення бази даних автопарку. Визначення об'єктів та класів і зв’язків між ними. Конструктори та деструктори, успадкування класів. Реалізація програми в середовищі Visual Studio C++, її тестування. Побудова об’єктної моделі додатку.
курсовая работа [529,0 K], добавлен 25.01.2016Теоретичні відомості про язик С++. Розробка програми, що виконує основні арифметичні дії над простими та складними числами на язику С++. Опис алгоритму програми та її код. Інструкція по користуванню. Обгрунтовування вибору та складу технічних засобів.
курсовая работа [852,8 K], добавлен 30.11.2011Загальна характеристика методів проектування та документації додатків. Розробка інтерфейсу програми для медичного діагностичного центру. Вибір архітектури. Описання логічної структури програми. Розробка структури бази даних проекту, полів таблиць.
курсовая работа [2,0 M], добавлен 21.08.2015Аналіз предметної галузі задачі моделювання пострілу балісти через стіну по мішені. Структури даних та діаграми класів для розв'язання задачі. Схеми взаємодії об’єктів та алгоритми виконання їх методів. Опис розробленої програми, інструкція користувача.
курсовая работа [1,0 M], добавлен 18.05.2014