Laba2_Var4 Program.Cs
using System;
using System.Collections.Generic;
using System.Text;
namespace Laba2_3_var_4
{
class Program
{
//точка входа в программу
static void Main(string[] args)
{
string s, p, quiti;
int raz;
bool f = false, fl = true;
List<Reg> r = new List<Reg>();
List<Kombik> kom = new List<Kombik>();
ReadIn re = new ReadIn();
do
{
Console.Clear();
Console.WriteLine("Imitacia kombinacionnix elementov i registrov\n" +
"Viberite:\n" +
"1--Registr\n" +
"2--Kombinacionniy element\n" +
"3--Viiti"
);
s = Console.ReadLine();
switch (s)
{
case "1":
{
do
{
fl = true;
f = false;
do
{
Console.Clear();
Console.WriteLine("Vvedite razmernost registra");
raz = re.readint();
}
while (raz == 0);
byte[][] mo = new byte[raz][];
byte[] rez = new byte[raz];
r.Add(new Reg(raz));
do
{
Console.Clear();
Console.WriteLine(
"Viberite:\n" +
"1--Vvesti znachenia na vxodax registra\n" +
"2--Vivesti tekushee znachenie na vixodax\n" +
"3--Zadat razmernost registra\n" +
"4--Sbrosit znachenie registra\n" +
"5--Vivesti znachenia s opredelennogo vixoda\n" +
"6--Viiti"
);
p = Console.ReadLine();
switch (p)
{
case "1":
{
Console.Clear();
do
{
re.readmas2(mo, raz);
r[0].SetReg(mo);
Console.WriteLine("Dla vixoda iz regima vvoda dannix nagmite 'Esc'");
}
while (Console.ReadKey().Key != ConsoleKey.Escape);
break;
}
case "2":
{
Console.Clear();
rez = r[0].GetQuit();
Console.WriteLine();
for (int i = 0; i < raz; i++)
{ Console.WriteLine("Q{0}: {1}", i + 1, rez[i]); }
Console.ReadKey();
break;
}
case "6":
{
f = false;
fl = false;
break;
}
case "3":
{
fl = false;
f = true;
break;
}
case "4":
{
r[0].Reset();
break;
}
case "5":
{
Console.Clear();
Console.WriteLine("Vvedite nomer vixoda (nachinautsa s 1)");
quiti = Console.ReadLine();
Console.WriteLine("Q=" + r[0].GetIQuit(quiti));
Console.ReadKey();
break;
}
default:
{
Console.WriteLine("Vvedite odin iz predlagaemix variantov");
break;
}
}
}
while (fl);
r.Clear();
mo = null;
rez = null;
}
while (f);
break;
}
case "2":
{
do
{
do
{
Console.Clear();
Console.WriteLine("Vvedite kol-vo vxodov elementa");
raz = re.readint();
}
while (raz == 0);
kom.Add(new Kombik("sum", raz));
Console.WriteLine("Vvedite znachenia na vxodax");
for (byte i = 0; i < raz; i++)
{
Console.Write("{0}=", i + 1);
kom[0].SetEnter(re.readbyte(), i);
}
Console.WriteLine("Q={0}", kom[0].GetQuit());
Console.WriteLine("Dla vixoda nagmite 'Esc'");
}
while (Console.ReadKey().Key != ConsoleKey.Escape);
kom.Clear();
break;
}
case "3":
{
return;
}
}
}
while (true);
} }
class ReadIn
{
public void readmas2(byte[][] mo, int r)
{
byte[] m;
bool err = false;
for (int j = 0; j < r; j++)
{
m = new byte[2];
Console.WriteLine("Vvedite vxodnie znachenia dla {0} triggera", j + 1);
for (int i = 0; i < 2; i++)
{
err = false;
if (i == 0) { Console.Write("T="); }
else { Console.Write("Q(t)="); }
m[i] = Convert.ToByte(Console.ReadLine());
}
mo[j] = m;
m = null;
}
}
public int readint()
{
bool err = false;
int r = 0;
do
{
err = false;
try
{
r = Convert.ToInt32(Console.ReadLine());
}
catch (Exception e)
{
err = true;
Console.WriteLine(e.Message);
Console.ReadKey();
}
}
while (err == true);
return r;
}
public byte readbyte()
{
bool err = false;
byte r = 0;
do
{
err = false;
try
{
r = Convert.ToByte(Console.ReadLine());
if (r != 0 && r != 1) { throw new Exception(); }
}
catch (Exception e)
{
err = true;
Console.WriteLine(e.Message);
Console.ReadKey();
}
}
while (err == true);
return r;
}
}}