CombElem.Cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Lab2V1
{
//класс “Комбинационный элемент”
class CombElem : Element
{
//массив значений входов
private bool[] Inputs;
//конструктор
public CombElem(int CountInputs)//входные значения
: base("Комбинационный элемент И-НЕ", CountInputs, 1) //число выходов задается через базовый класс Element
{
Inputs = new bool[CountInputs];
Inputs.Initialize();
}
//метод, задающий значение на входах экземпляра класса
public bool SetInput(bool[] Value)
{
if (Inputs.GetLength(0) == Value.GetLength(0)) //проверка количества символов в массиве
{
Value.CopyTo(Inputs, 0);// Копируем массив валуе в инпутс
return true;
}
else
return false;
}
//метод, позволяющий опрашивать состояние отдельного входа экземпляра класса
public bool GetValue(int Index, out bool Error)
{
if (Index < Inputs.GetLength(0)) //если номер входа меньше 4
{
Error = false;
return Inputs[Index]; //возвращает значение выбранного входа
}
else
{
Error = true;
return false;
}
}
//метод, вычисляющий значение выхода И-НЕ
public bool Result()
{
bool tmp = true;
for (int i = 0; i < Inputs.GetLength(0); i++)
tmp = tmp & Inputs[i];
return !tmp;
}
//переопределение метода equals
public override bool Equals(System.Object obj)
{
// если параметр не может быть приведен к CombElem false:
CombElem p = obj as CombElem;
if ((object)p == null)
{
return false;
}
return base.Equals(obj) && (Inputs == p.Inputs);
}
//метод hashCode у одинаковых объектов должен быть одинаковым:
public override int GetHashCode()
{
return base.GetHashCode() ^ Inputs.GetHashCode();
}
}
}
ЭКРАННЫЕ ФОРМЫ
Приложение Б
(обязательное)
Рисунок Б.1 – Главное меню приложения
Рисунок Б.2 – Ввод входных значений элемента
Рисунок Б.3 – Вывод значения заданного входа элемента
Рисунок Б.4 – Вывод значения на выходе элемента
Рисунок Б.5 – Ввод входных значений триггера
Рисунок Б.6 – Вывод значения заданного входа триггера
Рисунок Б.7 – Вывод значения на выходах триггера
Рисунок Б.8 – Ввод входных значений триггера
Рисунок Б.9 – Вывод значения заданного выхода регистра
Рисунок Б.10 –Вывод значения на выходах регистра