Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Топ:
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Интересное:
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Дисциплины:
2020-07-08 | 83 |
5.00
из
|
Заказать работу |
|
|
УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра «Измерительно-вычислительные комплексы»
Задание на курсовую работу по дисциплине «Алгоритмические языки и основы программирования»
Студентка: Иванова Надежда Петровна группы ИСТбд-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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!