Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТП лаба 2-3 вар 4.doc
Скачиваний:
6
Добавлен:
29.08.2019
Размер:
1.19 Mб
Скачать

59

Министерство образования и науки Российской Федерации

Пензенский государственный университет

Факультет вычислительной техники

Кафедра "Информационно-вычислительные системы"

Наследование. Интерфейсы и параметризованные коллекции

Отчет о лабораторной работе №2-3

по дисциплине «Технологии программирования»

Выполнили: ст. гр.06ВО1

Долгов К.В.

Чернецов А.Г.

Проверил:

Зимин А.П.

2010

Задание

В программах требуется описать базовый класс (возможно, абстрактный), в котором с помощью виртуальных или абстрактных методов и свойств задается интерфейс для производных классов. Целью лабораторной работы является максимальное использование наследования, даже если для конкретной задачи оно не дает выигрыша в объеме программы. Во всех классах следует переопределить метод Equals, чтобы обеспечить сравнение значений, а не ссылок.

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

1. Описать базовый класс “Элемент”.

Закрытые поля:

  • имя элемента (строка символов);

  • количество входов элемента;

  • количество выходов элемента.

Методы:

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

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

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

Свойства:

  • имя элемента (только чтение);

  • количество входов элемента;

  • количество выходов элемента.

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

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

Методы:

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

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

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

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

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

Поля:

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

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

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

Методы:

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

  • конструктор копирования;

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

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

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

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

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

Поля:

  • состояние входа «Сброс» — один для экземпляра класса;

  • состояние входа «Установка» — один для экземпляра класса;

  • массив типа Память заданной в варианте размерности;

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

Методы:

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

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

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

Все поля классов “Элемент”, “Комбинационный элемент” и “Память” должны быть описаны с ключевым словом private.

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

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

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

Таблица 1 – Варианты заданий

Вариант

Комбинационный элемент

Число входов

Триггер

Разрядность регистра

1

И-НЕ

4

RS

8

2

ИЛИ

5

RST

10

3

МОД2-НЕ

6

D

12

4

И

8

Т

8

5

ИЛИ-НЕ

8

V

9

6

И

4

RS

10

7

ИЛИ-НЕ

5

JK

11

8

МОД2

5

D

8

9

И

4

Т

10

10

ИЛИ

3

JK

8

11

И-НЕ

3

RS

12

12

ИЛИ-НЕ

4

RST

4

13

МОД2

5

D

10

14

МОД2-НЕ

6

Т

10

15

ИЛИ-НЕ

8

V

10

16

И

8

JK

6

17

И-НЕ

8

RS

10

18

ИЛИ

8

Т

10

19

МОД2

6

JK

8

20

МОД2-НЕ

5

V

10

Для лабораторной работы №3 выполнить задание л.р. №2, используя для хранения экземпляров разработанных классов стандартные параметризованные коллекции. Во всех классах реализовать интерфейс IComparable и перегрузить операции отношения для реализации значимой семантики сравнения объектов по какому-либо полю на усмотрение студента.

2 Описание программы

2.1 Общие сведения

Разработанные программы имеют наименование Laba2_Var4 и Laba3_Var4. Программы написаны на языке C#, их текст содержится в файлах Program.cs, Element.cs, Kombik.cs, Reg.cs, Trigger.cs . Для функционирования программ на персональном компьютере должна быть установлена операционная система Windows и Microsoft .NET Framework 2.0.

2.2 Диаграммы

2.2.1 Диаграмма вариантов использования

Диаграммы вариантов использования программы Laba2_Var4 и Laba3_Var4 совпадают и представлены на рисунке 1.\2\

Исходя из анализа предметной области и потребностей пользователя, были определены следующие варианты использования:

  1. Вывести значения выходов элемента

  2. Ввести значения на входах элемента

  3. Ввести количество входов элемента

  4. Задать размерность регистра

  5. Сбросить значения регистров

  6. Вывести значения с определённого выхода регистра

  7. Вывести значения с выходов регистра

  8. Ввести значения на входах регистра

Рисунок 1 – Диаграмма вариантов использования

Вариант использования «Вывести значения выходов элемента»:

Краткое описание:

Данный вариант использования позволяет вывести значения выходов элемента. Этот вариант использования включает в себя два варианта:

Ввести значения на входах элемента.

Ввести количество входов элемента.

Основной поток событий:

1) Пользователь инициализирует функцию вывода значения выходов элемента.

2) Инициализируется вариант использования «Ввести количество входов элемента».

3) Инициализируется вариант использования «Ввести значения на входах элемента».

4) Система выводит значения выходов элемента.

Вариант использования «Ввести значения на входах элемента»:

Краткое описание:

Данный вариант использования позволяет пользователю ввести значения на входах элемента. Значения вводятся в двоичном виде (0, 1), на каждый вход элемента отдельно.

Основной поток событий:

1) Система инициализирует функцию ввода значений на входах элемента.

2) Система предоставляет возможность ввести значения на входах.

3) Пользователь вводит значения на входах элемента.

4) Система регистрирует введенные значения.

Вариант использования «Ввести количество входов элемента»

Краткое описание:

Данный вариант использования позволяет пользователю ввести количество входов элемента.

Основной поток событий:

1) Система инициализирует функцию ввода количества входов элемента.

2) Система предоставляет возможность ввести количество входов элемента.

3) Пользователь вводит количество входов элемента.

4) Система регистрирует введенное значение.

Вариант использования «Задать размерность регистра».

Краткое описание:

Данный вариант использования позволяет пользователю задать размерность регистра. Этот вариант использования обязателен перед выполнением вариантов использования:

Сбросить значения регистров,

Вывести значения с определённого входа регистра,

Вывести значения с выходов регистра,

Ввести значения на входах регистра.

Основной поток событий:

1) Система инициализирует функцию ввода размерности регистра.

2) Система предоставляет возможность ввести размерность регистра.

3) Пользователь вводит размерность регистра.

4) Система регистрирует введенное значение.

Вариант использования «Сбросить значения регистров».

Краткое описание:

Данный вариант использования позволяет пользователю задать размерность регистра. Этот вариант использования включает вариант использования «Задать размерность регистра». Все выходы регистра устанавливаются в логический 0.

Основной поток событий:

1) Пользователь инициализирует функцию сброса значений регистра.

2) Система предоставляет возможность сбросить значения регистра.

3) Система сбрасывает значения регистра.

Вариант использования «Вывести значения с определённого входа регистра».

Краткое описание:

Данный вариант использования позволяет пользователю вывести значения с определённого входа регистра. Этот вариант использования включает вариант использования «Задать размерность регистра». Входы нумеруются целыми числами начиная с 1.

Основной поток событий:

1) Пользователь инициализирует функцию вывода значения с определённого входа регистра.

2) Система предоставляет возможность вывести значения с определённого входа.

3) Пользователь вводит номера входа.

4) Система выводит значения с определенного входа регистра.

Вариант использования «Вывести значения с выходов регистра»

Краткое описание:

Данный вариант использования позволяет пользователю вывести значения с выходов регистра. Этот вариант использования включает вариант использования «Задать размерность регистра».

Основной поток событий:

1) Пользователь инициализирует функцию вывода значения с выходов регистра.

2) Система предоставляет возможность вывести значения с выходов.

3) Система выводит значения с выходов регистра.

Вариант использования «Ввести значения на входах регистра»

Краткое описание:

Данный вариант использования позволяет пользователю вывести значения на входах регистра. Этот вариант использования включает вариант использования «Задать размерность регистра».

Основной поток событий:

1) Пользователь инициализирует функцию ввода значений на входах регистра.

2) Система предоставляет возможность ввести значения на входах регистра.

3) Пользователь вводит значения.

4) Система регистрирует введенные значения.

2.2.2 Диаграмма классов

Исходя из задания, были определенны следующие классы.

Диаграмма классов для работы №2 представлена на рисунке 2, для работы №3 представлена на рисунке 3.

Рисунок 2 – Диаграмма классов.

Рисунок 3 – Диаграмма классов.

Описание классов:

  1. Класс Element – абстрактный, использует интерфейс IComparable.

Атрибуты класса:

Name –типа string, хранит имя элемента.

Enter – типа int, хранит количество входов элемента.

Quit - типа int, хранит количество выходов элемента.

Методы класса:

Name() – метод доступа к переменной name.

Enter()- метод доступа к переменной enter.

Quit()- метод доступа к переменной quit.

CompareTo() - метод определенный интерфейсом Icomparable, сравнивает экземпляры класса.

Equals() – метод сравнивает экземпляр данного класса, с указанным в запросе.

  1. Класс Trigger, состоит в связи обобщения с классом Element, и связи агрегации с классом Reg.

Атрибуты класса:

q- типа byte, для хранения данных с прямого выхода триггера.

qi- типа byte, для хранения данных с инверсного выхода триггера.

TrigEnter- типа byte[], хранит данные на входах триггера.

Методы класса:

SetEnter() - устанавливает значения на входы триггера, в случае успешной операции метод возвращает true.

Параметры: TrigEnter - массив типа byte.

GetQuitL() – возвращает значения типа byte с прямого выхода триггера.

GetQuitI() - возвращает значения типа byte с инверсного выхода триггера.

Reset() – сбрасывает состояние триггера.

Класс Trigger наследует и переопределяет от класса Element следующие методы: CompareTo(), Quit(), Enter(), Name(), Equals().

  1. Класс Kombik, состоит в связи обобщения с классом Element, и связи ассоциации с классом Program.

Атрибуты класса:

Menter – типа byte[], содержит значения на входах элемента.

Методы класса:

GetQuit – метод возвращает значения типа byte на выходе элемента.

SetEnter – метод устанавливает значения на входах элемента, возвращает true в случае успешной операции.

Параметры: ch – устанавливаемое значение в позицию pos.

GetEnter- метод возвращает значения элемента на определённом входе элемента, параметры: возвращает значение с выхода pos.

Класс Trigger наследует и переопределяет от класса Element следующие методы: CompareTo(), Quit(), Enter(), Name(), Equals().

  1. Класс Reg использует интерфейс Icomparable, состоит в связи ассоциации с классом Program, а также в связи агрегации с классом Trigger.

Атрибуты класса:

Raz – типа int, содержит размерность регистра.

RegEnter – типа byte[][], содержит входные данные регистра.

Quit – типа byte[], содержит значения на выходах регистра.

Registr – коллекция типа Trigger, содержит экземпляры класса Trigger.

Методы класса:

SetReg() – метод устанавливает значения входов регистра.

Параметры: enter - двумерный массив типа byte.

GetQuit() – возвращает значения с выходов регистра в виде массива типа byte.

GetIQuit() – возвращает значение с определенного выхода регистра.

Параметры: name – типа string, имя выхода.

Reset() – сбрасывает регистр.

CompareTo() - метод определенный интерфейсом Icomparable, сравнивает экземпляры класса.

Equals() – метод сравнивает экземпляр данного класса, с указанным в запросе.

  1. Класс Program состоит в связях ассоциации с классами Kombik и Reg.

Методы класса:

Main – метод является точкой входа в программу, обеспечивает интерфейс консольного приложения.

  1. Класс ReadIn состоит в связи ассоциации с классом Program.

Методы класса:

Readmas2 – возвращает считанный с клавиатуры двумерный массив.

Readint – возвращает считанное с клавиатуры значение типа int.

Readbyte - возвращает считанное с клавиатуры значение типа byte.

  1. Интерфейс Icomparable.

Методы класса:

CompareTo –метод отвечающий за сравнивание объектов.

2.2.3 Диаграмма последовательности

Диаграмма последовательностей для варианта использования: «Вывести значения с выходов элемента» с включёнными вариантами «Ввести количество входов элемента» и «Ввести значения на входах элемента» представлена на рисунке4, «Задать размерность регистра» представлена на рисунке 5, «Ввести значения на входах регистра» представлена на рисунке 6, «Сбросить значения регистров» представлена на рисунке 7, «Вывести значения с определённого выхода регистра» представлена на рисунке 8, «Вывести значения с выходов регистра» представлена на рисунке 9.

Рисунок 4. – Диаграмма последовательности для варианта использования «Вывести значения с выходов элемента» с включёнными вариантами «Ввести количество входов элемента» и «Ввести значения на входах элемента».

Описание диаграммы представленной на рисунке 4.

При запуске программы запускается метод Main() класса Program. После этого пользователь вводит количество входов элемента с помощью метода Readint() класса ReadIn. Далее введенные значения заносятся в переменную enter с помощью метода доступа Enter().Затем пользователь вводит входные данные для комбинационного элемента вызвав при этом метод Readbyte() класса ReadIn. Далее введенные значения заносятся в соответствующее поле класса Kombik посредством метода SetEnter(). Затем на монитор выводятся значения на выходах элемента возвратимые методом GetQuit() класса Kombik.

Рисунок 5. – Диаграмма последовательности для вариантов использования «Задать размерность регистра».

Описание диаграммы представленной на рисунке 5.

При запуске программы запускается метод Main() класса Program. После этого пользователь вводит размер регистра с помощью метода Readint() класса ReadIn. Далее управление возвращается классу Program.

Рисунок 6. – Диаграмма последовательности для варианта использования «Ввести значения на входах регистра».

Описание диаграммы представленной на рисунке 6.

При запуске программы запускается метод Main() класса Program. После этого пользователь вводит хначения на входах регистра с помощью метода Readmas2() класса ReadIn. Далее введенные значения в качестве параметра передаются методу SetReg() класса Reg, который в свою очередь для каждого входа отдельно вызывает метод SetEnter() класса Trigger. Затем управление передается классу Program.

Рисунок 7. – Диаграмма последовательности для варианта использования «Сбросить значения регистров».

Описание диаграммы представленной на рисунке 7.

При запуске программы запускается метод Main() класса Program. После этого пользователь инициирует функцию «Сбросить значения регистра» с помощью метода Reset() класса ReadIn, который в свою очередь для каждого входа отдельно вызывает метод Reset() класса Trigger. Затем управление передается классу Program.

Рисунок 8. – Диаграмма последовательности для варианта использования «Вывести значения с определённого выхода регистра».

Описание диаграммы представленной на рисунке 8.

При запуске программы запускается метод Main() класса Program. После этого пользователь вводит номер выхода, c которого нужно считать информацию при этом вызывается метод GetIquit() класса Reg. Далее класс Reg извлекает значение по-средством метода GetQuitL() класса Trigger. Затем управление передается классу Program.

Рисунок 9. – Диаграмма последовательности для варианта использования «Вывести значения с выходов регистра»

Описание диаграммы представленной на рисунке 9.

При запуске программы запускается метод Main() класса Program. После этого пользователь инициирует функцию вывода значений на выходах регистра при этом вызывается метод GetQuit() класса Reg. Далее класс Reg извлекает значение по-средством метода GetQuitL() класса Trigger. Затем управление передается классу Program.

3 Тестирование

Для проверки правильности работы и функционирования программы Laba2_Var4 был подготовлен тестовый пример. Для того чтобы запустить приложение на выполнение необходимо открыть файл Laba2_Var4.exe, щелкнув на нем дважды левой кнопкой мыши. При запуске программы появляется главное меню, в котором предлагается выбрать для запуска одну из функций системы (Рисунок Б.1).

Для запуска функции вычисления значений регистра на выходах необходимо ввести «1» и нажать «Enter». После этого выведется приглашение для ввода размерности регистра. Нужно будет выбрать размерность регистра равную 9 (Рисунок Б.2). Появится меню (Рисунок Б.3).

1)Ввести значения на входах регистра (Рисунок Б.4).

Пользователь должен нажать на кнопку «1» и «Enter» после этого необходимо ввести следующие значения (таблица 1):

Таблица 1. Тестовые входные данные для регистра

1

2

3

4

T

0

0

1

1

Q(t)

0

1

0

1

2)Вывести текущие значения на выходах.

После ввода значений описанных в пункте 1 на экране должны появиться соответствующие выходные значения (рисунок Б.5). Правильность выходных данных можно проверить по таблице состояний T-триггера (таблица 2):

Таблица 2. Состояния T-триггера

T

Q(t)

Q(t+1)

0

0

0

0

1

1

1

0

1

1

1

0

3)Задать размерность регистра (Рисунок Б.6).

4)Сбросить значения регистра.

Чтобы сбросить значения регистра пользователь должен нажать «4» и «Enter». Чтобы проверить правильность выполнения данной функции необходимо вернуться к пункту 2. На всех выходах должны быть 0 (Рисунок Б.7).

5) Вывести значения с определенного выхода (Рисунок Б.8).

Чтобы вывести значение с определенного выхода регистра необходимо в меню нажать на кнопку «5» и «Enter». Далее пользователь должен ввести номер выхода и нажать «Enter». На рисунке Б.8 показано значение с первого выхода после сброса регистра, на рисунке Б.10 показано значение с первого выхода при значениях, описанных в пункте 1. Чтобы выйти в главное меню необходимо ввести цифру 6 и нажать «Enter».

Для запуска функции вычисления комбинационного элемента необходимо ввести «2» и нажать «Enter». После этого выведется приглашение для ввода количества входов элемента и значения на входах (Рисунок Б.9). После задания всех необходимы значений, программа выведет результат и предложит выйти в главное меню при нажатии на кнопку «Esc» или, нажав любую другую клавишу продолжить работу функции с новыми значениями. (Рисунок Б.2). Для проверки правильности работы комбинационного элемента необходимо воспользоваться таблицей истинности элемента «И» представленного в таблице 3.

Таблица 3. Таблица истинности для элемента «И»

a

b

Q

0

0

0

1

0

0

0

1

0

1

1

1

Выход из программы осуществляется вводом «3» и нажатии «Enter»в главном меню.

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

Результат работы программы совпал с ожидаемым, следовательно, программа работает верно.

Для проверки правильности работы и функционирования программы Laba3_Var4 был подготовлен тестовый пример. Для того чтобы запустить приложение на выполнение необходимо открыть файл Laba3_Var4.exe, щелкнув на нем дважды левой кнопкой мыши. При запуске программы появляется главное меню, в котором предлагается выбрать для запуска одну из функций системы (Рисунок Б.1).

Для запуска функции вычисления значений регистра на выходах необходимо ввести «1» и нажать «Enter». После этого выведется приглашение для ввода размерности регистра. Нужно будет выбрать размерность регистра равную 9 (Рисунок Б.2). Появится меню (Рисунок Б.3).

1)Ввести значения на входах регистра (Рисунок Б.4).

Пользователь должен нажать на кнопку «1» и «Enter» после этого необходимо ввести следующие значения (таблица 1):

Таблица 1. Тестовые входные данные для регистра

1

2

3

4

T

0

0

1

1

Q(t)

0

1

0

1

2)Вывести текущие значения на выходах.

После ввода значений описанных в пункте 1 на экране должны появиться соответствующие выходные значения (рисунок Б.5). Правильность выходных данных можно проверить по таблице состояний T-триггера (таблица 2):

Таблица 2. Состояния T-триггера

T

Q(t)

Q(t+1)

0

0

0

0

1

1

1

0

1

1

1

0

3)Задать размерность регистра (Рисунок Б.6).

4)Сбросить значения регистра.

Чтобы сбросить значения регистра пользователь должен нажать «4» и «Enter». Чтобы проверить правильность выполнения данной функции необходимо вернуться к пункту 2. На всех выходах должны быть 0 (Рисунок Б.7).

5) Вывести значения с определенного выхода (Рисунок Б.8).

Чтобы вывести значение с определенного выхода регистра необходимо в меню нажать на кнопку «5» и «Enter». Далее пользователь должен ввести номер выхода и нажать «Enter». На рисунке Б.8 показано значение с первого выхода после сброса регистра, на рисунке Б.10 показано значение с первого выхода при значениях, описанных в пункте 1. Чтобы выйти в главное меню необходимо ввести цифру 6 и нажать «Enter».

Для запуска функции вычисления комбинационного элемента необходимо ввести «2» и нажать «Enter». После этого выведется приглашение для ввода количества входов элемента и значения на входах (Рисунок Б.9). После задания всех необходимы значений, программа выведет результат и предложит выйти в главное меню при нажатии на кнопку «Esc» или, нажав любую другую клавишу продолжить работу функции с новыми значениями. (Рисунок Б.2). Для проверки правильности работы комбинационного элемента необходимо воспользоваться таблицей истинности элемента «И» представленного в таблице 3.

Таблица 3. Таблица истинности для элемента «И»

a

b

Q

0

0

0

1

0

0

0

1

0

1

1

1

Выход из программы осуществляется вводом «3» и нажатии «Enter»в главном меню.

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

Результат работы программы совпал с ожидаемым, следовательно, программа работает верно.

4 Описание применения

Для того чтобы запустить приложение Laba2_Var4 на выполнение необходимо открыть файл Laba2_Var4.exe, щелкнув на нем дважды левой кнопкой мыши. При запуске программы появляется главное меню, в котором предлагается выбрать для запуска одну из функций системы (Рисунок Б.1).

Для запуска функции вычисления значений регистра на выходах необходимо ввести «1» и нажать «Enter». После этого выведется приглашение для ввода размерности регистра. Нужно будет выполнить необходимые действия, выбрать размерность регистра (Рисунок Б.2). Далее появится меню в котором можно сделать следующие действия (Рисунок Б.3). Чтобы ввести значения на входах регистра необходимо ввести «1» и нажать «Enter». После этого выведется приглашение для ввода значения на входах регистра (Рисунок Б.4). Чтобы вывести текущие значения на выходах регистра необходимо ввести «2» и нажать «Enter». После этого выведутся вывести текущие значения на выходах регистра (Рисунок Б.5). Чтобы задать размерность регистра необходимо ввести «3» и нажать «Enter». После этого выведется приглашение для ввода размерности регистра (Рисунок Б.6). Чтобы сбросить значения регистра необходимо ввести «4» и нажать «Enter». (Рисунок Б.7). Чтобы вывести значения с определенного выхода необходимо ввести «5» и нажать «Enter». После этого выведется приглашение для ввода номера выхода (Рисунок Б.8). Чтобы выйти в главное меню необходимо ввести цифру 6 и нажать «Enter».

Для запуска функции вычисления комбинационного элемента необходимо ввести «2» и нажать «Enter». После этого выведется приглашение для ввода количества входов элемента и значения на входах (Рисунок Б.9). После задания всех необходимы значений, программа выведет результат и предложит выйти в главное меню при нажатии на кнопку «Esc» или, нажав любую другую клавишу продолжить работу функции с новыми значениями.

Выход из программы осуществляется вводом «3» и нажатии «Enter»в главном меню.

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

Для того чтобы запустить Laba3_Var4 приложение на выполнение необходимо открыть файл Laba3_Var4.exe, щелкнув на нем дважды левой кнопкой мыши. При запуске программы появляется главное меню, в котором предлагается выбрать для запуска одну из функций системы (Рисунок Б.1).

Для запуска функции вычисления значений регистра на выходах необходимо ввести «1» и нажать «Enter». После этого выведется приглашение для ввода размерности регистра. Нужно будет выполнить необходимые действия, выбрать размерность регистра (Рисунок Б.2). Далее появится меню в котором можно сделать следующие действия (Рисунок Б.3). Чтобы ввести значения на входах регистра необходимо ввести «1» и нажать «Enter». После этого выведется приглашение для ввода значения на входах регистра (Рисунок Б.4). Чтобы вывести текущие значения на выходах регистра необходимо ввести «2» и нажать «Enter». После этого выведутся вывести текущие значения на выходах регистра (Рисунок Б.5). Чтобы задать размерность регистра необходимо ввести «3» и нажать «Enter». После этого выведется приглашение для ввода размерности регистра (Рисунок Б.6). Чтобы сбросить значения регистра необходимо ввести «4» и нажать «Enter». (Рисунок Б.7). Чтобы вывести значения с определенного выхода необходимо ввести «5» и нажать «Enter». После этого выведется приглашение для ввода номера выхода (Рисунок Б.8). Чтобы выйти в главное меню необходимо ввести цифру 6 и нажать «Enter».

Для запуска функции вычисления комбинационного элемента необходимо ввести «2» и нажать «Enter». После этого выведется приглашение для ввода количества входов элемента и значения на входах (Рисунок Б.9). После задания всех необходимы значений, программа выведет результат и предложит выйти в главное меню при нажатии на кнопку «Esc» или, нажав любую другую клавишу продолжить работу функции с новыми значениями.

Выход из программы осуществляется вводом «3» и нажатии «Enter»в главном меню.

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

Выводы

В результате выполнения лабораторной работы было созданы приложения, позволяющие пользователю имитировать комбинационный элемент на «И» элементах и регистр на T-триггерах. В соответствии с ожидаемыми результатами и результатом работы программы в тестовом режиме можно сделать вывод, что разработанные программа Laba2_Var4.exe и Laba3_Var4.exe работают верно, а требования задания выполнены в полном объеме.

ЛИСТИНГ ПРОГРАММЫ

Приложение А

(обязательное)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]