- •Введение.
- •Условие задания
- •Текст программы
- •Класс обработчиков главного окна (MainWindow.Xaml.Cs)
- •Класс транспонирования матрицы (at.Cs)
- •Класс умножения матрицы на число k (Axk.Cs)
- •Класс получения канонического вида и ранга матрицы (Kan.Cs)
- •Класс чтения матриц из файла (Re.Cs)
- •Класс записи результатов вычислений в файл (wr.Cs)
- •Класс произведения матриц (Umn.Cs)
- •Класс сложения матриц (Plus.Cs)
- •Класс проверки входа в программу (Parol.Cs)
- •Класс получения определителя матрицы (Opr.Cs)
- •Класс получения разности матрицы (Minus.Cs)
- •Класс получения минора матрицы (Mab.Cs)
- •Класс копирования результата в матрицу (Copir.Cs)
- •Класс хранения матричных данных (Cache.Cs)
- •Описание кода программы
- •Класс обработчиков главного окна (MainWindow.Xaml.Cs)
- •Класс транспонирования матрицы (at.Cs)
- •Класс умножения матрицы на число k (Axk.Cs)
- •Класс получения канонического вида и ранга матрицы (Kan.Cs)
- •Класс чтения матриц из файла (Re.Cs)
- •Класс записи результатов вычислений в файл (wr.Cs)
- •Класс произведения матриц (Umn.Cs)
- •Класс сложения матриц (Plus.Cs)
- •Класс проверки входа в программу (Parol.Cs)
- •Класс получения определителя матрицы (Opr.Cs)
- •Класс получения разности матрицы (Minus.Cs)
- •Класс получения минора матрицы (Mab.Cs)
- •Главное окно (рис. 4)
- •Результаты работы программы
- •Заключение
- •Список литературы
Класс копирования результата в матрицу (Copir.Cs)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Матрица_1_0
{
class Copir
{
public void C(int ind, Cache ch)
{
if (ind == 1)
{
ch.c = ch.g;
ch.d = ch.h;
ch.matr1 = ch.res;
}
if (ind == 2)
{
ch.e = ch.g;
ch.f = ch.h;
ch.matr2 = ch.res;
}
}
}
}
Класс хранения матричных данных (Cache.Cs)
using System;
using System.Collections.Generic;
namespace Матрица_1_0
{
class Cache
{
public int c, d, e, f, g, h;
public double[,] matr1, matr2, res;
public string fam, fam2, name, name2;
public void Zap(int a, int b, int ind, double[,] matr)
{
if (ind == 1)
{
c = a;
d = b;
matr1 = matr;
}
if (ind == 2)
{
e = a;
f = b;
matr2 = matr;
}
if (ind == 3)
{
g = a;
h = b;
res = matr;
}
}
}
}
Описание кода программы
Класс обработчиков главного окна (MainWindow.Xaml.Cs)
Данный класс содержит следующие блоки кода:
Cache ch = new Cache();
Объявление нового элемента класса Cache который используется во всех классах для доступа к сохраненным из файла матрицам.
public void Show(int ind) { … }
Эта функция используется для вывода на экран в соответствующее место соответствующую матрицу: она определяется параметром ind, затем перечисляется в цикле for и записывается в соответствующий Textbloc.
private void Button_Click(object sender, RoutedEventArgs e) { … }
Данный обработчик записывает в переменные введенные логин и пароль, вызывает класс Parol.cs и проверяет на возможность входа в программу. Если вход выполнен введенные логин и пароль записываются в переменные для использования их при сохранении.
string login = Логин.Text.ToString(); - получение введенного логина.
string parol =Пароль.Password.ToString(); - получение введенного пароля.
Авторизация.Visibility = Visibility.Collapsed; - закрытие формы авторизации.
private void New_Click(object sender, RoutedEventArgs e) { … }
Создание нового экземпляра программы без формы авторизации.
private void AT_Click(ob ject sender, RoutedEventArgs e) { … }
Обработчик создает новый элемент класса AT.cs и вызывает функцию транспонирования матрицы, передавая номер матрицы элемент Cache ch для доступа к матрице, и затем вызывает вывод результата на экран. То же самое делает обработчик private void AT_2_Click(object sender, RoutedEventArgs e), а обработчик private void T_Click(object sender, RoutedEventArgs e) проверяет радио клавиши и вызывает один из этих обработчиков или выдает сообщение об ошибке.
private void Cl_Click(object sender, RoutedEventArgs e) { … }
Обработчик закрывает приложение.
private void Op_M1_Click(object sender, RoutedEventArgs e)
Обработчик создает новый объект класса чтения (Re.cs) и вызывает вывод матрицы на экран. То же самое для второй матрицы делает обработчик private void Op_M2_Click_1(object sender, RoutedEventArgs e) { … }.
private void a_k_GotFocus(object sender, RoutedEventArgs e) и private void b_GotFocus(object sender, RoutedEventArgs e)
Обработчики перехватывают получение фокуса текстовыми полями и очищают текст перед вводом (b_b.Text = null;).
private void kop1_Click(object sender, RoutedEventArgs e)
Обработчик создает новый объект класса Copir.cs и вызывает функцию копирования результата в первую матрицу. То же самое делает для второй матрицы обработчик private void kop2_Click(object sender, RoutedEventArgs e). А обработчик private void Copy_Click(object sender, RoutedEventArgs e) проверяет радио клавиши и вызывает один из этих обработчиков или выдает сообщение об ошибке.
private void Ak1_Click(object sender, RoutedEventArgs e)
Обработчик создает новый объект класса Axk.cs, получает значение числа k из Textbox (k = Convert.ToDouble(a_k.Text.ToString());) и вызывает функцию умножения. После чего вызывает вывод результата на экран. То же самое делает для второй матрицы обработчик private void Ak2_Click(object sender, RoutedEventArgs e). А обработчик private void K_Click(object sender, RoutedEventArgs e) проверяет радио клавиши и вызывает один из этих обработчиков или выдает сообщение об ошибке.
private void obr1_Click(object sender, RoutedEventArgs e)
Обработчик выполняет необходимые операции для получения обратной матрицы:
получает и задает необходимые значения;
создает новый объект класса Opr.cs и получает определитель матрицы вызвав соответствующую функцию;
если определитель не равен нулю, то вычисляется матрица согласная матрице исходной, затем она транспонируется и умножается на единицу, деленную на определитель матрицы;
вызывается вывод на экран результата.
То же самое для второй матрицы делает обраротчик private void obr2_Click(object sender, RoutedEventArgs e). А обработчик private void Obr_Click(object sender, RoutedEventArgs e) проверяет радио клавиши и вызывает один из этих обработчиков или выдает сообщение об ошибке.
private void Zakr_Click(object sender, RoutedEventArgs e)
Обработчик закрывает работу с данными матрицами без закрытия программы путем очистки всех использующихся полей и очистки данных в классе Cache.cs кроме имени и фамилии вошедшего пользователя.
private void S_Click(object sender, RoutedEventArgs e)
Обработчик создает новый объект класса WR.cs и вызывает соответствующий метод для записи полученных результатов в файл.
private void Sum_Click(object sender, RoutedEventArgs e)
Обработчик создает новый объект класса Plus.cs и вызывается соответствующая функция позволяющая сложить две матрицы, после чего вызывается вывод на экран результатов. На этот обработчик ссылается обработчик функции сложения private void sl_Click(object sender, RoutedEventArgs e) доступный из меню «Функции».
private void Razn_Click(object sender, RoutedEventArgs e)
Обработчик создает новый объект класса вычитания матриц (private void Razn_Click(object sender, RoutedEventArgs e)), вызывает соответствующую функцию и вызывает вывод результата на экран. На этот обработчик ссылается обработчик того же действия функции доступной из меню «Функции» (private void Minus_Click(object sender, RoutedEventArgs e)).
private void Del_Click(object sender, RoutedEventArgs e)
Обработчик делит первую матрицу на вторую. Для этого:
вызывает функцию получения обратной матрицы от второй;
записывает вторую матрицу во временные переменные;
вызывает обработчик умножения матриц;
возвращает вторую матрицу на место;
вызывает вывод результата на экран.
Обработчик функции деления из меню «Функции» также ссылается на этот обработчик (private void razd_Click(object sender, RoutedEventArgs e)).
private void Umn_Click(object sender, RoutedEventArgs e)
Обработчик создает новый объект класса призведения матриц (Umn.cs) и вызывает соответствующую функцию умножения, Затем вызывает вывод результата на экран. Обработчик функции умножения из меню «Функции» также ссылается на этот обработчик (private void umn_Click_1(object sender, RoutedEventArgs e)).
private void О_программе_Click(object sender, RoutedEventArgs e)
Обработчик открывает дополнительно окно со сведениями о программе.
private void Opred1_Click(object sender, RoutedEventArgs e) и private void Opred2_Click(object sender, RoutedEventArgs e)
Обработчики создают новые объекты класса определителя (Opr.cs) и вызывают соответствующую функцию подсчета определителя, а затем вызывают вывод результата на экран. А обработчик private void Delta_Click(object sender, RoutedEventArgs e) проверяет радио клавиши и вызывает один из этих обработчиков или выдает сообщение об ошибке.
private void Min1_Click(object sender, RoutedEventArgs e) и private void Min2_Click(object sender, RoutedEventArgs e)
Обработчик создает новый объект класса Mab.cs, получает значения чисел a и b и вызывая соответствующую функцию получает значение выбранного минора и записывает в поле результата. А обработчик private void M_Click(object sender, RoutedEventArgs e) проверяет радио клавиши и вызывает один из этих обработчиков или выдает сообщение об ошибке.
private void Пароль_KeyDown(object sender, KeyEventArgs e)
Обработчик перехватывает нажатие клавиши Enter в поле Пароль и вызывает обработчик клавиши вход (Button_Click(sender, e);).
private void Логин_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
Обработчик перехватывает нажатие клавиши Enter в поле Логин и передает фокус полю Пароль.
private void Логин_Initialized(object sender, EventArgs e)
Обработчик передает фокус полю логин во время запуска программы.
private void Kan1_Click(object sender, RoutedEventArgs e) и private void Kan2_Click(object sender, RoutedEventArgs e)
Обработчики создают новые объекты класса Kan.cs, вызывают соответствующую функцию, а затем вызывают вывод на экран результата. А обработчик private void KV_Click(object sender, RoutedEventArgs e) проверяет радио клавиши и вызывает один из этих обработчиков или выдает сообщение об ошибке.
private void R1_Click(object sender, RoutedEventArgs e) и private void R2_Click(object sender, RoutedEventArgs e)
Обработчики создают новые объекты класса Kan.cs и вызывают соответствующую функцию ранга матрицы, а полученный результат записывают в соответствующие текстовые блоки. А обработчик private void R_Click(object sender, RoutedEventArgs e) проверяет радио клавиши и вызывает один из этих обработчиков или выдает сообщение об ошибке.
private void R_Click(object sender, RoutedEбоventArgs e)
Обработчик при нажатии в меню «Справка» клавиши Справка запускает chm справку по программе.