Программирование >>  Обработка исключительных ситуаций 

1 ... 130 131 132 [ 133 ] 134 135 136 ... 142


402 Лабораторные работы

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

33il2 -7И00 +5i - 21

Для класса Комплексное число определить следующие методы:

проверка на равенство;

сложение чисел;

умножение чисел.

Вариант 4

Описать базовый класс Строка в соответствии с вариантом 3. Описать производный от Строка класс Десятичная строка.

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

Для класса определить следующие методы:

конструктор, принимающий в качестве параметра число;

арифметическая разность строк;

проверка на больше (по значению);

проверка на меньше (по значению).

Вариант 5

Описать базовый класс Строка в соответствии с вариантом 3. Описать производный от Строка класс Битовая строка.

Строки данного класса могут содержать только символы 0 или 1. Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, класс Битоваястрока принимает нулевое значение. Содержимое данных строк рассматривается как двоичное число. Отрицательные числа хранятся в дополнительном коде.



Лабораторная работа 9. Наследование 403

Для класса Битовая строка определить следующие методы:

конструктор, принимающий в качестве параметра строковый литерал;

деструктор;

изменение знака на противоположный (перевод числа в дополнительный код);

присваивание;

вычисление арифметической суммы строк;

проверка на равенство.

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

Вариант 6

1. Описать базовый класс Элемент. Закрытые поля:

О имя элемента (строка символов); О количество входов элемента; О количество выходов элемента. Методы:

О конструктор класса без параметров;

О конструктор, задающий имя и устанавливающий равным 1 количество входов и выходов;

О конструктор, задающий значения всех полей элемента.

Свойства:

О имя элемента (только чтение); О количество входов элемента; О количество выходов элемента.

2. На основе класса Элемент описать производный класс Комбинационный, представляющий собой комбинационный элемент (двоичный вентиль), который может иметь несколько входов и один выход.

Поле - массив значений входов.

Методы:

О конструкторы;

О метод, задающий значение на входах экземпляра класса;

О метод, позволяющий опрашивать состояние отдельного входа экземпляра класса;

О метод, вычисляющий значение выхода (по варианту задания).

3. На основе класса Элемент описать производный класс Память, представляющий собой триггер. Триггер имеет входы, соответствующие типу триггера



404 Лабораторные работы

(см. далее вариант задания), и входы установки и сброса. Все триггеры считаются синхронными, сам синхровход в состав триггера не включается.

Поля:

О массив значений входов объекта класса, в массиве учитываются все входы (управляющие и информационные);

О состояние на прямом выходе триггера;

О состояние на инверсном выходе триггера.

Методы:

О конструктор (по умолчанию сбрасывает экземпляр класса); О конструктор копирования;

О метод, задающий значение на входах экземпляра класса;

О методы, позволяющие опрашивать состояния отдельного входа экземпляра класса;

О метод, вычисляющий состояние экземпляра класса (по варианту задания) в зависимости от текущего состояния и значений на входах;

О метод, переопределяющий операцию == для экземпляров класса.

4 . Создать класс Регистр, используя класс Памя1ь как вложенный класс.

Поля:

О состояние входа Сброс - один для экземпляра класса; О состояние входа Установка - один для экземпляра класса; О массив типа Память заданной в варианте размерности;

О массив (массивы), содержащий значения на соответствующих входах элементов массива типа Память. Методы:

О метод, задающий значение на входах экземпляра класса;

О метод, позволяющий опрашивать состояние отдельного выхода экземпляра класса;

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

Все поля классов Элемент, Комбилио и Память должны быть описаны с ключевым словом pri vate.

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

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

Конкретный тип комбинационного элемента, тип триггера и разрядность регистра выбираются в соответствии с вариантом задания:



1 ... 130 131 132 [ 133 ] 134 135 136 ... 142

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.078
При копировании материалов приветствуются ссылки.
Яндекс.Метрика