Создание для отдела логистики набора функций для работы с матрицами - Программирование, компьютеры и кибернетика курсовая работа

Создание для отдела логистики набора функций для работы с матрицами - Программирование, компьютеры и кибернетика курсовая работа




































Главная

Программирование, компьютеры и кибернетика
Создание для отдела логистики набора функций для работы с матрицами

Проектирование программы для работы с матрицами, обладающей некоторым уровнем защиты, интуитивно понятным интерфейсом и легкостью управления. Набор функций в программе. Класс хранения матричных данных. Описание интерфейса, форма входа и главное окно.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
«Создание для отдела логистики набора функций для работы с матрицами»
2.1 Класс обработчиков главного окна (MainWindow.xaml.cs)
2.2 Класс транспонирования матрицы (AT.cs)
2.3Класс умножения матрицы на число k (Axk.cs)
2.4 Класс получения канонического вида и ранга матрицы (Kan.cs)
2.5 Класс чтения матриц из файла (Re.cs)
2.6 Класс записи результатов вычислений в файл (WR.cs)
2.7 Класс произведения матриц (Umn.cs)
2.9 Класс проверки входа в программу (Parol.cs)
2.10 Класс получения определителя матрицы (Opr.cs)
2.11Класс получения разности матрицы (Minus.cs)
2.12Класс получения минора матрицы (Mab.cs)
2.13Класс копирования результата в матрицу (Copir.cs)
2.14Класс хранения матричных данных (Cache.cs)
3.1 Класс обработчиков главного окна (MainWindow.xaml.cs)
3.2 Класс транспонирования матрицы (AT.cs)
3.3 Класс умножения матрицы на число k (Axk.cs)
3.4 Класс получения канонического вида и ранга матрицы (Kan.cs)
3.5 Класс чтения матриц из файла (Re.cs)
3.6 Класс записи результатов вычислений в файл (WR.cs)
3.7 Класс произведения матриц (Umn.cs)
3.8 Класс сложения матриц (Plus.cs)
3.9 Класс проверки входа в программу (Parol.cs)
3.10 Класс получения определителя матрицы (Opr.cs
3.11Класс получения разности матрицы (Minus.cs)
3.12 Класс получения минора матрицы (Mab.cs)
3.13Класс копирования результата в матрицу (Copir.cs)
3.14 Класс хранения матричных данных (Cache.cs)
Windows Presentation Foundation. Windows Presentation Foundation (WPF, кодовое название -- Avalon) -- система для построения клиентских приложений Windows с визуально привлекательными возможностями взаимодействия с пользователем, графическая (презентационная) подсистема в составе .NET Framework (начиная с версии 3.0), имеющая прямое отношение к XAML (ЗАМЛ).
WPF вместе с .NET Framework 3.0 предустановлена в Windows Vista и Windows 7(.NET Framework 3.5 SP1). С помощью WPF можно создавать широкий спектр как автономных, так и запускаемых в браузере приложений.
Особенности технологии. В основе WPF лежит векторная система визуализации, не зависящая от разрешения устройства вывода и созданная с учетом возможностей современного графического оборудования. WPF предоставляет средства для создания визуального интерфейса, включая Язык XAML (Extensible Application Markup Language), элементы управления, привязку данных, макеты, двухмерную и трехмерную графику, анимацию, стили, шаблоны, документы, текст, мультимедиа и оформление.
Графической технологией, лежащей в основе WPF, является DirectX, в отличие от Windows Forms, где используется GDI/GDI+. Производительность WPF выше, чем у GDI+ за счет использования аппаратного ускорения графики через DirectX. Также существует урезанная версия CLR, называющаяся WPF/E, она же известна как Silverlight.
Использование разметки XAML. XAML представляет собой XML, в котором фактически реализованы классы .NET Framework. Так же реализована модель разделения кода и дизайна, позволяющая кооперироваться программисту и дизайнеру. Кроме того, есть встроенная поддержка стилей элементов, а сами элементы легко разделить на элементы управления второго уровня, которые, в свою очередь, разделяются до уровня векторных фигур и свойств/действий. Это позволяет легко задать стиль для любого элемента, например, Button (кнопка).
Средства разработки. Для работы с WPF требуется любой .NET-совместимый язык. В этот список входит множество языков: C#, VB, C++, Ruby, Python, Delphi (Prism) и многие другие. Для полноценной работы может быть использованы такие программные продукты как Visual Studio, так и Expression Blend. Первая ориентирована на программирование, а вторая -- на дизайн и позволяет делать многие вещи, не прибегая к ручному редактированию XAML. Примеры этому -- анимация, стилизация, состояния, создание элементов управления и так далее.
Microsoft Expression Blend. Microsoft Expression Blend (рис. 1) направлен на разработку дизайна веб-интерфейсов и графических настольных приложений.
Ключевая особенность продукта в том, что Expression Blend и Visual Studio используют одно и то же расширение файла проекта. А значит теперь у разработчиков и дизайнеров будет существенно меньше конфликтов и противоречий.
К тому же, теперь не составит труда сразу же открыть созданный в Visual Studio проект в Expression Blend и, естественно, наоборот, на одном компьютере. Рассмотрим некоторые возможности продукта.
В Blend включен полный дизайнер WYSIWYG (свойство прикладных программ, в которых содержание отображается в процессе редактирования). При открытых страницах и элементах управления можно переключаться в режим дизайна, в режим XAML источника, либо совместить эти два режима на одном экране и работать с ними одновременно.
Expression Blend поддерживает редактирование при помощи векторной графики. Также у него есть поддержка добавления и редактирования множества элементов управления. Есть специальная иконка на панели инструментов дизайна (Grid, Stack, Canvas, Border, Scroll Viewer, и т.д.), инструментов редактирования текста (Text Box, Text Block, и т. д.) и многое другое.
Выбрав любой объект можно поиграть с его свойствами (вкладка Properties). Например, с цветовым представлением элементов и фона. Можно раскрасить объекты не только в интересные цвета, но и представить цвет в виде градиента (рис. 2).
А что вы скажете на то, что градиент может изменяться динамически во время того или иного действия? И это далеко не все возможности. Можно добавлять сколь угодно много различных сценариев анимации, накладывать звук, менять форму и стиль элементов. Expression Blend предоставляет максимум возможностей и гибкости для быстрой настройки под себя всех элементов. Что позволяет пофантазировать и поэкспериментировать с проектом.
Рис. 2. Использование градиента в проекте
Приятным дополнением является возможность разрабатывать приложения для Windows Phone 7. Теперь создавать приложений на основе панорам (panorama) или пайвотов (pivot) гораздо удобнее. Наглядно отображаются необходимые размеры и границы.
Программа для работы с матрицами должна обладать некоторым уровнем защиты, обладать интуитивно понятным интерфейсом и легкостью управления, а также обеспечивать должный функционал. В функционале должны присутствовать меню, панель функций и формы отображения информации. Набор функций в программе должен быть следующим: умножение, сложение, деление и вычитание матриц; подсчет определителя матрицы; подсчет минора матрицы; транспонирование матрицы и др.
2.1 Класс обработчиков главного окна (MainWindow.xaml.cs)
/// Interaction logic for MainWindow.xaml
public partial class MainWindow : Window
// Insert code required on object creation below this point.
Mm1.Text += (ch.matr1[i, j].ToString()+" ");
Mm2.Text += (ch.matr2[i, j].ToString()+" ");
Mr.Text += (ch.res[i, j].ToString()+" ");
private void Button_Click(object sender, RoutedEventArgs e)
string login = Логин.Text.ToString();
string parol = Пароль.Password.ToString();
Авторизация.Visibility = Visibility.Collapsed;
private void New_Click(object sender, RoutedEventArgs e)
MainWindow Wind = new MainWindow();
Wind.Visibility = Visibility.Visible;
Wind.Авторизация.Visibility = Visibility.Collapsed;
private void AT_Click(object sender, RoutedEventArgs e)
private void T_Click(object sender, RoutedEventArgs e)
MessageBox.Show("Ошибка! Вы не выбрали матрицу!");
private void AT_2_Click(object sender, RoutedEventArgs e)
private void Cl_Click(object sender, RoutedEventArgs e)
private void Op_M1_Click(object sender, RoutedEventArgs e)
MessageBox.Show("Автор файла: "+ch.name+" "+ch.fam);
private void Op_M2_Click_1(object sender, RoutedEventArgs e)
MessageBox.Show("Автор файла: " + ch.name + " " + ch.fam);
private void a_k_GotFocus(object sender, RoutedEventArgs e)
private void b_GotFocus(object sender, RoutedEventArgs e)
private void Copy_Click(object sender, RoutedEventArgs e)
MessageBox.Show("Ошибка! Вы не выбрали матрицу!");
private void Ak1_Click(object sender, RoutedEventArgs e)
k = Convert.ToDouble(a_k.Text.ToString());
MessageBox.Show("Ошибка! Вы не ввели число k");
private void Ak2_Click(object sender, RoutedEventArgs e)
k = Convert.ToDouble(a_k.Text.ToString());
MessageBox.Show("Ошибка! Вы не ввели число k");
private void K_Click(object sender, RoutedEventArgs e)
MessageBox.Show("Ошибка! Вы не выбрали матрицу!");
private void Obr_Click(object sender, RoutedEventArgs e)
MessageBox.Show("Ошибка! Вы не выбрали матрицу!");
private void obr1_Click(object sender, RoutedEventArgs e)
double[,] Soglmatr = new double[ch.c, ch.d];
Soglmatr[i, j] = mab.Min(1, i, j, ch);
MessageBox.Show("Ошибка! Данная матрица является вырожденной и не может иметь обратной матрицы!");
MessageBox.Show("Выбранная матрица не является квадратной!");
private void obr2_Click(object sender, RoutedEventArgs e)
double[,] Soglmatr = new double[ch.e, ch.f];
Soglmatr[i, j] = mab.Min(2, i, j, ch);
MessageBox.Show("Ошибка! Данная матрица является вырожденной и не может иметь обратной матрицы!");
MessageBox.Show("Выбранная матрица не является квадратной!");
private void Zakr_Click(object sender, RoutedEventArgs e)
status_M1.Text = status_M2.Text = status_rM.Text = "Результат";
ch.c = ch.d = ch.e = ch.f = ch.g = ch.h = 0;
ch.matr1 = ch.matr2 = ch.res = null;
private void S_Click(object sender, RoutedEventArgs e)
private void Sum_Click(object sender, RoutedEventArgs e)
private void sl_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)
private void umn_Click_1(object sender, RoutedEventArgs e)
private void О_программе_Click(object sender, RoutedEventArgs e)
win.Visibility = Visibility.Visible;
private void Delta_Click(object sender, RoutedEventArgs e)
MessageBox.Show("Ошибка! Вы не выбрали матрицу!");
private void M_Click(object sender, RoutedEventArgs e)
MessageBox.Show("Ошибка! Вы не выбрали матрицу!");
private void Пароль_KeyDown(object sender, KeyEventArgs e)
private void Логин_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
private void Opred1_Click(object sender, RoutedEventArgs e)
double opr = delta.DetGauss(1, ch);
status_M1.Text = ("Определитель матрицы равен " + opr.ToString());
private void Opred2_Click(object sender, RoutedEventArgs e)
double opr = delta.DetGauss(2, ch);
status_M2.Text =("Определитель матрицы равен "+ opr.ToString());
private void Min1_Click(object sender, RoutedEventArgs e)
MessageBox.Show("Поля a(k) и b не заполнены");
status_M1.Text =("Минор равен " +minor.ToString());
private void Min2_Click(object sender, RoutedEventArgs e)
MessageBox.Show("Поля a(k) и b не заполнены");
status_M2.Text = ("Минор равен " + minor.ToString());
private void Логин_Initialized(object sender, EventArgs e)
private void kop1_Click(object sender, RoutedEventArgs e)
private void kop2_Click(object sender, RoutedEventArgs e)
private void Kan1_Click(object sender, RoutedEventArgs e)
private void Kan2_Click(object sender, RoutedEventArgs e)
private void KV_Click(object sender, RoutedEventArgs e)
MessageBox.Show("Ошибка! Вы не выбрали матрицу!");
private void R1_Click(object sender, RoutedEventArgs e)
status_M1.Text=("Ранг матрицы равен "+r.ToString());
private void R2_Click(object sender, RoutedEventArgs e)
status_M2.Text = ("Ранг матрицы равен " + r.ToString());
private void R_Click(object sender, RoutedEventArgs e)
MessageBox.Show("Ошибка! Вы не выбрали матрицу!");
private void Справка1_Click(object sender, RoutedEventArgs e)
string path = @"D:\Работа\4 семместр\Курсовая\Матрица 1.0_Copy1\Матрица 1.0\Справка";
pr.StartInfo.FileName = path + "\\Справка.chm";
2.2Класс транспонирования матрицы (AT.cs)
2.3Класс умножения матрицы на число k (Axk.cs
public void Axk2(int ind, double k, Cache ch)
res[i, j] = Math.Round( matr[i, j]*k, 3);
2.4 Класс получения канонического вида и ранга матрицы (Kan.cs)
matr[i, j] = matr[i, j] - str[j - n] * umn;
if (uchet == ((a + b) - 2)-2*n && uchet!=0)
2.5Класс чтения матриц из файла (Re.cs)
public void Read(int ind, Cache ch)
Encoding en = Encoding.GetEncoding(1251);
List mas = new List();
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = "c:\\";
openFileDialog1.Filter = "matr files (*.matr)|*.matr|All files (*.*)|*.*";
openFileDialog1.RestoreDirectory = true;
if (openFileDialog1.ShowDialog() != null)
if ((myStream = openFileDialog1.OpenFile()) != null)
StreamReader sr = new StreamReader(myStream, en);
string[] strarray2 = mas[0].Split(ca);
MessageBox.Show("Ошибка! Вы не выбрали файл.");
matr[i - 1, j] = Convert.ToDouble(strarray[j]);
matr[i, j] = Convert.ToDouble(strarray[j]);
2.6 Класс записи результатов вычислений в файл (WR.cs)
SaveFileDialog save = new SaveFileDialog();
save.Filter = "matr files (*.matr)|*.matr|All files (*.*)|*.*";
add += ch.res[i - 1, j].ToString();
add += (ch.res[i - 1, j].ToString() + " ");
Encoding en=Encoding.GetEncoding(1251);
File.WriteAllLines(save.FileName, zap, en);
2.7Класс произведения матриц (Umn.cs)
double[,] matr = new double[ch.c, ch.f];
matr[i, j] += ch.matr1[i, k] * ch.matr2[k, j];
MessageBox.Show("Ошибка! Количество столбцов и строк в матрицах не совпадает.");
ch.res[i, j] = Math.Round(ch.res[i, j]);
double[,] matr = new double[ch.g, ch.f];
matr[i, j] = (ch.matr1[i, j] + ch.matr2[i, j]);
MessageBox.Show("Ошибка! Количество столбцов в матрицах не совпадает.");
MessageBox.Show("Ошибка! Количество строк в матрицах не совпадает.");
2.9 Класс проверки входа в программу (Parol.cs)
public bool Dostup(string login, string parol)
List log=new List();
List par = new List();
for (int i = 0; i < log.Count; i++)
MessageBox.Show("Здравствуйте "+par[i]);
MessageBox.Show("Вы ввели неправильные данные!");
2.10Класс получения определителя матрицы (Opr.cs)
List> M = new List>();
public double DetGauss(int ind, Cache ch)
List Mr = new List();
MessageBox.Show("Выбранная матрица не является квадратной!");
List Mr = new List();
MessageBox.Show("Выбранная матрица не является квадратной!");
List Mr = new List();
MessageBox.Show("Выбранная матрица не является квадратной!");
if (Math.Abs(M[j][i]) > Math.Abs(M[k][i]))
if ((j != i) && (Math.Abs(M[j][i]) > E))
private void Swap(ref List> M, int row1, int row2)
for (int i = 0; i < M[row1].Count; i++)
2.11Класс получения разности матрицы (Minus.cs)
double[,] matr = new double[ch.g, ch.f];
matr[i, j] = (ch.matr1[i, j] - ch.matr2[i, j]);
MessageBox.Show("Ошибка! Количество столбцов в матрицах не совпадает.");
MessageBox.Show("Ошибка! Количество строк в матрицах не совпадает.");
2.12 Класс получения минора матрицы (Mab.cs)
public double Min(int ind, int a, int b, Cache ch)
double[,] vrem1 = new double[ch.c - 1, ch.d];
double[,] vrem2 = new double[ch.c - 1, ch.d-1];
MessageBox.Show("Вы ввели число большее чем размер матрицы!");
double[,] vrem1 = new double[ch.e - 1, ch.f];
double[,] vrem2 = new double[ch.e - 1, ch.f - 1];
z = Math.DivRem((a + b), 2, out y);
min = delta.DetGauss(3, ch) * (-1);
MessageBox.Show("Вы ввели число большее чем размер матрицы!");
2.13Класс копирования результата в матрицу (Copir.cs)
2.14Класс хранения матричных данных (Cache.cs)
public double[,] matr1, matr2, res;
public string fam, fam2, name, name2;
public void Zap(int a, int b, int ind, double[,] matr)
3.1Класс обработчиков главного окна (MainWindow.xaml.cs)
Данный класс содержит следующие блоки кода:
Объявление нового элемента класса Cache который используется во всех классах для доступа к сохраненным из файла матрицам.
Эта функция используется для вывода на экран в соответствующее место соответствующую матрицу: она определяется параметром 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 справку по программе.
3.2Класс транспонирования матрицы (AT.cs)
Класс транспонирования матрицы содержит одну функцию (public void ATR(int ind, Cache ch)) позволяющую получить транспонированную матрицу из исходной. Данная функция принимает индекс транспонируемой матрицы и элемент ch класса Cache для доступа к выбранной матрице.
Для транспонирования создаются временные переменные, в которые записываются данные исходной матрицы. Затем создается пустая временная транспонированная матрица, которая заполняется путем перечисления в цикле for. Полученная матрица записывается в матрицу-результат, которую можно будет вывести на экран.
3.3Класс умножения матрицы на число k (Axk.cs)
Класс умножения матрицы на число k позволяет получить матрицу, каждый элемент которой умножен на число k. Данная функция принимает индекс транспонируемой матрицы, число k и элемент ch класса Cache для доступа к выбранной матрице.
Для умножения матрицы на число k создаются временные переменные, в которые записываются данные исходной матрицы. Затем создается пустая временная матрица, которая заполняется в цикле for путем умножения каждого элемента матрицы на число k. Полученная матрица записывается в матрицу-результат, которую можно будет вывести на экран.
3.4Класс получения канонического вида и ранга матрицы (Kan.cs)
В данном классе содержатся две матричные функции:
public void KV(int ind, Cache ch) - функция получения канонического вида выбранной матрицы:
В данной функции создаются временные переменные для записи в них исходной матрицы. Затем проверяется условие возможного выхода за пределы матрицы справа и снизу, после чего функция получает делитель для первой строки, и затем вычитает ее из ниже лежащих строк. И цикл повторяется так до последней строки.
public int Rang(int ind, Cache ch) - функция получения ранга выбранной матрицы:
В данной функции, прежде чем получить ранг матрицы функция вызывает функцию получения канонического вида данной матрицы. И затем при помощи перечисления канонической матрицы определяется ранг матрицы путем подсчета не нулевых рядов.
3.5Класс чтения матриц из файла (Re.cs)
В этом классе исходная матрица считывается из файла. Для этого:
создаются временные переменные для хранения открываемой матрицы, а также методы разделения элементов в строках открываемого файла;
создается декодер для русского текста (Encoding en = Encoding.GetEncoding(1251););
Создается окно для выбора открываемой матрицы и путем перечисления строк в открытом файле эти строки записываются во временное хранилище (List mas = new List();). Одновременно с записью матрицы происходит запись имени и фамилии автора создавшего эту матрицу, а также ее размер;
Затем полученный лист строк читается, и каждая строка разбивается на элементы по разделителю, которые затем записываются во временную матрицу. И эта матрица переносится в матрицу, которую можно вывести на экран.
3.6Класс записи результатов вычислений в файл (WR.cs)
Функция записи результатов принимает объект ch класса Cache для доступа к записываемой матрице. Создается окно сохранения данных где выбирается место хранения файла. После выбора места хранения в файл записывается автор и матрица переписанная в массив строк ().
3.7Класс произведения матриц (Umn.cs)
Функция произведения матриц принимает объект ch класса Cache для доступа к умножаемым матрицам. Перед умножением проверяется условие равенства количества столбцов первой матрицы строкам второй матрицы. Если это условие не выполняется, то выдается сообщение об ошибке. После это матрицы умножаются путем суммирования умножения соответствующих элементов в строках и столбцах. Полученная матрица записывается в матрицу которую можно вывести на экран.
Функция сложения матриц принимает объект ch класса Cache для доступа к слаживаемым матрицам. Матрицы слаживаются путем перечисления всех элементов матрицы и сложения соответствующих элементов. Результат записывается в матрицу доступную для вывода на экран. Также проверяется условие равности размеров слаживаемых матриц.
3.9Класс проверки входа в программу (Parol.cs)
Функция проверки входа в программу принимает строковые данные введенных логина пароля. Эти данные проверяются по двум листам возможных логинов и вращается подтверждение входа.
3.10Класс получения определителя матрицы (Opr.cs)
Функция создает временное хранилище другого формата для вычисления определителя выбранной матрицы. Функция принимает индекс матрицы и объект класса Cache для доступа к матрице. Затем выбранная матрица записывается во временное хранилище которое используется в вычислении определителя методом Гаусса:
Используем перечисление листа, а число k приравниваем к числу i;
Через второе перечисление проверяем, какое из соответствующих чисел в соседних рядах больше, если первое - число k приравнивается к числу j.
Если второе число меньше установленной точности определитель обнуляется.
Вызывается функция перестановки строк местами (Swap(ref M, i, k););
После проверки остальных условий определитель умножается на минус единицу или на другой элемент.
Цикл повторяется до получения результата и определитель возвращается в вызвавший его обработчик.
3.11Класс получения разности матрицы (Minus.cs)
Функция принимает объект класса Cache для доступа к матрицам. После проверки равности матриц путем перечисления соответствующие элементы матрицы два отнимаются от соответствующих элементов матрицы один. Результат записывается в матрицу доступную для вывода результата на экран.
3.12Класс получения минора матрицы (Mab.cs)
Функция принимает индекс матрицы, положение вычисляемого минора и объект класса Cache для доступа к выбранной матрице. Создаются одна временная матрица с удаленной строкой, и вторая с удаленным потом столбцом. Получившуюся матрицу записываем в результирующую матрицу и вызываем функцию подсчета определи
Создание для отдела логистики набора функций для работы с матрицами курсовая работа. Программирование, компьютеры и кибернетика.
Контрольная работа по теме Волоконно-оптические сети
Реферат: Ряд Страусоподібні
Курсовая работа: Плоские задачи теории фильтрации
Курсовая Гранитная Мастерская Шеховцов В П
Курсовая Работа На Тему Разработка Генератора Кодовых Последовательностей Импульсов На Интегральных Схемах
Контрольная Работа На Тему Керамические Бытовые Товары
Реферат по теме Подводные лодки малого тоннажа
Дипломная работа: Социально-психологический климат в коллективе медработников
Реферат по теме Отчет по лабораторной работе
Курсовая работа по теме Комплексна організація виробництва морквяного соку
Курсовая работа по теме Критерии психического. Стадии развития психики
Сочинение Мое Понимание Романа Дубровский 6 Класс
Дипломная работа: Пути повышения эффективности инвестиционной деятельности
Реферат Оформление Глав
Курсовая работа по теме Поэзия Андреаса Грифиуса
Контрольная Работа На Тему Права И Обязанности Родителей По Воспитанию Ребенка
Гдз Тетрадь Контрольных Работ 2 Класса
Реферат: Расходы государства и их распределение
Курсовая работа по теме Гражданство как международно-правовой институт
Реферат: The Simpsons How Do They Affect Kids
Организация и проведение семинарского занятия в высшей школе. - Педагогика курсовая работа
Особенности развития франчайзинга в современных условиях развития мировой экономики - Международные отношения и мировая экономика дипломная работа
Теория антенных решёток - Коммуникации, связь, цифровые приборы и радиоэлектроника курсовая работа


Report Page