Разработка программы имитирующей работу обычных стрелочных часов

Автор: Пользователь скрыл имя, 27 Января 2012 в 09:00, курсовая работа

Краткое описание

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

Оглавление

ВВЕДЕНИЕ 3
1. Анализ технического задания 5
2. Выбор языка программирования 6
3. Конструирование классов 15
4. Описание программы 20
ЗАКЛЮЧЕНИЕ 24
Список литературы 25

Файлы: 1 файл

Разработка программы эмулятор игры « крестики-нолики.docx

— 86.57 Кб (Скачать)

СОДЕРЖАНИЕ

ВВЕДЕНИЕ 3

1. Анализ технического задания 5

2. Выбор языка программирования 6

3. Конструирование классов 15

4. Описание программы 20

ЗАКЛЮЧЕНИЕ 24

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

Приложение А 26

Приложение B 32 

 

ВВЕДЕНИЕ

     За  последние десятилетия вычислительная машина стала незаменимым инструментом в управлении и экономике, в промышленности и научных исследованиях. Решение  многих задач, возникающих в самых  различных сферах человеческой деятельности, было бы невозможно без применения ЭВМ. Вычислительная машина – это  автомат, который производит вычислительную работу  в соответствии с точно  предписанными правилами. Она способна выполнять чрезвычайно длинные  последовательности команд с множеством комбинаций элементарных действий. Деятельность по созданию таких последовательностей команд, описывающих некоторые классы вычислительных процессов, называется программированием.

Современным программистам приходится иметь  дело с огромным количеством разнообразных языков программирования различных уровней и назначений.

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

     Целью курсовой работы является разработка программы имитирующей работу обычных  стрелочных часов.

     Первая  глава посвящена анализу технического задания, определяется что нужно  создать, какие библиотеки будут  использоваться.

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

     В третьей главе будет подробно описано создание требуемых для  решения задачи классов.

     Четвертая глава «Описание программы» посвящена  подробному описанию разработанной  программы. А полный исходный код  программы будет приведен в приложении А.

     Кроме того в приложении В будут приведены  примеры работы приложения.

 

  1. Анализ  технического задания

     По  условию задания необходимо создать  обыкновенные часы с тремя стрелками. Любые стрелочные часы включают в  себя три стрелки: часовую, минутную и секундную, а также циферблат. Каждая стрелка характеризуется следующими признаками: координаты основания, длиной и шириной, цветом. Координаты основания для всех трех стрелок одинаковы. Циферблат имеет координаты центра и радиус.

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

     Циферблат будет рисоваться отдельной функцией.

Алгоритм  изменения положений стрелок  следующий:

  1. Определяется время компьютера ЧЧ:ММ
  2. начальное положение минутной стрелки совпадает с ММ
  3. начальное положение часовой стрелки вычисляется так: если ЧЧ>12, то положение = (ЧЧ – 12)*5+ММ/12 иначе положение = ЧЧ*5+ММ/12
  4. положение секундной стрелки генерируется с помощью цикла от 0 до 59
  5. положение минутной стрелки увеличивается каждый раз на единицу после завершения цикла секундной стрелки. Если положение достигает значения 60, оно обнуляется
  6. Положение часовой стрелки изменяется каждый раз, когда положение  минутной стрелки обнуляется.

 

  1. Выбор языка программирования

     C++ — компилируемый статически типизированный  язык программирования общего  назначения. Поддерживает разные  парадигмы программирования, сочетает  свойства как высокоуровневых,  так и низкоуровневых языков. В сравнении с его предшественником  — языком C, — наибольшее внимание  уделено поддержке объектно-ориентированного  и обобщённого программирования. Название «C++» происходит от  названия языка C, в котором  унарный оператор ++ обозначает инкремент  переменной.

     Являясь одним из самых популярных языков программирования, C++ широко используется для разработки программного обеспечения. Область его применения включает создание операционных систем, разнообразных  прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а  также развлекательных приложений (например, видеоигры). Существует несколько  реализаций языка C++ — как бесплатных, так и коммерческих. Наиболее популярны  проект GNU, Microsoft, Intel и Embarcadero (Borland). C++ оказал огромное влияние на другие языки  программирования, в первую очередь  на Java и C#.

При создании C++ Бьёрн Страуструп стремился сохранить  совместимость с языком C. Множество  программ, которые могут одинаково  успешно транслироваться как  компиляторами C, так и компиляторами C++, довольно велико — отчасти благодаря  тому, что синтаксис C++ был основан  на синтаксисе C.

           Рассмотрим объектно-ориентированные  особенности языка.

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

     В C++ при наследовании одного класса от другого наследуется реализация класса, плюс класс-наследник может  добавлять свои поля и функции  или переопределять функции базового класса. Множественное наследование разрешено. Конструктор наследника вызывает конструкторы базовых классов, а затем конструкторы нестатических членов-данных, являющихся экземплярами классов. Деструктор работает в обратном порядке. Наследование бывает публичным, защищённым и закрытым (т. е. закрытого типа).  Наследник — это больше чем базовый класс, поэтому, если наследование открытое, то он может использоваться везде, где используется базовый класс, но не наоборот.

     Полиморфизмом в программировании называется переопределение  наследником функций-членов базового класса. В C++ есть и динамический полиморфизм, когда вызываемая функция определяется во время выполнения. Для этого функции-члены базового класса должны быть объявлены виртуальными. Чисто виртуальной функцией называется виртуальная функция-член, которая объявлена со спецификатором = 0. Чисто виртуальная функция может быть оставлена без определения, кроме случая, когда требуется произвести её вызов.

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

     Основным  способом организации информации в C++ являются классы. В отличие от структуры (struct) языка C, которая может  состоять только из полей и вложенных  типов, класс (class) C++ может состоять из полей, вложенных типов и функций-членов (member functions). Инкапсуляция в С++ реализуется  через указание уровня доступа к  членам класса: они бывают публичными (открытыми, public), защищёнными (protected) и  собственными (закрытыми, приватными, private). В C++ структуры формально отличаются от классов лишь тем, что по умолчанию  члены и базовые классы у структуры  публичные, а у класса — собственные. 
 

Доступ private protected public
Сам класс да да да
Друзья да да да
Наследники нет да да
Извне нет нет да

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

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

Графические функции graphics.h

     Координаты  на графическом экране выглядят следующим  образом, в отличие от математической системы координат.

Палитра

     Наиболее  часто используется графический  режим монитора, при котором поддерживается разрешение 640*480*16. Здесь 16 – это  максимальное количество цветов, которое одновременно может присутствовать на изображении. В файле graphics.h определены константы, соответствующие цветам стандартной (используемой по умолчанию) палитры. Это соответствие отражено в таблице

Имя константы Цвет Значение  константы
BLACK Черный 0
BLUE Синий 1
GREEN Зеленый 2
CYAN Циановый 3
RED Красный 4
MAGENTA Малиновый 5
BROWN Коричневый 6
LIGHTGRAY Светлый серый 7
DARKGRAY Темный серый 8
LIGHTBLUE Голубой 9
LIGHTGREEN Светлый зеленый 10
LIGHTCYAN Светлый циановый 11
LIGHTRED Светлый красный 12
LIGHTMAGENTA Светлый малиновый 13
YELLOW Желтый 14
WHITE Белый 15

Информация о работе Разработка программы имитирующей работу обычных стрелочных часов