Моделирование механизмов защиты компьютерной системы, страница 7

                Global.АутОбъект[listBox1.SelectedIndex].mDostupa = new string[Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[0] + 1, Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[1]];

                Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[0]++;

                for (int i = 0; i < Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[0]; i++)

                    for (int j = 0; j < Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[1]; j++)

                        Global.АутОбъект[listBox1.SelectedIndex].mDostupa[i, j] = bufM[i, j];

                dataGridView1.RowCount = Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[0] - 1;

                dataGridView1.ColumnCount = Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[1] - 1;

                Global.АутОбъект[listBox1.SelectedIndex].mDostupa[Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[0] - 1, 0] = textBox6.Text;

                for (int i = 1; i < Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[0]; i++)

                {

                    dataGridView1.Rows[i - 1].HeaderCell.Value = Global.АутОбъект[listBox1.SelectedIndex].mDostupa[i, 0];

                }

                textBox6.Text = "";

            }

            else MessageBox.Show("Поле не может быть пустым!", "Ошибка!");

        }

Добавление объекта

Словесное описание

Добавляет новый объект-столбец в матрицу доступа

Формализация входных и выходных данных

Входные данные:

·  АутОбъект – аутентифицирующий объект

·  login – логин, строка

Выходные данные:

·  АутОбъект – аутентифицирующий объект

Определение математических и логических зависимостей

Добавление столбца в АутОбъектlogin.mDostupa

АутОбъектlogin.mDostupa0, ширина_матрицы = Имя_объекта

Код программы

private void button8_Click(object sender, EventArgs e)

        {

            if (textBox7.Text != "")

            {

                string[,] bufM = new string[Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[0], Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[1] + 1];

                for (int i = 0; i < Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[0]; i++)

                    for (int j = 0; j < Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[1]; j++)

                        bufM[i, j] = Global.АутОбъект[listBox1.SelectedIndex].mDostupa[i, j];

                Global.АутОбъект[listBox1.SelectedIndex].mDostupa = new string[Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[0], Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[1] + 1];

                Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[1]++;

                for (int i = 0; i < Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[0]; i++)

                    for (int j = 0; j < Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[1]; j++)

                        Global.АутОбъект[listBox1.SelectedIndex].mDostupa[i, j] = bufM[i, j];

                dataGridView1.RowCount = Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[0] - 1;

                dataGridView1.ColumnCount = Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[1] - 1;

                Global.АутОбъект[listBox1.SelectedIndex].mDostupa[0, Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[1] - 1] = textBox7.Text;

                for (int i = 1; i < Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[1]; i++)

                {

                    dataGridView1.Columns[i - 1].HeaderCell.Value = Global.АутОбъект[listBox1.SelectedIndex].mDostupa[0, i];

                }

                textBox7.Text = "";

            }

            else MessageBox.Show("Поле не может быть пустым!", "Ошибка!");

        }

Удаление субъекта

Словесное описание

Удаляет субъект-строку из матрицы доступа и все содержимое данной строки

Формализация входных и выходных данных

Входные данные:

·  АутОбъект – аутентифицирующий объект