Реализация «дерева объектов» в программе. — КиберПедия 

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Реализация «дерева объектов» в программе.

2020-07-08 83
Реализация «дерева объектов» в программе. 0.00 из 5.00 0 оценок
Заказать работу

УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра «Измерительно-вычислительные комплексы»

 

 

Задание на курсовую работу по дисциплине «Алгоритмические языки и основы программирования»

 

Студентка: Иванова Надежда Петровна группы ИСТбд-11

Тема: Связный список зимних Олимпийских видов спорта

 

Технические условия:

1. Реализация дерева объектов выбранного типа (не менее 7 классов).

2. Реализация списка объектов.

3. Обязательные методы объекта: отображение полей данных, заполнение полей данных, загрузка данных из файла, сохранение данных в файл.

4. Методы работы со списком: добавление элемента, поиск элемента, удаление элемента, загрузка списка из файлов, сохранение списка в файл.

5. Язык программирования – С++.

 

 

Содержание пояснительной записки:

1. Титульный лист.

2. Задание на курсовую работу.

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

4. Руководство пользователю.

 

 

Дата выдачи задания 17.03.2015 г. Срок выполнения 30.05.2015 г.

Зав. Кафедрой                                     ______________         Киселев С.К.

                                                                  (подпись)         (Ф.И.О.)

 

Руководитель                                         ______________       Докторов А.Е.

                                                                  (подпись)              (Ф.И.О.)

 

Работу принял_ к исполнению         ______________      Иванова Н.П.

                                                                  (подпись)         (Ф.И.О.)

 

Работа защищена с оценкой                                           Дата

Содержание

1.Введение 4
2.Руководство пользователя 5
3.Руководство программиста  13
3.1 Реализация «дерева объектов» в программе  13
3.2 Реализация списка в программе  16
3.3 Реализация интерфейса пользователя  17
4.Заключение  20
5.Список литературы  21  
   

Введение

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

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

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

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

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

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

    В курсовой работе был реализован список разных зимних Олимпийских видов спорта: фигурное катание, шорт-трек, прыжок с трамплина, скоростной спуск. А также создано соответствующее «дерево» объектов.
  Руководство пользователя

1. Скопировать папку «Пользователь» с диска на компьютер.

2. Открыть папку «Программа».

3. Запустить.exe файл программы.

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

Рис. 1

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

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

7. Добавим список зимних видов спорта из файла. Если файл с названием, которое вводит пользователь, не существует или указан неверный путь к нему, то программа должна выдать сообщение об ошибке. Если путь указан верно, то программа добавит информацию в список и выдаст соответствующее сообщение (рис. 2).

 

Рис. 2

8. Для вывода списка зимних видов спорта на экран необходимо ввести команду «2» в главном меню и нажать клавишу «Enter». После этого программа распечатает все существующие данные в списке (рис. 3).

Рис. 3

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

10. Для примера, введем команду «1» и добавим в односвязный список информацию о спортсмене конькобежного спорта. Например, о фигуристе. Вводим имя спортсмена. После ввода имени остальные поля будут заполнены сами. Программой будет выведено сообщение о том, что информация о спортсмене успешно сохранена (рис. 4).

Рис. 4

11. Аналогичным образом добавляются данные о других спортсменах.

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

12. Если введенное пользователем название совпадет с названием из списка, то программа выведет на экран информацию об этом спортсмене (рис. 5).

Рис. 5

13. Если введенное пользователем имя спортсмена не совпадет с названием из списка, то программа выведет сообщение о том, что такого спортсмена нет в списке (рис. 6).

Рис. 6

14. Следующее подменю – удаление спортсмена из списка по имени. Для перехода в это подменю необходимо ввести команду «5» в главном меню и нажать клавишу «Enter». После этого программа предложит пользователю ввести имя спортсмена, который будет удален (рис. 7).

Рис. 7

15. Процедура удаления спортсмена аналогична процедуре поиска.

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

Рис. 8

17. Открываем сохраненный файл в блокноте (рис. 9).

Рис. 9

18. Для прекращения работы программы в главном меню необходимо ввести команду «7» и нажать клавишу «Enter».


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

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

Таблица 1

«.h» файл «.cpp» файл Пространство имен (namespace)
wintersport.h wintersport.cpp Wintersport
skater.h skater.cpp Skater
skier.h skier.cpp Skier
figure.h figure.cpp Figure
hillskiing.h hillskiing.cpp Hillskiing
skating.h skating.cpp Skating
jumping.h jumping.cpp Jumping
listolist.h listolist.cpp Listolist
funk.h funk.cpp Funk
  main.cpp  

 

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

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

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

void menu();

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

#include "funk.h"

#include "wintersport.h"

#include "listolist.h"

 

using namespace wintersport;

using namespace listolist;


Заключение

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

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

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

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

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


· Список литературы

1. П. Дейтел, X. Дейтел. / Как программировать на С++. - М, Издательство "Бином" 2001 - 1152 стр.

2. Джесс Либерти: Освой самостоятельно C++ за 21 день.

3. Николай Джосьютис: C++ Стандартная библиотека 2004

4. Вадим Валерьевич Подбельский: Язык С++

УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра «Измерительно-вычислительные комплексы»

 

 

Задание на курсовую работу по дисциплине «Алгоритмические языки и основы программирования»

 

Студентка: Иванова Надежда Петровна группы ИСТбд-11

Тема: Связный список зимних Олимпийских видов спорта

 

Технические условия:

1. Реализация дерева объектов выбранного типа (не менее 7 классов).

2. Реализация списка объектов.

3. Обязательные методы объекта: отображение полей данных, заполнение полей данных, загрузка данных из файла, сохранение данных в файл.

4. Методы работы со списком: добавление элемента, поиск элемента, удаление элемента, загрузка списка из файлов, сохранение списка в файл.

5. Язык программирования – С++.

 

 

Содержание пояснительной записки:

1. Титульный лист.

2. Задание на курсовую работу.

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

4. Руководство пользователю.

 

 

Дата выдачи задания 17.03.2015 г. Срок выполнения 30.05.2015 г.

Зав. Кафедрой                                     ______________         Киселев С.К.

                                                                  (подпись)         (Ф.И.О.)

 

Руководитель                                         ______________       Докторов А.Е.

                                                                  (подпись)              (Ф.И.О.)

 

Работу принял_ к исполнению         ______________      Иванова Н.П.

                                                                  (подпись)         (Ф.И.О.)

 

Работа защищена с оценкой                                           Дата

Содержание

1.Введение 4
2.Руководство пользователя 5
3.Руководство программиста  13
3.1 Реализация «дерева объектов» в программе  13
3.2 Реализация списка в программе  16
3.3 Реализация интерфейса пользователя  17
4.Заключение  20
5.Список литературы  21  
   

Введение

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

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

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

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

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

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

    В курсовой работе был реализован список разных зимних Олимпийских видов спорта: фигурное катание, шорт-трек, прыжок с трамплина, скоростной спуск. А также создано соответствующее «дерево» объектов.
  Руководство пользователя

1. Скопировать папку «Пользователь» с диска на компьютер.

2. Открыть папку «Программа».

3. Запустить.exe файл программы.

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

Рис. 1

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

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

7. Добавим список зимних видов спорта из файла. Если файл с названием, которое вводит пользователь, не существует или указан неверный путь к нему, то программа должна выдать сообщение об ошибке. Если путь указан верно, то программа добавит информацию в список и выдаст соответствующее сообщение (рис. 2).

 

Рис. 2

8. Для вывода списка зимних видов спорта на экран необходимо ввести команду «2» в главном меню и нажать клавишу «Enter». После этого программа распечатает все существующие данные в списке (рис. 3).

Рис. 3

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

10. Для примера, введем команду «1» и добавим в односвязный список информацию о спортсмене конькобежного спорта. Например, о фигуристе. Вводим имя спортсмена. После ввода имени остальные поля будут заполнены сами. Программой будет выведено сообщение о том, что информация о спортсмене успешно сохранена (рис. 4).

Рис. 4

11. Аналогичным образом добавляются данные о других спортсменах.

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

12. Если введенное пользователем название совпадет с названием из списка, то программа выведет на экран информацию об этом спортсмене (рис. 5).

Рис. 5

13. Если введенное пользователем имя спортсмена не совпадет с названием из списка, то программа выведет сообщение о том, что такого спортсмена нет в списке (рис. 6).

Рис. 6

14. Следующее подменю – удаление спортсмена из списка по имени. Для перехода в это подменю необходимо ввести команду «5» в главном меню и нажать клавишу «Enter». После этого программа предложит пользователю ввести имя спортсмена, который будет удален (рис. 7).

Рис. 7

15. Процедура удаления спортсмена аналогична процедуре поиска.

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

Рис. 8

17. Открываем сохраненный файл в блокноте (рис. 9).

Рис. 9

18. Для прекращения работы программы в главном меню необходимо ввести команду «7» и нажать клавишу «Enter».


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

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

Таблица 1

«.h» файл «.cpp» файл Пространство имен (namespace)
wintersport.h wintersport.cpp Wintersport
skater.h skater.cpp Skater
skier.h skier.cpp Skier
figure.h figure.cpp Figure
hillskiing.h hillskiing.cpp Hillskiing
skating.h skating.cpp Skating
jumping.h jumping.cpp Jumping
listolist.h listolist.cpp Listolist
funk.h funk.cpp Funk
  main.cpp  

 

Реализация «дерева объектов» в программе.

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


 

 

 


Рисунок 13.

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

private:

string name;          

При объявлении данных использовался модификатор доступа «private». Это означает, что данные класса Wintersport закрытые и получить доступ к ним можно только при помощи специальных методов, описанных ниже (в качестве примера приводится метод доступа к переменной name, содержащей имя спортсмена).

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

void print_name();//возвращает имя

 

Кроме методов, представленных выше, класс Wintersport  содержит также ряд следующих методов:

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

virtual void print_all(){};//выводит все поля данных

virtual void print_file(ofstream &f);//вывод в файл

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

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

Так, к примеру, функция print_all в каждом производном классе имеет одинаковое имя, но разную реализацию. И в зависимости от того, для какого объекта мы вызывали эту функцию будет выполняться та или иная реализация. Это явление в ООП называется полиморфизмом.

Заполнение всех полей кроме имени происходит автоматически. Результат заполнения приведен в таблице 2.

  фигурное катание шорт-трек прыжок с трамплина скоростной спуск
поле имя

название спортсмена

поле передвижения

скользит

Ходит

поле вид спортинвентаря

коньки

Лыжи

поле место соревнования ледовая сцена ледовый трек трамплин лыжная дорожка
поле вида спортсмена фигурист конькобежец горнолыжник спортсмен
поле вида соревнования красиво катается быстро бежит высоко прыгает быстро спускается с горы

Таблица 2.

 

Также в файле wintersport.h реализована такая возможность языка C ++ как перегрузка оператора. Был перегружен оператор:

//перегрузка операции ==

inline bool operator == (const string& name)

{ return this->name == name; }

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


Поделиться с друзьями:

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

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

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.08 с.