Лабораторная работа 10.2


Лабораторная работа № 10.2
Тема: Разработка программ реализующих механизм наследования(виртуальные методы).
Цель работы:  Формирование умений и навыков использования виртуальных методов в программе.
Время на выполнение работы: 2 часа
Этапы работы:
Ознакомится с теоретическими сведениями
Выполнить задания.
Ответить на контрольные вопросы
I Теоретические сведения
Описание логических функций(и элементов) в презентации
Описание триггеров в pdf файле

1. Описать базовый класс Элемент.
Закрытые поля:
имя элемента (строка символов);
количество входов элемента;
количество выходов элемента.
Методы:
конструктор класса без параметров;
конструктор, задающий имя и устанавливающий равным 1 количество входов и выходов;
конструктор, задающий значения всех полей элемента.
Свойства:
имя элемента (только чтение);
количество входов элемента;
количество выходов элемента.
2. На основе класса Элемент описать производный класс Комбинационный, представляющий собой комбинационный элемент, который может иметь несколько(количество в варианте) входов и один выход.
Закрытые поля:
массив значений входов.
Индексатор:
Необходим индексатор для получения и установки значения полей входов.
Методы:
конструкторы;
метод, вычисляющий значение выхода (по варианту задания).
3. На основе класса Элемент описать производный класс Память, представляющий собой триггер. Триггер имеет входы, соответствующие типу триггера(см. вариант задания). Все триггеры считаются синхронными, сам синхровход в состав триггера не включается.
Закрытые поля:
массив значений входов объекта класса, в массиве учитываются все входы(управляющие и информационные);
состояние на прямом выходе триггера;
состояние на инверсном выходе триггера.
Методы:
конструктор (по умолчанию сбрасывает экземпляр класса);
конструктор копирования;
метод, задающий значение на входах экземпляра класса;
методы, позволяющие опрашивать состояния отдельного входа экземпляра класса;
метод, вычисляющий состояние экземпляра класса (по варианту задания) в зависимости от текущего состояния и значений на входах;
4. Создать класс Регистр, используя класс Память как вложенный класс.
Поля:
состояние входа «Сброс» — один для экземпляра класса;
состояние входа «Установка» — один для экземпляра класса;
массив типа Память заданной в варианте размерности;
массив (массивы), содержащий значения на соответствующих входах элементов массива типа Память.
Методы:
метод, задающий значение на входах экземпляра класса;
метод, позволяющий опрашивать состояние отдельного выхода экземпляра класса;
метод, вычисляющий значение нового состояния экземпляра класса.
Все поля классов Элемент, Комбинационный и Память должны быть описаны с ключевым словом private.
В задании перечислены только обязательные члены и методы класса. Можно задавать дополнительные члены и методы, если они не отменяют обязательные и обеспечивают дополнительные удобства при работе с данными классами, например, описать функции вычисления выхода/состояния как виртуальные.
5. Для проверки функционирования созданных классов написать программу, использующую эти классы. В программе должны быть продемонстрированы все свойства созданных классов.

Вариант Комбинационный элемент Число входов Триггер Разрядность регистра
1 И-НЕ4 RS 8
2 МОД2-НЕ 6 D 12
3 И 8 Т 8
4 ИЛИ-НЕ 8 RST 9
5 И 4 RS 10
6 ИЛИ-НЕ 5 JK 11
7 МОД2 5 D 8
8 И 4 Т 10
9 ИЛИ 3 JK 8
10 И-НЕ 3 RS 12
11 ИЛИ-НЕ 4 RST 4
12 МОД2 5 D 10
13 МОД2-НЕ 6 Т 10
13 ИЛИ-НЕ 8 JK 10
III. Контрольные вопросы
Какой класс называется суперклассом?
Как передаются члены класса от одного другому?
Как использовать код класса-родителя?
Чем отличаются абстрактные классы от интерфейса?
Литература
Полный справочник по С#. Г. Шилдт. Издательский дом «Вильямс», 2004.
С# в подлиннике. Наиболее полное руководство. Х.Дейтел.
C# в задачах и примерах. Культин. Н.Б.
С# учебный курс. Г.Шилдт. СПб.: Питер, 2002.
С# программирование на языке высокого уровня Павловская Т.А. СПб.: БХВ-Петербург.
Составители Чеботарев А.В., Папок О.В.

Приложенные файлы

  • docx 8939529
    Размер файла: 29 kB Загрузок: 1

Добавить комментарий