Связный список футболистов

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

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

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

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

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

Содержание

  • Введение
  • 1. Руководство пользователя
  • 2. Руководство программиста
  • 2.1 "Дерево" объектов
  • 2.2 Работа со списком
  • 2.3 Программный интерфейс
  • Заключение

Введение

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

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

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

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

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

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

В курсовой работе был реализован список футболистов разных амплуа: центральный нападающий, центральный полузащитник, фланговый нападающий и фланговый полузащитник. Создано соответствующее "дерево" объектов.

Автор курсового проекта считает, что написанная им программа является хорошим учебным пособием для школьников и студентов, интересующихся футболом.

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

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

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

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

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

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

Рисунок 1.

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

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

Рисунок 2.

7. Для примера, введем команду "1" и добавим в базу данных информацию оЦентральном нападающем. Например, этим Центральным нападающим будет Роман Павлюченко. Далее вводим информацию в соответствующие поля данных После ввода каждого поля данных необходимо нажать клавишу Enter. Если пользователь хочет пропустить какое-либо поле данных, необходимо также нажать клавишу Enter. , которые нам предложит программа. После ввода информации программой будет выведено сообщение о том, что информация о футболисте успешно сохранена (см. рисунок 3).

Рисунок 3.

Для возвращения в подменю вводим команду "1"и нажимаем клавишу "Enter".

8. Аналогичным образом добавляется информация о других футболистах.

9. Для возвращения в главное меню программы необходимо ввести команду "5" и нажать клавишу "Enter" (см. рисунок 2).

10. Рассмотрим подменю, в котором пользователю предлагается добавить информацию из файла. Для этого в главном меню программы вводим команду "2", нажимаем клавишу "Enter" (см. рисунок 5).

Рисунок 5.

11. Далее, введем команду "1" и добавим информацию о Фланговом полузащитнике из файла. Если файл с названием, которое вводит пользователь, не существует или указан неверный путь к нему, то программа должна выдать сообщение о том, что файл не найден. Если путь указан верно, то программа добавит информацию о стране в перечень самолетов и выдаст соответствующее сообщение (см. рисунок 6).

Рисунок 6.

12. Аналогичным образом из файлов добавляется информация о футболистах других амплуа.

13. Для того, чтобы осуществить поиск конкретного футболиста, необходимо ввести команду "3" в главном меню программы и нажать клавишу "Enter". После этого программа осуществит переход в подменю, где поиск футболиста можно вести по соответствующим категориям. Если введенное пользователем имя футболиста совпадет с названием из списка, то программа выведет на экран информацию об этом стране (см. рис.7). Если введенное пользователем имя футболиста не совпадет с названием из списка, то программа выведет сообщение о том, что такого футболиста нет в списке (см. рис.8).

Рисунок 7.

Рисунок 8.

14. Следующее подменю - удаление из списка. Для перехода в это подменю необходимо ввести команду "4" в главном меню и нажать клавишу "Enter". Подменю удаления из списка представлено на рисунке 9.

Рисунок 9.

15. При выполнении программой команд 1 - 4 из списка футболистов будет удалена информация по соответствующим категориям футболистов. При этом программа выдаст соответствующее сообщение и предложит вернуться в подменю удаления из списка (см. рис.10).

Рисунок 10.

16. При вводе команды "5" в подменю удаления из списка и последующем нажатии клавиши "Enter" пользователь сможет удалить конкретный элемент списка футболистов. Если пользователь некорректно введет номер элемента списка, программа выдаст сообщение об ошибке ввода номера элемента (см. рис.11). В случае, если бы был указан номер элемента с превышением размера списка, программа выдаст сообщение, в котором будет указано число записей в списке, что поможет пользователю корректно удалить записи из списка (см. рис.12).

Рисунок 11.

Рисунок 12.

17. При выполнении программой команды "6" в подменю удаления из списка удалятся все записи о футболистах.

18. Пользователь может выбрать подменю "Вывод на экран" главного меню программы, введя команду "5" и нажав клавишу "Enter".

19. Появляется меню, представленное на рисунке 13.

Рисунок 13.

20. Если выбрана команда "1" из подменю печати, то пользователю будет предоставлена возможность вывести на экран данные, содержащиеся в записи под номером, который пользователь должен ввести с клавиатуры (см. рис.14). Если номер записи введен некорректно, программа выдаст сообщение, в котором будет указано число записей в списке, этопоможет пользователю корректно выбрать номер записи из списка (см п.14).

Рисунок 14.

21. Используя команды 2-5 из подменю печати, пользователь может вывести на экран информацию о какой-либо категории футболистов (см. рис.15).

Рисунок 15.

22. При выполнении команды "6" из подменю печати, программа последовательно выводит на экран информацию, содержащуюся в записях списка.

23. Пользователь может выбрать подменю "Сохранение в файл" главного меню программы, введя команду "5" и нажав клавишу "Enter".

24. Подменю "Сохранение в файл" представлено на рисунке 16.

Рисунок 16.

25. При выполнении команды "1" подменю "Сохранение в файл", программа предложит пользователю сохранить в файл запись о футболисте, которую укажет пользователь (см. рис.17). Далее пользователю необходимо будет ввести имя файлаПри этом через точку необходимо будет указать расширение файла. Автор программы рекомендует использовать расширение. txt. А для последующего просмотра сохраненных файлов программу Notepad ++, в которой, в свою очередь, будет необходимо поменять кодировку на OEM 866. для сохранения информации и нажать клавишу "Enter".

Рисунок 17.

26. При выполнении команд 2-5 подменю "Сохранение в файл", программа предложит пользователю сохранить записи о футболистах по соответствующим категориям (при этом сохранение осуществляется так же как представлено в п.17).

27. При выполнении команды 6подменю "Сохранение в файл", программа предложит пользователю сохранить все записи о футболистах.

28. Для выхода из программы в главном меню программы необходимо ввести команду "8" и нажать клавишу "Enter".

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

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

Таблица 1

". h"файл

". cpp" файл

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

rf. H

rf. cpp

rf

forward. H

forward. cpp

forward

halfback. H

halfback. cpp

halfback

centerforward. H

centerforward. cpp

centerforward

flangforward. H

flangforward. cpp

flangforward

centerhalfback. H

centerhalfback. cpp

centerhalfback

flangforward. H

flangforward. cpp

flangforward

rus. H

rus. cpp

rus

useful_functions. H

useful_functions. cpp

someusefulfunctions

Colour. H

Colour. cpp

colour

functions_in_list. H

functions_in_list. cpp

mylist

somemenues. H

somemenues. cpp

stdmyinterfacefunctions

program. H

program. cpp

myprogram

main. cpp

2.1 "Дерево" объектов

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

Рисунок 18.

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

private:

string Club; // футбольный клуб

string Number; // игровой номер

string Age; // возраст

string Name; // имя футболиста

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

// имя футболиста

inline string GetName () {return Name; }

inline void SetName (string &s) {Name = s; }

Метод inlineВстраиваемая функция<тип возвращаемого значения>Get… () возвращает соответствующее поле данных, а метод - inlinevoidSet… (<тип сохраняемого значения>&s) заполняет соответствующее поле данных. В данном случае в этом заключается принцип инкапсуляции, одного из свойств объектно-ориентированного программирования.

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

// обработка данных

virtualvoidDownloading (istream&); // считывание из файла

virtual void Printing (); // вывод на экран

virtual void SetingNewData (); // заполнение с клавиатуры

virtual void Uploading (ostream &); // загрузка в файл

// действия

virtual void Whatzadacha () {}; // главная задача

virtual void Whatvtorzadacha () {}; // вторичная задача

virtualvoidWhatfoot () {}; // рабочая нога

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

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

Также в классе countryреализована такая возможность языка C ++ как перегрузка оператора. Был перегружен оператор == с целью замены действия (strstr Стандартная функция библиотеки <cstring> (getTypeName () Метод класса rf, возвращает имя класса в виде строки. , str_1)! = NULL).

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

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

// включение нового элемента в список с клавиатуры

void IncludeElement (list <Rf*>&, Rf *);

// включение нового элемента в список из файла

void IncludeElementFromFile (list <Rf*>&, Rf *, char *);

// поиск элемента

Void SearchingElement (list <Rf*>&, Rf *, string &, const char *); // печать всего списка

voidPrintList (list<Rf*>&);

// печать конкретного элемента из списка

voidPrintElementFromList (list<Rf*>&, int&);

// печать определенной категории списка

void PrintCategoryFromList (list <Rf*>&, const char *);

// удаление элемента из списка

void DeleteElementFromList (list <Rf*>&, int &);

// удаление категорию из списка

void DeleteCategoryFromList (list <Rf*>&, const char *);

// печать конкретного элемента из списка в файл

void PrintElementFromListToFile (list <Rf*>&, int &, char *);

// печать категории из списка в файл

void PrintCategoryFromListToFile (list <Rf*>&, const char *, char *); // Печать всего списка в файл

void PrintListToFile (list <Rf*>&, char *);

// Печать действий, выполняемых объектом

void PrintAllObjectsActions (list <Rf*>&);

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

#include "rf. h"

#include "flanghalfback. h"

#include "centerhalfback. h"

#include "flangforward. h"

#include "centerforward. h"

using namespace rf;

using namespace flanghalfback;

using namespace centerhalfback;

using namespace flangforward;

using namespace centerforward;

Также необходимо подключение стандартной библиотеки <list> для получения возможности использования стандартных библиотечных функций работы со списком:

#include <list>

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

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

· rus

· colour

· stdmyinterfacefunctions

· myprogram

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

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

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

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

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

В пространстве имен colour описаны функции настройки цветов фона и текста

#include <windows. h>

// устанавливает цвет текста и подложки в консоли

void SetColor (ConsoleColor text, ConsoleColor background);

// устанавливает цвет в меню и подменю

void SetColorMenu ();

// устанавливает цвет текста и фона в рабочей области

void SetColorWorkPlace ();

Параметрыtextиbackground - коды цветов текста и фона.

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

В пространстве имен stdmyinter face functions описаны функции, реализующие и синхронизирующие работу всех подменю программы.

// возврат назад

void Return (int);

// проверка на введенный элемент списка

int Checking (list <Rf*>&spisok, int &number);

// вводим имя файла

void interfaceIncludeNewElementInListByKeyboard (list <Rf*>&);

// добавляет элемент списка в конец (заполнение из файла)

voidinterfaceIncludeNewElementInListFromFile (list<Rf*>&);

// поиск (по названию страны и соответственно по категориям)

void interfaceSearchingList (list <Rf*>&);

// удаление определенной категории из списка объектов

void interfaceDeleteSomethingFromList (list <Rf*>&);

// распечатка

void interfacePrintList (list <Rf*>&);

// сохранение в файл

void interface Print List In File (list <Rf*>&);

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

#include "functions_in_list. h"

#include "Colour. h"

using namespace space stdmyspisok;

using namespace colour;

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

Пространство имен myprogram содержит единственную функциюprogram, которая реализует работу главного меню программы. Необходимо подключение файла "somenues. h" и соответствующего ему пространства имен:

#include "somemenues. h"

using namespace stdmyinterfacefunctions;

namespace myprogram

{

void Program (list <Rf*>&);

}

Заключение

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

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

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

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

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

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


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

  • Основные преимущества и возможности объектно-ориентированного языка программирования С#. Руководство пользователя: установка приложения, эксплуатация ежедневника, назначение полей, кнопок и пунктов меню. Руководство программиста. Событие элемента Timer.

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

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

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

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

    курсовая работа [131,1 K], добавлен 19.03.2010

  • Использование объектно-ориентированного программирования - хорошее решение при разработке крупных программных проектов. Объект и класс как основа объектно-ориентированного языка. Понятие объектно-ориентированных языков. Языки и программное окружение.

    контрольная работа [60,1 K], добавлен 17.01.2011

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

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

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

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

  • Структура программного комплекса и UML–представление программного обеспечения. Анализ статических нагрузок на пользователя при работе за компьютером. Руководство пользователя, программиста и системного администратора. Ошибки фискальных регистраторов.

    дипломная работа [3,4 M], добавлен 02.09.2013

  • Характеристика объектно-ориентированного, процедурного, функционального программирования. Выбор языка программирования для создания программного обеспечения для управления справочником "Спортсмены". Алгоритм работы приложения, пользовательский интерфейс.

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

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

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

  • Техническое задание. Планы работы: первоначальный, поэтапный. Технический проект. Таблицы базы данных программы. Схема обмена данными. Тестирование программного продукта. Эксплуатационная документация. Руководство программиста. Руководство пользователя.

    курсовая работа [27,6 K], добавлен 07.12.2007

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