Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа (1,08 МБ).docx
Скачиваний:
2
Добавлен:
17.09.2019
Размер:
1.14 Mб
Скачать
    1. Класс проверки входа в программу (Parol.Cs)

using System;

using System.Collections.Generic;

using System.Windows;

namespace Матрица_1_0

{

class Parol

{

public bool Dostup(string login, string parol)

{

List<string> log=new List<string>();

log.Add("Абхаликов");

log.Add("Булавский");

log.Add("Булыга");

log.Add("Горбенко");

log.Add("Дядичкин");

log.Add("Занько");

log.Add("Казак");

log.Add("Ким");

log.Add("Козлова");

log.Add("Кузнецов");

log.Add("Кульчик");

log.Add("Мурашко");

log.Add("Мусаев");

log.Add("Озолин");

log.Add("Рябчинская");

log.Add("Шаченок");

log.Add("Романовский");

log.Add("Якимович");

log.Add("Ходар");

log.Add("Сокольников");

log.Add("Рутковский");

log.Add("Серебренников");

log.Add("Скоробогатый");

log.Add("Чашинский");

List<string> par = new List<string>();

par.Add("Руслан");

par.Add("Иван");

par.Add("Владимир");

par.Add("Алла");

par.Add("Дмитрий");

par.Add("Роман");

par.Add("Алексей");

par.Add("Дмитрий");

par.Add("Виктория");

par.Add("Валерий");

par.Add("Сергей");

par.Add("Михаил");

par.Add("Эльдар");

par.Add("Никита");

par.Add("Надежда");

par.Add("Татьяна");

par.Add("Антон");

par.Add("Павел");

par.Add("Максим");

par.Add("Максим");

par.Add("Алексей");

par.Add("Владимир");

par.Add("Дмитрий");

par.Add("Александр");

for (int i = 0; i < log.Count; i++)

{

if (login == log[i])

{

if (parol == par[i])

{

MessageBox.Show("Вход выполнен!");

MessageBox.Show("Здравствуйте "+par[i]);

return true;

}

}

}

MessageBox.Show("Вы ввели неправильные данные!");

return false;

}

}

}

    1. Класс получения определителя матрицы (Opr.Cs)

using System;

using System.Collections.Generic;

using System.Windows;

namespace Матрица_1_0

{

class Opr

{

int n = 0;

List<List<double>> M = new List<List<double>>();

double[,] matr;

public double DetGauss(int ind, Cache ch)

{

if (ind == 1)

{

if (ch.c == ch.d)

{

n = ch.c;

matr = ch.matr1;

for (int i = 0; i < n; i++)

{

List<double> Mr = new List<double>();

for (int j = 0; j < n; j++)

{

Mr.Add (matr[i, j]);

}

M.Add(Mr);

}

}

else

{

MessageBox.Show("Выбранная матрица не является квадратной!");

}

}

if (ind == 2)

{

if (ch.e == ch.f)

{

n = ch.e;

matr = ch.matr2;

for (int i = 0; i < n; i++)

{

List<double> Mr = new List<double>();

for (int j = 0; j < n; j++)

{

Mr.Add(matr[i, j]);

}

M.Add(Mr);

}

}

else

{

MessageBox.Show("Выбранная матрица не является квадратной!");

}

}

if (ind == 3)

{

if (ch.g == ch.h)

{

n = ch.h;

matr = ch.res;

for (int i = 0; i < n; i++)

{

List<double> Mr = new List<double>();

for (int j = 0; j < n; j++)

{

Mr.Add(matr[i, j]);

}

M.Add(Mr);

}

}

else

{

MessageBox.Show("Выбранная матрица не является квадратной!");

}

}

double det = 1;

int k = 0;

const double E = 1E-9;

for (int i = 0; i < n; i++)

{

k = i;

for (int j = i + 1; j < n; j++)

{

if (Math.Abs(M[j][i]) > Math.Abs(M[k][i]))

{

k = j;

}

}

if (Math.Abs(M[k][i]) < E)

{

det = 0;

break;

}

Swap(ref M, i, k);

if (i != k) det *= -1;

{

det *= M[i][i];

}

for (int j = i + 1; j < n; j++)

{

M[i][j] /= M[i][i];

}

for (int j = 0; j < n; j++)

{

if ((j != i) && (Math.Abs(M[j][i]) > E))

{

for (k = i + 1; k < n; k++)

{

M[j][k] -= M[i][k] * M[j][i];

}

}

}

}

return det;

}

private void Swap(ref List<List<double>> M, int row1, int row2)

{

double s = 0;

for (int i = 0; i < M[row1].Count; i++)

{

s = M[row1][i];

M[row1][i] = M[row2][i];

M[row2][i] = s;

}

}

}

}