Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы 1 курс 2 семестр / Курсовая / КР информатика 2 сем .docx
Скачиваний:
11
Добавлен:
15.01.2021
Размер:
73.77 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ

(национальный исследовательский университет)»

(МАИ)

Кафедра «Технология испытаний и эксплуатации»

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

по дисциплине «Информатика» (2 семестр)

по теме

«ОСНОВЫ ПРАКТИЧЕСКОГО ПРОГРАММИРОВАНИЯ

НА ЯЗЫКЕ С++»

(Вариант 1)

Студент Беспятых Михаил

Группа Т12О-102С-19

Дата сдачи

Подпись

Проверил

Дата

Подпись

МОСКВА 2020

Содержание

Введение 3

1. Задание на курсовую работу 4

2. Анализ предметной области 5

3. Алгоритмы функций (методов) 6

4. Программный код 8

5. Тестирование 11

Выводы 14

Список источников 15

Введение

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

  1. Задание на курсовую работу

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

  1. Анализ предметной области

iostream — заголовочный файл с классами, функциями и переменными для организации ввода-вывода в языке программирования C++.

Он включён в стандартную библиотеку C++.

Название образовано от Input/Output Stream («поток ввода-вывода»). В языке C++ и его предшественнике, языке программирования Си, нет встроенной поддержки ввода-вывода, вместо этого используется библиотека функций.

iostream управляет вводом-выводом, как и stdio.h в Си. iostream использует объекты cin, cout, cerr и clog для передачи информации и из стандартных потоков ввода, вывода, ошибок без буферизации и ошибок с буферизацией соответственно. Являясь частью стандартной библиотеки C++, эти объекты также являются частью стандартного пространства имён — std.

Struct – тип данных, основанный на группировании стандартных типов данных.

  1. Алгоритмы функций (методов)

struct stack_element – структура, которая имеет две переменные:

  • float value – вещественное число, помещаемое в элемент стека

  • stack_element *previous – указатель с именем previous на предыдущий добавленный элемент стека. Указатель имеет тип stack_element и позволяет через себя обращаться как к адресу структуры в памяти, так и значениям переменных входящих в структуру.

void paste(float VALUE, stack_element *&TOP) – функция, добавляющая новый элемент в список.

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

  1. Выделяем в памяти новую “ячейку” с данными типа stack_element

  2. Записываем полученное входное значение VALUE в переменную value заполняемого элемента NewTOP

  3. Записываем адрес текущего элемента стека в переменную previous созданного элемента (NewTOP) в качестве предыдущего

  4. Перезаписываем созданный элемент стека поверх предыдущего, сохраненного в переменной HEAD

void cut(stack_element *&TOP) – функция удаления одного верхнего элемента стека

  1. Извлекаем в переменную temp вещественное значение value из элемента-вершины стека TOP

  2. Запоминаем в переменной cut_elem указатель на адрес вершины стека, чтобы затем освободить выделенную под него память (удалить его)

  3. Вершиной становится предшествующий top элемент

  4. Освобождаем память, тем самым удалили вершину из памяти, зная ее адрес, записанный в указатель cut_elem

  5. Вывод значения удаленного (вырезанного) элемента на экран

void clear(stack_element *&TOP) – функция очистки стека – удаляет все элементы стека кроме служебного.

  1. Если в текущей вершине есть не записан служебный первый элемент, иначе говорим, что стек пуст

  2. Чистим стек

void show(stack_element *TOP) – функция вывода стека на экран