2024
2024-2025
2025
- Номер 16 -> Задания номер 4 и 16
- Необходимо предусмотреть выполнение следующих операций над строками разрабатываемого класса:
int Length()
– определение длины строки,void Copy(const String str)
– скопировать строку str,int Find(char ch, int start)
– начиная с индекса start, найти положение символа ch в строке, для которой вызывается метод Find(),int FindLast(char ch)
– найти последнее вхождение символа ch,String Substr(int index, int count)
– выделение подстроки, начиная с индекса index; count – длина, выделяемой подстроки,void Remove(int index, int count)
– удаление подстроки, начиная с индекса index; count – длина удаляемой подстроки.void Insert(char* s, int index)
- вставка строки в стиле языка C в строку, для которой вызывается метод Insert; index – позиция, перед которой выполняется вставка.void print()
– метод для вывода строки на экран дисплея.
Требования к реализации. Строка должна располагаться в динамической памяти. Поле для хранения информации в классе отсутствует.
- Требуется разработать класс, обеспечивающий работу с комплексными числами. Реализация должна содержать три поля. Первое и втрое поле должны задавать само комплексное число (его действительную и мнимую части), а последнее поле должно содержать модуль комплексного числа.
Разработанный класс(
Complex
) должен обеспечить выполнение следующих операций:
- сложение,
- вычитание,
- умножение,
- деление,
- вывод комплексного числа на экран дисплея.
Ссылка на отчёт - Отчёт | Ссылка на док - Документ) | Папка - Папка
- Номер 16 -> Номер 44
Разработать определения двух класса COne
и CTwo
, которые связаны отношением включения.
Для всех классов требуется написать три вида конструкторов(умолчания, с параметрами и конструктор копирования), деструктор, перегруженный оператор присваивания, методы доступа и метод print()
, распечатывающий значения полей объекта.
Написать тестовую программу для проверки работоспособности разработанных классов.
Поля разрабатываемых классов считаются заданными:
- Поля класса
COne
:long l; string s;
- Поля класса
CTwo
:string s; COne* p;
Указания по выполнению лабораторной работы.
- Возможны следующие варианты организации классов:
а) организуется модули отдельно для класса
COne
иСTwo
; б) организуется общий модуль для указанных классов. - При использовании в объявлении полей указателей следует предполагать, что экземпляр класса владеет тем объектом, на который установлен указатель. Например, поле класса
COne
может быть объявлено следующим образом:char* ps
. Это означает, указательps
должен быть установлен на строку в стиле языка Си. При этом конструктор классаCOne
должен обеспечить выделение памяти для этой строки и в нее и копирование в эту память внешней строки. Аналогичными соображениями следует руководствоваться в отношении объявления полей видаCOne* p
. - Тип
string
реализован с помощью класса стандартной библиотеки языка C++.
Ссылка на отчёт - Отчёт | Ссылка на док - Документ | Папка - Папка
Дополнить систему, состоящую из двух классов COne
и CTwo
, которые были разработаны в лабораторной работе 2, новым классом CThree
. Новый класс должен быть связан public
наследованием с классом CTwo
. Класс CThree
должен имеет одно поля, которое выбирается студентом самостоятельно. Для разрабатываемого класса написать конструкторы умолчания, с параметрами и конструктор копирования, деструктор, методы доступа и метод print()
. Написать тестовую программу для проверки работоспособности разработанных классов.
Ссылка на отчёт - Отчёт | Ссылка на док - Документ | Папка - Папка
Дополнить систему, состоящую из трех классов COne
, CTwo
и CThree
, которые были разработаны в лабораторной работе 3, новым классом CFour
. Новый класс должен быть связан public
наследованием с классом CThree
. Класс CFour
должен иметь одно поля, которое выбирается студентом самостоятельно. Для разрабатываемого класса написать конструкторы умолчания, с параметрами и конструктор копирования, деструктор, методы доступа и метод print()
. Метод print()
в классах CTwo
, CThree
и CFour
должен быть виртуальным. Написать тестовую программу для проверки работоспособности разработанных классов. Разработать глобальную функцию printAll()
, имеющую два параметра: массив указателей типа CTwo*
и количество элементов в этом массиве int n
.
В тестовой программе массив указателей должен быть инициализирован адресами объектов типа CTwo
, CThree
и CFour
.
Ссылка на отчёт - Отчёт | Ссылка на док - Документ | Папка - Папка
В настоящей лабораторной работе необходимо решить две задачи, связанные с организацией шаблонов классов.
- Первая из задач состоит в преобразовании в шаблон класс того числового класса, который был разработан студентом в первой лабораторной работе по ООП.
- Вторая задача состоит в разработке шаблона контейнера. При решении второй задачи следует предусмотреть обработку исключительных ситуаций.
добавить варианты 2 залачи
ф
Ссылка на отчёт - Отчёт | Ссылка на док - Документ | Папка - Папка
В настоящей лабораторной работе необходимо разработать приложение, обладающее графическим интерфейсом с использованием средств библиотеки Qt.
- В приложении должно быть предусмотрено меню и панель инструментов. Ниже сформулирован ряд задач. Предлагаемые задачи достаточно просты, что позволяет сосредоточить внимание на вопросах организации интерфейса.
В настоящей лабораторной работе предлагаются две группы задач.
- в первой группе задач требуется разработать одну из разновидностей калькулятора.
- Ко второй группе задач относятся задачи, связанные с манипуляцией с содержимым текстового однострочного редактора.
добавить задачт
a
Ссылка на отчёт - Отчёт | Ссылка на док - Документ | Папка - Папка
Вычислить заданное целочисленное выражение для исходных данных в знаковых и беззнаковых форматах длиной 8 и 16 бит: signed char, unsigned short int, используя арифметические операции ADD, ADC, INC, SUB, SBB, DEC, NEG, MUL, IMUL, DIV, IDIV, CBW, CWD.
- Программа создается в двух вариантах – для 8 и 16 бит входных данных.
- Программа выполняется в виде двух модулей:
- модуль на языке Си – содержит главную функцию, обработку ввода данных, выполнение вычислений и вывода результата. Выполнение вычислений из двух частей: вычисление на языке Си, и вызов асемблерной функции;
- модуль на языке Асемблера – вычисление арифметического выражения.
- При выполнении вычисления отдельно вычисляются и выводятся на экран три значения: числитель, знаменатель и результат.
- Вычисления на Си выполняются для сравнения результата с Ассемблерным кодом для самоконтроля.
- Исходные значения переменных вводятся пользователем с клавиатуры. Они должны быть максимально приближены к максимально-возможным для тех типов данных, с которыми решается задача.
- Размер и тип числителя, знаменателя и результата зависит от заданного выражения.
- Обмен данными между Си и ASM - модулем должен осуществляться через глобальные переменные, определенные в модуле Си.
Порядок работы:
- Для каждого из перечисленных 2 типов данных написать ASM - модули вычисления арифметического выражения;
- Вызовы этих модулей должны осуществляться из модулей, написанных на языке Си, в которых должен осуществляться ввод исходных данных и вывод результатов.
- Модули на языке Си должны обеспечивать вычисление данного выражения на языке Си для проверки результатов и вызов ASM - модуля для вычисления заданного выражения.
- Программа на языке Си должна вывести на экран числитель, знаменатель и результат вычисления на языке Си, а также числитель, знаменатель и результат вычисления на языке ASM.
- Добавить в начале:
setlocale(LC_ALL, "ru_RU.UTF-8");