Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсовой Проект C++

.pdf
Скачиваний:
167
Добавлен:
06.06.2020
Размер:
1.51 Mб
Скачать

Министерство науки и образования РФ

федеральное государственное бюджетное образовательное учреждение высшего образования «Омский государственный технический университет»

Факультет (институт)

 

Информационных технологий и компьютерных систем

 

Кафедра

 

 

 

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

 

 

 

 

 

КУРСОВОЙ ПРОЕКТ

 

 

 

 

по дисциплине

 

 

 

 

 

Программирование

 

 

 

 

на тему

Разработка программ для построения траектории полета шара и калькулятора

 

 

 

 

 

Пояснительная записка

 

 

 

 

Шифр проекта

 

 

 

 

 

020-КП-09.03.03-№14-ПЗ

 

 

 

 

 

Студента (ки)

Князева Даниила Александровича

 

 

 

 

 

 

 

 

 

фамилия, имя, отчество полностью

 

 

 

 

 

Курс 1

 

 

Группа ПИ-191

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Направление (специальность)

 

09.03.03 –

 

 

 

 

 

Прикладная информатика

 

 

 

 

 

 

 

 

 

 

 

 

 

код, наименование

 

 

 

 

 

 

 

 

Руководитель

 

 

к.т.н., доцент

 

 

 

 

 

 

 

 

 

 

ученая степень, звание

 

 

 

 

 

 

 

 

 

Шафеева О.П.

 

 

 

 

 

 

 

 

 

 

 

 

фамилия, инициалы

 

 

 

 

 

 

 

 

Выполнил (а)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

дата, подпись студента (ки)

 

 

 

 

 

К защите

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

дата, подпись руководителя

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выполнение и

 

 

 

 

 

 

 

 

 

 

подготовка к защите

Защита КП (КР)

 

Итоговый рейтинг

 

 

 

 

 

КП (КР)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Проект (работа) защищен (а) с оценкой

 

 

 

 

Омск 2020

АННОТАЦИЯ

Пояснительная записка к курсовому проекту 45 рис., 3 источника, 1 прил., 40 стр.

Цель работы – разработка и реализация алгоритмов моделирования полета шара в заданные координаты и простого калькулятора.

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

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

Программа была написана на языке программирования C++ с использованием возможностей Windows API в среде программирования Visual Studio 2019 с пакетом Windows SDK 10.0.18362.0.

Программа состоит из 5 классов и 1 главного файла с функций main. В общем количестве - 6 файлов исходного кода и 5 заголовочных файлов.

Всего в программе 650 выполняемых строк кода. Объем скомпилированной программы 36 864 байт.

2

Министерство науки и образования РФ федеральное государственное бюджетное образовательное учреждение высшего образования

«Омский государственный технический университет»

Факультет

 

 

Информационных технологий и компьютерных систем

Кафедра

 

 

 

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

 

 

 

Дисциплина

 

 

 

 

 

 

Программирование

 

 

 

 

 

 

 

 

 

 

 

 

ЗАДАНИЕ

 

 

 

 

 

 

 

 

 

на выполнение курсового проекта

 

 

Группа ПИ-191

Студенту (ке)

 

 

Князеву Даниилу Александрович

 

 

 

 

 

 

 

фамилия, имя, отчество полностью

 

 

 

 

 

Направление (специальность)

09.03.03 – Прикладная информатика

 

 

 

 

 

 

 

 

код, наименование

 

 

 

 

 

Тема проекта

 

Разработка игровой программы расчета и построения траектории

 

 

 

полета шара с демонстрацией попадания в заданную область и калькулятора

Срок сдачи проекта (работы) на кафедру

« 25 » 05

20

 

20 г.

 

 

 

 

 

 

 

Исходные данные к проекту (работе)

 

 

С/С++, основные кинематические законы

Содержание пояснительной записки (перечень подлежащих разработке вопросов)

Введение. 1. Постановка задач на проектирование. 2. Методика решения. 3. Разработка алгоритмов. 4. Особенности разработки программы. 5. Инструкция пользователя. 6. Результаты тестирования. Приложения (текст программы)

Перечень

графического

материала

с указанием основных чертежей и (или)

иллюстративного материала

Укрупненная схема алгоритма,

схемы алгоритмов для функции

 

 

Методическая литература и иные информационные источники

1.Павловская, Т. А. С/С++. Программирование на языке высокого уровня / Т. А. Павловская. – СПб.:

Питер, 2012. – 544с.

2.Восходящее и нисходящее программирование: метод. указания / ОмГТУ ; сост. О. П. Шафеева.–

Омск : Изд-во ОмГТУ, 2015. – [Электронный ресурс].

3.Программирование С/С++. Проектирование алгоритмов и программ: Метод. указания / Сост. О. П.

Шафеева: Изд-во ОмГТУ, 2017. – 32 с. – 1 эл. опт. диск (CD-ROM).

4.Программирование на языке Си: Метод. указания / Сост. О. П. Шафеева, Ю.Г. Каворина, Шукурова Г.С.: Изд-во ОмГТУ, 2008. – 72 с. [Электронный ресурс].

5.Системы программирования: Метод. указания / Сост. О.П. Шафеева, И.А. Волчкова, С.А.Гончаров.

Омск: ОмГТУ, 2012. – 32 с..

6.Шафеева, О.П. Технологии программирования. С++. Учебное пособие. – Омск, Изд-во ОмГТУ. 2017.

80 с. [Электронный ресурс].

Дата выдачи задания « 4 » февраля 20 20 г.

Руководитель

 

К.т.н., доцент Шафеева О.П.

 

 

 

 

 

подпись

 

 

ученая степень, звание, ФИО

 

 

 

дата

Зав. кафедрой

 

Д.т.н., профессор Потапов В.И.

 

 

 

 

 

подпись

 

 

ученая степень, звание, ФИО

 

 

 

дата

Задание принял к

 

 

«

 

 

 

 

 

исполнению студент (ка)

»

20 20 г.

 

 

 

 

 

 

 

 

 

 

 

 

3

Министерство науки и образования РФ федеральное государственное бюджетное образовательное учреждение высшего образования

«Омский государственный технический университет»

 

 

 

 

 

 

 

ОТЗЫВ

 

 

 

 

 

 

на курсовой проект (работу)

Факультет

 

 

информационных технологий и компьютерных систем

Кафедра

 

 

 

 

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

Дисциплина

 

 

 

Программирование

 

 

 

 

 

 

 

 

Тема

 

 

 

Разработка программы расчета и построения траектории полета шара с

Студент

 

 

демонстрацией попадания в заданную область и калькулятора

 

 

 

 

 

Князев Даниил Александрович

 

 

 

 

 

 

 

фамилия, имя, отчество полностью

Курс

 

1

 

Группа ПИ-191

 

 

 

 

 

 

к.т.н., доцент Шафеева О.П.

Руководитель

 

 

 

 

 

 

 

 

 

 

ученая степень, звание, ФИО

Содержание отзыва

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

Детализированы и разработаны схемы алгоритмов для отдельных функций и

подзадач. Разработана и отлажена программа, реализующая следующие

подзадачи:

-сведения об авторе;

-заставка «мячик»;

-меню (графическое, текстовое, в несколько уровней);

-программа полета шара с демонстрацией попадания в заданную область;

-калькулятор;

-тестирование готового программного продукта;

Оформлена пояснительная записка.

Рейтинговые баллы за выполнение и подготовку к защите курсового проекта (работы)

Заключение о допуске к защите

Руководитель

 

Дата «

»

20

 

г.

 

подпись

 

 

 

 

 

 

4

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ………………………………………………………………………...…. 6

1 - АНАЛИЗ ЗАДАНИЯ……………………………………………………………….7

2 - РАЗРАБОТКА СХЕМ АЛГОРИТМА…………..…………………………….......9

3 - ОСОБЕННОСТИ РАЗРАБОТКИ ПРОГРАММЫ……………………………....22

4 - ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ………………………………….……...23

5 - ХАРАКТЕРИСТИКИ ПРОГРАММЫ…………....………………….………….23

6 - ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЯ……………………………………………...24

8 - РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ……………………………………….……...26 ЗАКЛЮЧЕНИЕ…………………………………………………………...…...……...27 ПРИЛОЖЕНИЕ A.………………………………………………………...……….....29

5

ВВЕДЕНИЕ

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

Калькулятор должен быть отрисован на экране, иметь основные функции для работы как с операциями над двумя аргументами так и над операциями с одним аргументом, поле для вывода и кнопки равно, сброс и удаление последнего символа. Должны быть предусмотрены ошибки такие как деление на 0, попытка удалить символ из пустого поля.

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

6

1 - АНАЛИЗ ЗАДАНИЯ

Калькулятор должен будет состоять из 24 кнопок, у каждой из которой будет свой id от 0 до 23. Выбор и текущее расположение курсора будет рассчитываться из id этой кнопки. Каждая кнопка подписана соответственно своей функции от 0 до 9, “,” , “/”, “-”,“+”,“*”,“sin”,“cos”,“sqrt”,“ln”,“tg”,“ctg”,

сброс, стереть, равно. Задание не требует дополнительных расчетов, используются в библиотеку “math” функции вычисления.

Моделирование баллистики происходит с использованием основных кинематических законов, формулы которых представлены нижеформула (1) и

(2). Для расчета траектории полета шара в точку, необходимы координаты шара, а также время полета шара.

Формула (1) - Основной закон движения

r = r0 + U0 × t + 0, 5 × a × t 2

Формула (2) - Основное уравнение скорости

U = U0 + a × t

Траектория полета будет разбиваться на точки, взятые через определенные интервалы времени. При помощи алгебраических преобразований выведены формула (3) необходимая для расчета скорости в определенный момент времени, а также формула (4) из формулы (1), разбитой по осям. Они будут использоваться для решения поставленной задачи. Переменные в конечный момент времени в формулах обозначены буквой “к”.

{

{

Формула (3) - Формула расчета начальной скорости

U0x = Xк ÷ tк

U0y = (Y к + 0, 5 × g × tк2) ÷ tк

Формула (4) - Формула расчета положения точки в момент времени

X = U0x × t

Y = U0y × t − 0, 5 × g × t 2

7

В пункте об авторе содержится информация о студенте, разработавшем курсовой проект.

Заставка являет собой анимированную шарик, отскакивающий от границ консоли.

Само меню будет управляться при помощи стрелок клавиатуры.

8

2 - РАЗРАБОТКА СХЕМ АЛГОРИТМА

Главная функция программы имеет переходы к конкретным меню, расположенным в 5 различных классах. За то, какое меню должно быть запущено сейчас отвечает переменная “screen” класса “menu”. Цикл главной функции будет выполняться до тех пор, пока не будет изменена переменная stopping класса меню. Общая схема алгоритма программы изображена на рисунке 1.

Рисунок 1 - Общая схема алгоритма программы.

Подпрограммы класса “menu” отвечают за вывод и обработку главного и вложенного меню. Схемы алгоритмов функций, отвечающих за вывод меню изображены на рисунках 2-10. Размеры меню динамические. При каждом обновлении экрана они пересчитываются в зависимости от размеров консоли в функции, алгоритм которой изображен на рисунке 12.

9

пп

Рисунок 2 - Схема алгоритма вывода главного меню.

пп

Рисунок 5 - Схема алгоритма вывода названия кнопки.

пп

Рисунок 8 - Схема алгоритма вывода вертикального ограничителя курсора.

пп

Рисунок 3- Схема алгоритма вывода подменю.

пп

Рисунок 6 - Схема алгоритма скрытия курсора в консоли.

пп

Рисунок 9 - Схема алгоритма вывода названия текущего заголовка меню.

пп

Рисунок 4 - Схема алгоритма установки координат в окне по номеру кнопки.

пп

Рисунок 7 - Схема алгоритма для отрисовки горизонтального ограничителя курсора.

пп

Рисунок 10 - Схема алгоритма отрисовки курсора меню

10