Классификация юнитов онлайн игры World of Tanks
Проектирование программного средства "База данных". Классификация юнитов онлайн игры "World of Tanks". Разработка диаграмм прецедентов, развертывания и деятельности. Руководство пользователя. Тестирование приложения, программа и методика испытаний.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 17.08.2013 |
Размер файла | 920,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Курсовой проект
по курсу: Объектно-ориентированное программирование
по теме: БД «Классификация юнитов онлайн игры World of Tanks»
Содержание
Введение
1. Анализ исходных данных
1.1 Характеристика требований на разработку
1.2 Анализ предметной области
1.3 Специальное и общесистемное программное обеспечение
2. Программное проектирование
2.1 Разработка диаграмм прецедентов
2.2 Разработка диаграмм классов
2.3 Разработка диаграмм деятельности
2.4 Разработка диаграмм развертывания
3. Программная реализация
3.1 Разработка описания программы
3.2 Разработка руководства пользователя
3.3 Программа и методика испытаний
3.4 Тестирование программного обеспечения
Заключение
Литература
Приложение А Диаграмма прецедентов
Приложение Б Диаграмма деятельности
Приложение В Диаграмма классов
Приложение Г Диаграмма развертывания
Введение
юнит игра world tank
В последнее время резко возрос интерес к программированию. Это связано с развитием и внедрением в повседневную жизнь информационных и коммуникационных технологий. Если человек имеет дело с компьютером, то, рано или поздно, у него возникает желание, а иногда необходимость программировать.
Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую «быструю разработку». В основе систем быстрой разработки, или RAD-систем лежит технология визуального проектирования и событийного проектирования, суть которой в том, что среда разработки берет на себя большую часть рутины, оставляя программисту работу по проектированию окон и созданию функций обработки событий.
Одной из широко используемых RAD-систем является Borland C++ Builder, которая позволяет создавать различные программы: от простейших однооконных приложений до программ управления распределенными базами данных. В качестве языка программирования в Borland C++ Builder используется С++.
Язык С++ официально получил свое название в 1983 году. Он был создан на основе более старого языка С и имел целью упростить процесс создания программ. С++ позволил программистам составлять алгоритмы с помощью привычных общечеловеческих понятий. Если программирование на С напоминает скорее программирование в машинных кодах, то в С++ можно настроить программу на конкретную проблемную область и работать не с числами и переменными, а, например, с такими понятиями как армия, отряд, боевая единица, что значительнее легче и удобней.
Язык С++ стал популярным благодаря тому, что он полностью унаследовал и расширил возможности языка Си, который до сих пор часто используется в задачах системного программирования.
ООП позволяет разложить проблему на связанные между собой задачи. Каждая проблема становится самостоятельным объектом, содержащим свои собственные коды и данные, которые относятся к этому объекту. В этом случае исходная задача в целом упрощается, и программист получает возможность оперировать с большими по объему программами.
В этом определении ООП отражается известный подход к решению сложных задач, когда мы разбиваем задачу на подзадачи и решаем эти подзадачи по отдельности. С точки зрения программирования подобный подход значительно упрощает разработку и отладку программ.
Сегодня язык С++ очень распространен во всем мире. Большинство программ как в России, так и за рубежом создают именно на этом языке. В частности, операционная система Windows написана средствами языка С++.
1. Анализ исходных данных
1.1 Характеристика требований на разработку
В данном курсовом проекте необходимо разработать базу данных на тему «Классификация юнитов онлайн игры World of Tanks». Программа должна иметь графический интерфейс для просмотра, создания и редактирования объектов, осуществлять загрузку и сохранение данных на диске, использовать не менее восьми сущностей, использовать механизм наследования осуществлять поиск объектов по различным признакам.
1.2 Анализ предметной области
Поскольку нам необходимо разработать базу данных, используя принципы ООП, то удобно будет использовать объекты для хранения данных. Для определения конечных объектов воспользуемся механизмом наследования. Поскольку тема данного курсового проекта «Классификация юнитов онлайн игры World of Tanks», то за базовый класс примем некоторое устройство (класс device). В нем будут храниться общие для всех товаров данные: название, модель и цена. Далее, создадим 2 новых класса, которые наследуют класс устройства: это будут класс легких и тяжелых танков (LTMT), класс тяжелых танков и пт-сау (HTATSPA). Эти классы содержат определенные данные, которые соответствуют требуемому типу устройств. Затем класс легких и средних танков наследуют классы легких танков (LT) и средних танков (MT), класс тяжелых танков и пт-сау наследуют классы тяжелых танков (HT) и пт-сау (ATSPA). Класс САУ (SPA), класс экипажа (CREW), класс игровых достижений (ACHIVE), класс игровых зон(MAP). Эти классы являются конечными, каждый объект которых будет хранить одну запись нашей базы данных. Сами объекты будем создавать динамически, а для доступа к ним будет использоваться массив указателей.
1.2 Специальное и общесистемное программное обеспечение
Для разработки базы данных использовался C++ Builder версии 6. После компиляции проекта в exe-файл дополнительные библиотеки для работы не требуются. Сохранение данных будет осуществляться в простой двоичный файл, поэтому программе не будут требоваться дополнительные сервера данных или драйвера доступа ODBC.
2. Программное проектирование
Разработка диаграмм прецедентов (Приложение А)
Разработка диаграмм классов (Приложение Б)
Разработка диаграмм деятельности (Приложение В)
Разработка диаграмм развертывания (Приложение Г)
Программная реализация
Детальная реализация функциональных частей программного обеспечения
Реализация программного обеспечения
2.1 Разработка диаграммы деятельности
После запуска программа ожидает действий пользователя. Пользователь может загрузить базу данных из файла (при этом открывается бинарный файл, из него считывается структура-заголовок, а затем последовательно все массивы объектов), или же начать непосредственно работу с данными: выбрать вид юнита (нажав соответствующую клавишу на панели инструментов), затем осуществлять добавление, изменение или удаление данных (записей) БД, а также осуществлять поиск по всем таблицам(сущностям) БД. Поиск происходит по полям «Модель танка (сау)/ Имя фамилия/Достижение/Игровая зона», «Страна/Специализация/Требуется/Тип карты» и «Цена».
Пред завершением работы пользователь имеет возможность сохранить данные в файл на диске. При этом создается новый бинарный файл, в который записывается структура-заголовок, а затем последовательно все массивы объектов с данными.
Полученная диаграмма деятельности размещена в приложении Б
2.2 Разработка диаграммы классов
Рассмотрим подробнее описание классов. Все классы описаны в файле «struct.h», они содержат определенные данные и методы доступа к этим данным.
Первый «базовый» класс называется «Танки» (Tanks). Вот его описание:
class Tanks
{
public:
unsigned long int getprice();
char* getcountry();
char* getmodel();
int getekipage();
void setmodel(char *s);
void setcountry(char *s);
void setprice(unsigned long int p);
void setekipage(int r);
Tanks();
~Tanks();
private:
int ekipage;
unsigned long int price;
char model[30],country[30];
};
Данный класс имеет следующие свойства, присущие всем цифровым устройствам:
model - модель юнита
country - страна юнита
ekipage - экипаж техники
price - цена
Кроме данных класс содержит методы, которые позволяют получить или установить значение данных, а также конструктор, который инициализирует значения по умолчанию
Класс LTMT наследует все свойства и методы класса Tanks.
class LTMT:public Tanks
{
public:
LTMT();
~LTMT();
int getmspeed();
int getsspeedch();
double getdenspower();
void setmspeed(int r);
void setsspeedch(int r);
void setdenspower(double d);
private:
int mspeed;
int sspeedch;
double denspower;
};
Данный класс характеризует легкие и тяжелые танки в целом и имеет следующие свойства:
mspeed - максимальная скорость танка
sspeedch - скорость поворота шасси
denspower - удельная мощность
Кроме данных класс содержит методы, которые позволяют получить или установить значение данных, а также конструктор, который инициализирует значения по умолчанию.
Класс LT наследует все свойства и методы класса computer. Объекты данного класса будут содержать информацию о легких и средних танках.
class LT: public LTMT
{
public:
LT();
~LT();
int getwatch();
void setwatch(int r);
private:
int watch;
Данный класс содержит единственное свойство watch - обзор танка (м)
Класс MT также наследует все свойства и методы класса LTMT и характеризует собой данные о легких и средних танках.
class MT:public LTMT
{
public:
MT();
~MT();
int getdemageminmt();
void setdemageminmt(int r);
private:
int demageminmt;
} ;
Данный класс также содержит единственное свойство demageminmt - урон в минуту (ед/мин)
Класс HTATSPA наследует все свойства и методы класса Tanks. Класс характеризует категорию юнитов «Тяжелые танки и пт-сау».
class HTATSPA: public Tanks
{
public:
HTATSPA();
~HTATSPA();
char* getarmordin();
void setarmordin(char *s);
private:
char armordin[20];
};
Данный класс содержит единственное свойство armordin - Бронепробиваемость базовым снарядом (мм)
Класс HT наследует все свойства и методы класса HTATSPA. Объекты данного класса будут содержать информацию тяжелых танках.
class HT:public HTATSPA
{
public:
HT();
~HT();
char* getarmorbody();
char* getarmorhead();
int getmdemageht();
void setarmorbody(char *s);
void setarmorhead(char *s);
void setmdemageht(int r);
private:
char armorbody[20];
char armorhead[20];
int mdemageht;
} ;
Данный класс содержит следующие свойства:
armorbody - бронированность корпуса;
armorhead - бронированность башни;
mdemageht - средний урон за выстрел.
Класс ATSPA также является наследником класса HTATSPA:
class ATSPA:public HTATSPA
{
public:
ATSPA();
~ATSPA();
int getmspeedspa();
int getsspeedchspa();
int getdemageminspa();
double getrhun();
void setmspeedspa(int r);
void setsspeedchspa(int r);
void setdemageminspa(int r);
void setrhun(double d);
private:
int mspeedspa;
int sspeedchspa;
int demageminspa;
double rhun;} ;
Данный класс содержит следующие свойства:
mspeedspa - максимальная скорость;
sspeedchspa - скорость поворота шасси;
demageminspa - средний урон в минуту;
rhun - разброс на 100 м
Класс SPA является наследником базового класса Tanks
class SPA: public Tanks
{
public:
SPA();
~SPA();
int getshootspa();
double getrhunspa();
double getradrange();
double gettimes();
int getreloadtime();
void setradrange(double d);
void settimes(double d);
void setreloadtime(int r);
void setshootspa(int r);
void setrhunspa(double d);
private:
double radrange;
double times;
int reloadtime;
int shootspa;
double rhunspa;
};
Класс SPA имеет следующий ряд свойств
shootspa - средний урон за выстрел;
rhunspa - разброс на 100 м;
radrange - разлет осколов;
times - время сведения;
reloadtime - время перезарядки.
Класс CREW
class CREW
{
public:
CREW();
~CREW();
char* getspecialization();
char* getnation();
char* gettitle();
char* getfio();
void setspecialization(char *s);
void setnation(char *s);
void settitle(char *s);
void setfio(char *s);
private:
char title[30];
char fio[30];
char specialization[30];
char nation[30];
};
CREW содержит 4 свойства:
tittle - звание члена экипажа;
fio - фамилия и имя члена экипажа;
specialization - специализация члена экипажа;
nation - национальность члена экипажа.
Класс ACHIVE
class ACHIVE
{
public:
ACHIVE();
~ACHIVE();
char* getachiv();
char* getneed();
int getnumb();
int getnumbstep();
void setnumb(int r);
void setnumbstep(int r);
void setachiv(char *s);
void setneed(char *s);
private:
int numb;
int numbstep;
char achiv[30];
char need[30];
};
Класс ACHIVE содержит 4 свойства:
numb - количество испытаний для получения достижения;
numbstep - количество степеней достижения;
achiv - название достижения;
need - требующиеся действия для получения достижения.
Класс MAP
class MAP
{
public:
MAP();
~MAP();
char* getmapname();
char* getmaptype();
void setmapname(char *s);
void setmaptype(char *s);
private:
char mapname[30];
char maptype[60];
} ;
Класс MAP содержит 2 свойства: mapname - название игровой зоны; maptype - тип игровой зоны.
2.3 Разработка диаграммы прецедентов
Действия, которые пользователь может осуществлять сразу после запуска программы - загрузка данных из бинарного файла, сохранение данных в бинарный файл и поиск информации в базе данных. Для непосредственной работы с данными пользователь долже выбрать сущность, в которой будет выполняться добавление, изменение или удаление данных. Диаграмма прецедентов размещена в приложении А.
2.4 Разработка пользовательского интерфейса
Пользовательский интерфейс реализован с помощью нескольких форм:
- Главной формы. Это основная форма программы, которая содержит главное меню и панель навигации по разделам, а также таблицу, в которой отображаются юниты выбранной категории. Пользователь выбирает нужную категорию юнитов, затем в главном меню имеется возможность выбрать нужное действие - добавить, изменить, удалить запись БД, а также осуществить поиск. Для загрузки и сохранения данных на диске используются стандартные диалоги открытия и сохранения файла соответственно.
Изображение главной формы показано на рис.1
Рисунок 1. Главная форма
- Формы поиска информации. В данной форме пользователь вводит информацию для поиска в Базе Данных. Результаты поиска отображаются в таблице. Пользователь может либо посмотреть подробную информацию о каждом найденном юните, либо перейти в раздел непосредственно к найденному юниту.
Рисунок 2. Поиск юнитов в базе данных
- Форм ввода/редактирования каждого типа юнита. Данные формы используются для добавления нового юнита в базу данных или для редактирования уже имеющегося юнита. Все формы имеют одинаковый внешний вид и отличаются только полями БД.
Рисунок 3. Форма ввода и редактирования юнита
3. Программная реализация
3.1 Разработка описания программы
Программное средство "База данных "Классификация юнитов онлайн игры World of Tanks"" предназначено для хранения, учета и поиска информации о различных юнитах онлайн игры.
Программа имеет 8 категорий товаров, а именно: легкие танки, средние танки, тяжелые танки, ПТ-САУ, САУ. Программное средство позволяет добавлять, изменять, удалять информацию из базы данных, осуществлять поиск по нескольким полям записи, а также сохранять все данные в двоичный файл на жестком диске. Классификация юнитов WOT имеет интуитивно понятный интерфейс, простую и понятную навигацию по разделам программы. Минимальные системные требования для запуска: компьютер на базе P-III, 128 Мб свободной оперативной памяти, операционная система Windows XP.
3.2 Разработка руководства пользователя
Для начала работы необходимо запустить файл WOT.exe. На экране появится главная форма приложения, которая представлена на рисунке 1 и имеет следующие элементы управления: главное меню программы и панель доступа к товарам по категориям.
Используя главное меню можно добавлять новые, изменять или удалять уже существующие данные о товарах, а также осуществлять поиск записей по базе данных. Товары отображаются в таблице, которая также находится на главной форме.
При работе программы на экране могут появляться следующие сообщения:
- Файл успешно прочитан
- Файл успешно сохранен
- Ошибка открытия файла!
- Удалить данную запись ?
Первые два сообщения говорят об успешном чтении БД из файла и записи БД в файл соответственно.
Третье сообщение сигнализирует об ошибке записи данных в файл при сохранении БД. Такая ошибка может возникнуть в том случае, если введено некорректное имя файла, или же файл занят другой программой. Пользователь должен попытаться сохранить данные в файл с другим именем.
Четвертое сообщение-запрос появляется при попытке удалить запись из базы данных. Пользователь должен ответить на вопрос «Да» или «нет». Данный диалог предусмотрен в программе для предотвращения случайного удаления записей.
3.3 Программа и методика испытаний
Тестирование программы непосредственно подразумевает в себе проверку корректности работы программы, а также выявление всевозможных ошибок.
В первую очередь необходимо протестировать программу на достоверность отображаемой информации. Маловероятно, что использование приложения может повлечь глобальную ошибку, т.к. большинство операций реализовано стандартными методами среды разработки.
Методы, которыми следует проводить тестирование, могут показаться примитивными и слишком долгими, но они являются наиболее эффективными и дают возможность полной и наиболее точной отладки приложения. Требуется провести использование программного продукта в течение некоторого времени, при этом задействовать все возможностиприложения, ведь именно так можно будет увидеть все недочеты в проектировании и реализации.
3.4 Тестирование программного обеспечения
Результаты тестирования программы приведены в таблице 3.
Таблица 3 - Тестирование программы
Тестируемый блок |
Ожидаемый результат |
Полученный результат |
Вывод |
|
1 |
2 |
3 |
4 |
|
Ввод данных о юните |
Отображение на экране введённой информации |
Вывод информации о юните на экран |
Ввод данных о юните выполняется правильно |
|
Удаление данных о юните |
Удаление информации о выбранном юните из базы данных |
Удаление информации о выбранном юните |
Удаление данных о юните выполняется правильно |
|
Изменение данных о юните |
Изменение информации о выбранном юните в базе данных |
Изменение данных о юните |
Изменение данных о юните выполняется правильно |
После выполнения тестирования получены результаты, приведенные в таблице 3. Сравниваем полученные и ожидаемые результаты и на основании этого делаем вывод о работе спроектированной системы. Оперативность и достоверность выводимой информации позволяет сделать вывод о правильности передачи данных, обработке и визуализации.
Программисты часто пренебрегают имеющимися в их распоряжении отладчиками и не используют их в полной мере, полагаясь на собственную сообразительность и пользуясь кустарными приемами отладки. Следует также подчеркнуть, что отладчик является еще и прекрасным инструментом изучения языка, который позволяет производить наглядные эксперименты с различными языковыми конструкциями.
В Borland C++ Builder6 предусмотрены следующие элементы отладки:
контрольные точки;
наблюдение за переменными;
пошаговое исполнение кода.
На окончательном этапе тестирования серьёзных ошибок или сбоев в работе программы не обнаружено.
Заключение
В результате выполнения курсового проекта мною были получены знания и навыки объектно-ориентированного программирования.
Объектно-ориентированные технологии имеют следующие достоинства:
уменьшение сложности программного обеспечения;
повышение надежности программного обеспечения;
возможность модификации отдельных компонентов программного обеспечения без изменения других компонентов;
управляемость и функциональная расширяемость программного обеспечения;
повторное использование компонентов другого программного обеспечения для формирования бизнесс-логики.
В результате выполнения курсового проекта реализовано приложение, полностью удовлетворяющее поставленной задачи.
Литература
Дейтел Х.М., Дейтел П.Дж. Как программировать на С++: Москва, 2001
Культин Н. Самоучитель С++Builder: Санкт-Петербург, 2004
Скляров В.А. Язык С++ и объектно-ориентированное программирование: Минск, 2007
Шилдт Герберт С++ руководство для начинающих, второе издание -М.: издательский дом «Вильямс», 2009 - 672 с.
Приложение А
Диаграмма прецедентов
Рис. А.1 - Диаграмма прецедентов
Приложение Б
Диаграмма деятельности
Рис. Б.1 - Диаграмма деятельности
Приложение В
Диаграмма КЛАССОВ
Рис. В.1 - Диаграмма классов
Приложение Г
Диаграмма развертываения
Рис. Г.1 - Диаграмма развертывания
Размещено на Allbest.ru
Подобные документы
Проектирование игры "Морской бой" путем составления диаграмм UML, IDEF0, DFD, моделирующих требования к программе. Разработка программы с использованием языка C# и фреймворка.NETFramework 3.5. Тестирование белого ящика и альфа-тестирование продукта.
курсовая работа [3,9 M], добавлен 24.10.2013Создание онлайн-приложения, которое позволит пользователям создавать тесты, подписываться на аудиторию и просматривать результаты тестов. Проект реализован с использованием фреймворка React.JS и MS SQL Server на локальной машине под управлением Windows.
дипломная работа [936,4 K], добавлен 23.08.2017Обоснование необходимости разработки программы для игры "Тетрис". Математическая и графическая части алгоритма. Выбор языка и среды программирования. Отладка текста программы, разработка интерфейса пользователя. Тестирование, руководство пользователя.
курсовая работа [1,5 M], добавлен 17.01.2011Проектирование системы управления базами данных. Особенности реализации в MS SQL. Разработка пользовательского интерфейса. Тестирование и отладка приложения. Руководство пользователя и системного администратора. Анализ и методы разработки приложений.
курсовая работа [867,9 K], добавлен 16.07.2013Приемы программирования в Delphi. Алгоритм поиска альфа-бета отсечения, преимущества. Описание программного средства. Разработка программы, реализующая алгоритм игры "реверси". Руководство пользователя. Листинг программы. Навыки реализации алгоритмов.
курсовая работа [357,1 K], добавлен 28.02.2011Разработка сайта, обеспечивающего функции по приему и обработке онлайн-заказов обоев. Перечень бизнес-процессов, включенных в разработку информационной системы. Инфраструктура разрабатываемой информационной системы. Тестирование программного обеспечения.
курсовая работа [74,3 K], добавлен 25.05.2015Особенности визуальной среды программирования Microsoft Visual Studio 2015 Enterprise. Средства объектно-ориентированного программирования. Этапы проектирования программного комплекса. Отладка и тестирование программы игры "Виселица".
курсовая работа [2,4 M], добавлен 31.01.2016Алгоритмическое представление и описание правил игры "Эволюция". Построение диаграммы прецедентов. Разработка графического интерфейса пользователя. Реализация интерфейса в среде Unity. Структура файла сохранения игры. Проектирование поведения компьютера.
дипломная работа [3,3 M], добавлен 18.02.2017Разработка приложений баз данных Delphi. Построение концептуальной модели, атрибуты сущностей и связей. Проектирование приложения для ведения базы данных телефонных номеров с возможностью поиска по всем имеющимся полям. Тестирование программного средства.
курсовая работа [641,7 K], добавлен 17.08.2013Разработка диагностической части программного средства по развитию наглядно-образного мышления на основе игры "Танграм" для детей дошкольного и младшего школьного возраста. Формирование требований к диагностической части. Руководство пользователя.
дипломная работа [2,0 M], добавлен 25.09.2014