Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Среда программирования VISUAL C++

Автор:   •  Апрель 1, 2023  •  Лабораторная работа  •  3,044 Слов (13 Страниц)  •  211 Просмотры

Страница 1 из 13

Лабораторная работа №23.

Среда программирования VISUAL C++.

Классы и объекты. Инкапсуляция, конструкторы.

1. Постановка задачи (общая):

1. Определить класс-контейнер.

2. Реализовать конструкторы, деструктор, операции ввода-вывода, операцию присваивания.

3. Перегрузить операции, указанные в варианте.

4. Реализовать класс-итератор. Реализовать с его помощью операции последовательного доступа.

5. Написать тестирующую программу, иллюстрирующую выполнение операций.

Постановка задачи (11 вариант):

Написать класс-контейнер СПИСОК с ключевыми значениями типа int. Реализовать операции: [] – доступа по индексу; () – определение размера вектора; + число – добавляет константу ко всем элементам вектора; ++ - переход к следующему элементу ( с помощью класса-итератора).

2. Анализ задачи:

• Определения функций для реализации поставленных задач;

Для реализации поставленных задач определен класс-конйтейнер, лежащий в .h файле, функция main() и два макроса: IF_NOT_NULLPTR(text) и IF _NULLPTR(text). Работа обоих макросов похожа и специализирована для функции main(): если указатель на класс контейнер в main() не нулевой (нулевой), то выполнение text, иначе вывод сообщения ошибки и возвращение в меню.

• Определение функции main();

Функция main() состоит из:

1) Объявление переменных: нулевой указатель на класс-контейнер, служебная переменная типа int64_t для считывания значений с клавиатуры (преимущественно используется для хранения количества элементов или индекса отдельного элемента) и промежуточная переменная типа int32_t, в которую вводится значение, чтобы положить его в список.

2) Бесконечный цикл:

a. Печать текстового меню (всего 9 возможных вариантов выбора);

b. Switch-case:

‘1’: Если указатель нулевой, то создание и ввод нового списка:

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

‘2’: Если указатель не нулевой, то список удаляется; указателю присваивается nullptr.

‘3’: Если указатель не нулевой, то запрашивается ввод числа формата int32_t в промежуточную переменную, значение в которой затем методом push_back становится новым элементом списка.

‘4’: Если указатель нулевой, то путем использования операции вывода на экран выводится весь список.

‘5’: Если указатель не нулевой, то весь список выводится путем использования итератора класса-контейнера: переменной цикла приравнивается итератор на первый элемент, и пока он не равен итератору на элемент после последнего, его значение выводится на экран, а он сам инкрементируется.

‘6’: Если указатель не нулевой, то пока служебная переменная меньше нуля и больше длины списка (длина списка становится известна благодаря использованию перегруженного оператора круглых скобок), программа просит пользователя ввести значение индекса в служебную переменную. После этого на экран выводится значение элемента списка под индексом путем использования оператора квадратных скобочек и пользователя просят ввести новое значение в данный элемент.

‘7’: Если указатель не нулевой, то перегруженный оператор круглых скобочек возвращает длину списка.

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

‘9’: Нормальное

...

Скачать:   txt (26 Kb)   pdf (87.2 Kb)   docx (19.5 Kb)  
Продолжить читать еще 12 страниц(ы) »
Доступно только на Essays.club