Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Топ:
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Интересное:
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
|
из
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; }
Конкретно в нашем случае необходимость перегружать оператор равенства вытекает из неопределенности, возникающей при попытке сравнить объект со строкой.
|
|
|
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!