Развернутое индивидуальное задание

Федеральное государственное бюджетное образовательное учреждение высшего образования «Чувашский государственный университет имени И. Н. Ульянова»

Факультет информатики и вычислительной техники

Кафедра вычислительной техники

Отчет по курсовой работе

по дисциплине объектно-ориентированное программирование

на тему «Игровая программа “Пятнадцать”»

Работу выполнила: студентка группы ИВТ-41-15 Иванова Алена

Работу проверил: Обломов И.А.

г. Чебоксары, 2017

Оглавление

1. ВВЕДЕНИЕ…………………………………………………………………………………………
1.1. Цель курсовой работы…………………………………….……………………….
1.2. Основные сведения……………………………………….………………….….
2. развернутое индивидуальное задание……………………………….……
3. ВЫБор метода решения задачи ……………………….………………………..
3.1. Выбор метода хранения данных об игровом поле….………………………..
3.2. Обоснование метода решения задачи…………………………………………………..
3.2.1. Анализ задачи……………………………………………….……………………..
3.2.2. Общий алгоритм работы………………………………….…………………….
3.2.3. Алгоритм работы программы……………………………………………………
4. Описание классов……………….……………………………………………………………
4.1. Диаграмма классов………………………………………………………………………………
4.2. Структура классов………………………………………………………………………….
5. Общие сведения о программе…………………………………………………………….
6. Функциональное назначение…………………………………………………………….
7. используемые технические средства………………………………………………….
8. Вызов и загрузка………………………………………………………………………………………
9. выводы…………………………………………………………………………………………………………
10. СПИСОК литературы……………………………………………………………………………………….
Приложение…………………………………………………………………………………….
1. Тестовые данные…………………………………………………………………………………………..
2. Тексты программ…………………………………………………………………………………………..

Введение

Цель курсовой работы

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

Основные сведения

Объективно-ориентированное программирование (в дальнейшем сокращено до ООП) возникло относительно недавно, но, не смотря на малый срок, завоевало ведущие позиции в области программирования. Объективно-ориентированная парадигма предлагает новый подход к разработке программного обеспечения, предназначенного для решения большого класса задач. Под парадигмой следует понимать модели разработки и реализации программ. Различные модели приводят к различным приёмам программирования.

Фундаментальная концепция ООП состоит в передаче сообщения объектам. Для этого необходимо, чтобы объекты определялись вместе с сообщениями, на которые они будут реагировать. Это и есть главное отличие ООП от императивного (процедурного) программирования, в котором сначала определяются структуры данных, а затем передаются соответствующим процедурам (функциям), как параметры.

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

Суть основных компонентов можно раскрыть следующим образом:

1. Объект (Object). Вот несколько определений объекта.

  • В наиболее широком смысле это совокупность данных, существующих в машинном представлении как единое целое, допускающее обращение по имени, указателю или ссылке.
  • С точки зрения ООП, объект – это сущность, обладающая состоянием и поведением.
  • Объект – это инкапсулированная абстракция, которая включает информацию о состоянии и чётко определённое множество протоколов доступа.

2. Сообщение (Message) – это специальный символ, идентификатор или ключевое слово с параметром или без, которое представляет выполняемое объектом действие.

3. Класс (Class). Представляет тип данных, определяемых программистом, который специфицирует как представление объектов этого класса, так и операции, которые можно выполнять с объектами. Во многих случаях класс следует понимать, как абстрактный тип данных.

4. Экземпляр (Instance) – объект, принадлежащий конкретному классу.

5. Метод (Method) – функция, вызываемая в ответ на запрос к объекту некоторого класса совершить какое-либо действие. Можно сказать, что метод определяет реакцию объекта на общение. Совокупность методов класса определяет поведение объектов данного класса.

Несколько слов об основных свойствах ООП:

1. Инкапсуляция (Encapsulation) – сокрытие информации или определение пользователем новых типов данных. Каждый такой тип содержит определение набора значений и операций, которые могут быть выполнены над этими значениями, и образует так называемый абстрактный тип данных.

2. Наследование (Inheritance) – это механизм, позволяющий стоить иерархию типов. Механизм наследования предполагает определение базового типа, а затем использование его для построения производных типов. Причем каждый из производных типов наследует свойства базового типа, включая характеристики (данные) и набор операций (методов, функций).

3. Полиморфизм (Polymorphism) – свойство объекта отвечать на направленный к нему запрос сообразно своему типу.

Новизна ООП позволяет отбросить старые способы мышления и привычки, которые в течение многих лет были присущи традиционным языкам программирования.

Развернутое индивидуальное задание

Вариант 6. Игровая программа «Пятнадцать».

Разработать на языке C++ реализацию компьютерной версии игры «Пятнадцать», придерживаясь принципов объектно-ориентированного программирования. Игра ведется на поле, представляющем собой таблицу размером 4×4, разделенную на 16 ячеек одинакового размера, заполненных числами от 1 до 15, одна ячейка пустая. В свободную клетку можно передвигать соседние с ней заполненные ячейки. Цель игры – двигая ячейки по одной, упорядочить их по номерам, сделав как можно меньше перемещений.

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

VOGBIT. Индивидуальные задания работникам


Похожие статьи.

Понравилась статья? Поделиться с друзьями: