Связный список огнестрельного оружия

Реализация списка разных видов военной техники и некоторых их характеристик на языке C ++ посредством контейнера типа "список". Руководство пользователя и программиста. Создание "дерева" объектов. Программный интерфейс. Пространство имен rus и lists.

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

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

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

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

Связный список огнестрельного оружия

Введение

Объектно-ориентированное программирование - это основа основ программирования, в которой базовыми концепциями являются понятия объектов и классов. Главной целью курсового проектирования является изучение этой парадигмы.

При написании программы использовались следующие свойства объектно-ориентированного языка программирования C ++:

инкапсуляция - механизм, связывающий код и данные, которыми манипулирует код и защищает от некорректного использования;

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

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

Другой, также немаловажной целью проектирования являлось изучение такого средства языка C ++, как контейнер. В данной курсовой работе был реализован контейнер типа «список», позволяющий упорядоченно хранить данные о тех или иных объектах, и удобно манипулировать ими.

В курсовой работе был реализован список разных видов военной техники и некоторые их характеристики, а также создано соответствующее «дерево» объектов.

1. Руководство пользователя

1. Копируем папку «Kyrs» с диска на компьютер.

2. Открываем папку «Для пользователя».

3. Запускаем файл Связный список огнестрельного оружия.exe.

4. Перед пользователем открывается меню, приведенное на рисунке 1.

Рисунок 1

5. В области окна программы, расположенной под меню, предлагается ввести соответствующую команду в виде числа, указанного в списке меню.

6. При вводе пользователем команды «1» (ввод производится нажатием на соответствующую клавишу на клавиатуре с последующим нажатием клавиши «Enter»), программа переходит в подменю, представленное на рисунке 2. Здесь пользователю предлагается самому добавить информацию из файла

7. Вводим название файла с данными о оружии «weapons.txt» и нажимаем «Enter». Программа пишет о том, что список с данными загружен.

8. Далее выбираем команду «2» и появляется список данных.

Рисунок 2

9. Рассмотрим подменю, в котором пользователю предлагается добавить информацию из файла. Для этого в главном меню программы вводим команду «3», нажимаем клавишу «Enter»

Рисунок 3

10. Нам предлагается выбрать класс техники из предложенных, далее мы вводим название оружия, эффективную дальность стрельбы, скорострельность и калибр.

11. Для того чтобы найти оружие в списке, зайдем в меню поиска, для этого нужно нажать «4» и нажать «Enter». Затем появится меню ввода названия техники, которую нужно найти, после нажатия «Enter» появится информация о оружии. Если такой техники не существует, то программа сообщит о том, что оружия с таким названием не существует.

12. Для того чтобы удалить оружие из списка, нужно выбрать команду «5» и нажать «Enter».После этого нужно ввести название оружия, которое нужно удалить. После чего она будет удалена из списка.

13. Чтобы добавить список данных о оружиях нажмите команду «6». Далее введем название файла, в который нужно сохранить информацию.

14. Для закрытия программы нажмите команду «7».

2. Руководство программиста

Программа состоит из 24 файлов, среди которых 12 заголовочных файла с расширением «.h» и 14 файлов с расширением «.cpp». В таблице 1 приведено пояснение, к какому файлу относится то и или иное пространство имен.

Таблица 1

«.h» файл

«.cpp» файл

Пространство имен (namespace)

WEAPON.h

WEAPON.cpp

WEAPON space

SEMI.h

SEMI.cpp

SEMIspace

AUTOMATIC.h

AUTOMATIC.cpp

AUTOMATICspace

ARIFLE.h

ARIFLE.cpp

ARIFLEspace

func.h

func.cpp

funckspace

lists.h

lists.cpp

listsspace

PISTOL.h

PISTOL.cpp

PISTOLspace

RIFLE.h

RIFLE.cpp

RIFLEspace

SUBGUN.h

SUBGUN.cpp

SUBGUNspace

rus.h

rus.cpp

russpace

«Дерево» объектов

Одной из задач курсового проектирования было создание так называемого «дерева» объектов. Автор курсового проектирования предложил модель, представленную на рисунке 6. Следует отметить, что главным классом (классом родителем) является верхний класс, а остальные классы (классы потомки) наследуют все методы и данные классов предков публичным способом наследования. При этом наследование идет сверху вниз.

Рисунок 4

Класс-родитель WEAPON, который описан в одноименном файле WEAPON.h, содержит основные поля данных записи, соответствующие каждой технике:

private:

string name;

string rage;

string weaponspeed;

string kal;

При объявлении данных использовалось ключевое слово «private». Это означает, что данные класса WEAPON - закрытые и получить доступ к ним можно только при помощи специальных методов

virtual void get_name(); // запрашивает имя с клавиатуры

const string ret_name(); // возращает имя

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

Кроме методов для получения закрытых данных класс WEAPON содержит также ряд следующих методов:

virtual void get_name(); // запрашивает имя с клавиатуры

virtual void get_rage(); // дальностьа оружия

virtual void get_weaponspeed(); // скорострельность

virtual void get_kal(); // калибр

virtual void print_name(); // вывод

virtual void print_rage();

virtual void print_weaponspeed();

virtual void print_kal();

virtual void get_file (ifstream &f); // из файла

virtual void print_file (ofstream &f); // вывод

const string ret_name(); // возращает имя

virtual void get_all(); // запрос всех полей данных

virtual void print_all(); // вывод

Все методы, служащие для обработки данных - виртуальные (определяются ключевым словом «virtual»), они могут быть использованы для обработки информации, содержащейся в объекте определенного класса.

То же самое касается и методов, описывающих некие действия, совершаемые объектами. К примеру, для пистолета и автомата актуальным является действие, описывающее то, как они ведут огонь, но делают это они по-разному, то есть метод описывающий способ их стрельбы один и тот же, но результат его выполнения различен для объектов разных классов. В этом заключается смысл полиморфизма в парадигме объектно-ориентированного программирования.

Работа со списком

Еще одной задачей курсового проектирования было создание контейнера типа «список» и ряда функций для его обработки. Прототипы этих функций описаны в файле lists.h, а их реализация в файле lists.cpp. Пространство имен listspace содержит следующие функции обработки списка:

bool operator == (const string &c1, const string &c2); // перегрузка операции

const string retname (WEAPON *a); // возвращает имя

void delname (list <WEAPON* > &wea); // удаление по имени из списка

void all (WEAPON *a); // вывод всех полей

void addlist (list <WEAPON* > &wea); // добавление в лист

void poisklist (list <WEAPON* > wea); // поиск по листу

void PrintList (list <WEAPON* > wea); // вывод всего листа

void outList (list <WEAPON* > wea); // выгрузка листа в файл

list <WEAPON*>: iterator Pos (list <WEAPON*> &wea, unsigned int n); // возвращение итератора на необходимый по счету элемент

void InsertToList (list <WEAPON*> &wea, unsigned int n, WEAPON*a); // Добавление по номеру позиции

void fromfile (list <WEAPON*> &wea); // загрузка листа из файла

В качестве аргумента во всех этих функциях фигурирует список объектов класса WEAPON. Это означает, что к данному заголовочному файлу lists.h необходимо подключить заголовочный файл класса WEAPON, из которых состоит «дерево» и их пространства имен:

3. Программный интерфейс

Программный интерфейс организуют функции, представленные в следующих пространствах имен:

· rus

· lists

· func

Пространство имен rus.

Пространство имен stdrus содержит единственную функцию для корректного вывода букв русского алфавита в консольное меню:

char* Rus (const char *); // русификация строки вывода консольное меню

При реализации этой функции была использована функция перекодировки AnsiToOem (const char *, char *) из стандартной библиотеки <windows.h>.

Пространство имен lists

Пространство имен listolist включает в себя функции с элементами интерфейса, который реализуется в функции menu.

void delname (list <WEAPON* > &wea); // удаление по имени

void all (WEAPON *a); // вывод всех полей

void addlist (list <WEAPON* > &wea); // добавление в лист

void poisklist (list <WEAPON* > wea); // поиск по листу

void PrintList (list <WEAPON* > wea); // вывод всего листа

void outList (list <WEAPON* > wea); // выгрузка листа в файл

void fromfile (list <WEAPON*> &wea); // загрузка листа из файла.

Пространство имен funk.

В пространстве имен func описана функция, реализующая интерфейс программы.

 // вывод меню в консоль

void menu();

Для корректной работы этой функции необходимо подключение следующих файлов и пространств имен:

#include «WEAPON.h»

#include «lists.h»

using namespace WEAPONspace;

using namespace listspace;

Заключение

военный контейнер интерфейс программный

В процессе проектирования были выполнены следующие задачи:

· реализовано «дерево объектов», состоящее из семи классов;

· реализован список объектов;

· реализованы методы объекта, такие как отображение полей данных, загрузка данных из файла, сохранение данных в файл, добавление данных об объекте с клавиатуры;

· реализованы следующие методы работы со списком: добавление элемента, поиск элемента в списке, загрузка элементов списка из файла, сохранение списка в файл, печать списка на экране, удаление элемента из списка.

Учитывая вышесказанное, все задачи курсового проектирования были выполнены.

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


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

  • Использование основных свойств объектно-ориентированного языка программирования C ++ при написании программы по реализации списка футболистов разных амплуа. Руководство пользователя и руководство программиста. Работа со списком, программный интерфейс.

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

  • Создание, использование и уничтожение динамических переменных. Графическое изображение списка. Разработка программного средства, которое имеет список заказов на покупку товаров. Организация пользовательского интерфейса для редактирования информации.

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

  • Теоретическое описание линейного списка с алгоритмами реализации основных операций. Понятия, механизмы объектно-ориентированного программирования. Возможности проектируемого контейнера пользователей, его реализация на основе линейного списка с заголовком.

    курсовая работа [475,2 K], добавлен 26.02.2015

  • Создание приложения "Напоминание о датах" на языке Pascal. Элементы работы с классом "список и процедуры". Прямой доступ к элементам массива. Перенос существующего элемента на новые места. Удаление указателей из списка. Руководство пользователя программы.

    курсовая работа [5,1 M], добавлен 12.10.2012

  • Расположение элементов списка в памяти. Информация о полях структуры TMember. Логическая структура двусвязного кольцевого списка. Логические схемы наиболее важных операций со списками. Алгоритмы обработки основных структур. Руководство пользователя.

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

  • Формирование на экране меню для выбора функций. Элементы пользовательского интерфейса. Описание внутренних переменных, входных и выходных данных языка программирования Си. Выбор пользователем функции. Создание программы "Список коммерческих банков".

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

  • Создание баз хозяйственных договоров, банков и членов временных трудовых коллективов в среде разработки Delphi. Логическая структура линейного двусвязного списка. Способ упорядочения и алгоритм сортировки списка. Руководство пользования программой.

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

  • Рассмотрение понятия абстрактного типа данных. Реализация операций добавления элемента в пустой список и после указанных данных, удаления конкретного элемента и распечатки записей. Разработка интерфейса, исключающего нелигитимное модифицирование данных.

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

  • Правила формирования списка на рабочем листе. Что понимается под структурой списка. Как осуществляется ввод данных. Простая сортировка списка. Интерфейс и функции приложения PowerPoint. Создание, редактирование и форматирование текстового документа.

    лабораторная работа [25,1 K], добавлен 16.01.2015

  • Создание программы на языке программирования Visual Prolog. Разработка математической модели. Функциональные характеристики программы: оптимальный маршрут для такси. Интерфейс пользователя, руководство программиста, функциональная схема, тестовый пример.

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

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