Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

1.1 Аналіз предметної області 5 2 страница



 

1.3.8 Порядок контролю і приймання

 

 

Контроль здійснюється кінцевими користувачами системи, підключеними на етапі тестування системи.

Прийом комплексу здійснюється після його повної установки і настройки під конкретних користувачів і короткого курсу по навчанню користувачів.

Після закінчення розробки системи повинні бути проведені наступні види випробувань: тестування на захист від некоректного введення; тестування на повноту обміну інформацією між різними додатками.

 

 

1.4 Розробка засобів моделювання програмного продукту

1.4.1 Розробка логічної моделі

1.4.1.1 Діаграма прецедентів

 

 

Діаграма прецедентів – в UML, діаграма, на якій зображено відношення між акторами та прецедентами в системі. Також, перекладається як діаграма варіантів використання.

Діаграма прецедентів є графом, що складається з множини акторів, прецедентів (варіантів використання) обмежених границею системи (прямокутник), асоціацій між акторами та прецедентами, відношень серед прецедентів, та відношень узагальнення між акторами. Діаграми прецедентів відображають елементи моделі варіантів використання.

Суть даної діаграми полягає в наступному: проектована система представляється у вигляді безлічі сутностей чи акторів, що взаємодіють із системою за допомогою так званих варіантів використання. Варіант використання (англ. use case) використовують для описання послуг, які система надає актору. Іншими словами, кожен варіант використання визначає деякий набір дій, який виконує система при діалозі з актором. При цьому нічого не говориться про те, яким чином буде реалізована взаємодія акторів із системою.

На рисунку 1.4 показана діаграма прецедентів програми «Есть решение!».

На цій діаграмі показані актори та їх можливі дії. Для початку роботи актор повинен просто запустити програму через любий зручний йому спосіб. Після цього актор може обрати потрібний йому тип задач: вирішення систем лінійних рівнянь, виконання операцій над матрицями або отримання довідкової інформації. Якщо актор вибере вирішення систем лінійних рівнянь, то йому предстане вибір між трьома доступними методами рішення – Гауса, Крамера або матричний. Якщо актор вибере операції над матрицями, то йому доведеться обирати між знаходженням визначника та пошуком зворотної матриці. Незалежно від вибору актору для отримання рішення необхідно буде ввести параметри задачі та натиснути на кнопку вирішення. Якщо актор вибере пункт надання довідкової інформації, то отримає доступ до документів, що містять детальний опис методів розв’язання всіх задач, що включені до програми «Есть решение!».



 

 

Рисунок 1.4 – Діаграма прецедентів програми «Есть решение!»

 

 

1.4.1.2 Діаграма класів

 

 

Діаграма класів – статичне представлення структури моделі. Відображає статичні (декларативні) елементи, такі як: класи, типи даних, їх зміст та відношення. Діаграма класів, також, може містити позначення для пакетів та може містити позначення для вкладених пакетів. Також, діаграма класів може містити позначення деяких елементів поведінки, однак їх динаміка розкривається в інших типах діаграм. Діаграма класів (class diagram) служить для представлення статичної структури моделі системи в термінології класів об'єктно-орієнтованого програмування. На цій діаграмі показують класи, інтерфейси, об'єкти й кооперації, а також їхні відносини.

Діаграма класів являє собою деякий граф, вершинами якого є елементи типу «класифікатор», які пов'язані різними типами структурних відносин. Слід зауважити, що діаграма класів може також містити інтерфейси, пакети, відносини і навіть окремі екземпляри, такі як об'єкти та зв'язку. Коли говорять про даній діаграмі, мають на увазі статичну структурну модель проектованої системи. Тому діаграму класів прийнято вважати графічним представленому таких структурних взаємозв'язків логічної моделі системи, які не залежать або інваріантні від часу.

На рисунку 1.5 зображена діаграма класів програми «Есть решение!».

 

 

Рисунок 1.5 – Діаграма класів програми «Есть решение!»

 

На цій діаграмі показані зв'язку інформаційної системи з класами і операціями програми «Есть решение!».

Клас «Метод вирішення СЛР» є методом вирішення СЛР, що включений до програми «Есть решение!». Цей клас має такі атрибути, як «Метод вирішення», «Розмірність матриці», «Коефіціенти», «Вільні члени», «Алгоритм вирішення».

Клас «Операція над матрицею» є операцією над матрицями, що включена до програми «Есть решение!». Цей клас має такі атрибути, як «Тип операції», «Розмірність матриці», «Коефіціенти», «Алгоритм вирішення».

Класи «Метод вирішення СЛР» та «Операція над матрицею» мають однаковий набір операцій: «Введення даних», «Обробка даних», «Введення результату».

Клас «Довідка» є довідкою, що включена до програми «Есть решение!». Цей клас має такі атрибути, як «Тема довідки», «Кількість сторінок». До операцій даного класу відносяться «Запит довідки» та «Вивід довідки».

 

 

1.4.1.3 Діаграма послідовності

 

 

Діаграма послідовності – в UML, діаграма послідовності відображає взаємодії об'єктів впорядкованих за часом. Зокрема, такі діаграми відображають задіяні об'єкти та послідовність відправлених повідомлень.

На діаграмі послідовностей показано у вигляді вертикальних ліній різні процеси або об'єкти, що існують водночас. Надіслані повідомлення зображуються у вигляді горизонтальних ліній, в порядку відправлення.

Визначені стандартом UML 2.0 діаграми послідовностей мають ті ж можливості що і визначені стандартом UML 1.x, та підтримують додаткові можливості зміни стандартного порядку повідомлень.

Основними елементами діаграми послідовності є позначення об'єктів (прямокутники), вертикальні лінії (англ. Life line), що відображають протягом часу при діяльності об'єкта, і стрілки, що показують виконання дій об'єктами. На даній діаграмі об'єкти розташовуються зліва направо. Її недоліком є те, що вона займає багато місця.

На рисунку 1.6 показана діаграма послідовності програми «Есть решение!».

 

 

Рисунок 1.6 – Діаграма послідовності програми «Есть решение!»

 

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

Далі користувачеві необхідно обрати, яку операцію необхідно виконати.

Для того, щоб отримати результат вирішення системи лінійних рівнянь, користувачеві необхідно ввести дані для обробки, натиснути на кнопку вирішення, дочекатися, поки дані опрацюються програмою, після чого результат буде повернений у програму в зручному для користувача вигляді.

Для того, щоб отримати результат виконання операції над матрицями, користувачеві необхідно ввести дані для обробки, натиснути на кнопку вирішення, дочекатися, поки дані опрацюються програмою, після чого результат буде повернений у програму в зручному для користувача вигляді.

Для того, щоб отримати довідку, користувачеві необхідно викликати довідку через інтерфейс програми, після чого довідка буде виведена на екран.

 

 

1.4.1 Опис мови (середовища) програмування

1.4.1.1 Загальні відомості мови C#

 

 

C# (вимовляється Сі-шарп) – об'єктно-орієнтована мова програмування з безпечною системою типізації для платформи.NET. Розроблена Андерсом Гейлсбергом, Скотом Вілтамутом та Пітером Гольде під егідою Microsoft Research (при фірмі Microsoft).

Синтаксис C# близький до С++ і Java. Мова має строгу статичну типізацію, підтримує поліморфізм, перевантаження операторів, вказівники на функції-члени класів, атрибути, події, властивості, винятки, коментарі у форматі XML. Перейнявши багато що від своїх попередників — мов С++, Delphi, Модула і Smalltalk — С#, спираючись на практику їхнього використання, виключає деякі моделі, що зарекомендували себе як проблематичні при розробці програмних систем, наприклад множинне спадкування класів (на відміну від C++).

C# є дуже близьким родичем мови програмування Java. Мова Java була створена компанією Sun Microsystems, коли глобальний розвиток інтернету поставив задачу роззосереджених обчислень. Взявши за основу популярну мову C++, Java виключила з неї потенційно небезпечні речі (типу вказівників без контролю виходу за межі). Для роззосереджених обчислень була створена концепція віртуальної машини та машинно-незалежного байт-коду, свого роду посередника між вихідним текстом програм і апаратними інструкціями комп'ютера чи іншого інтелектуального пристрою.

Нововведенням C# стала можливість легшої взаємодії, порівняно з мовами-попередниками, з кодом програм, написаних на інших мовах, що є важливим при створенні великих проектів. Якщо програми на різних мовах виконуються на платформі.NET,.NET бере на себе клопіт щодо сумісності програм (тобто типів даних, за кінцевим рахунком).

Станом на сьогодні C# визначено флагманською мовою корпорації Microsoft, бо вона найповніше використовує нові можливості.NET. Решта мов програмування, хоч і підтримуються, але визнані такими, що мають спадкові прогалини щодо використання.NET.

C# розроблялась як мова програмування прикладного рівня для CLR і тому вона залежить, перш за все, від можливостей самої CLR. Це стосується, перш за все, системи типів C#. Присутність або відсутність тих або інших виразних особливостей мови диктується тим, чи може конкретна мовна особливість бути трансльована у відповідні конструкції CLR. Так, з розвитком CLR від версії 1.1 до 2.0 значно збагатився і сам C#; подібної взаємодії слід чекати і надалі. (Проте ця закономірність буде порушена з виходом C# 3.0, що є розширеннями мови, що не спираються на розширення платформи.NET.) CLR надає C#, як і всім іншим.NET-орієнтованим мовам, багато можливостей, яких позбавлені «класичні» мови програмування. Наприклад, збірка сміття не реалізована в самому C#, а проводиться CLR для програм, написаних на C# точно так, як і це робиться для програм на VB.NET, J# тощо.

Проект C# був початий в грудні 1998 і отримав кодову назву COOL (C-style Object Oriented Language). Версія 1.0 була анонсована разом з платформою.NET у червні 2000 року, тоді ж з'явилася і перша загальнодоступна бета-версія; C# 1.0 остаточно вийшов разом з Microsoft Visual Studio.NET у лютому 2002 року.

Перша версія C# нагадувала за своїми можливостями Java 1.4, дещо їх розширюючи: так, в C# були властивості (що виглядають у коді як поля об'єкта, але, при зверненні до них, можуть викликати пов'язані методи класу), індексатори (подібні до властивостей, але приймають параметр як індекс масиву), події, делегати, цикли foreach, структури, що передаються за значенням, автоматичне перетворення вбудованих типів в об'єкти при необхідності (boxing), атрибути, вбудовані засоби взаємодії з некерованим кодом (DLL, COM) тощо. Крім того, в C# вирішено було перенести деякі можливості C++, відсутні в Java: беззнакові типи, перевизначення операцій (з деякими обмеженнями, на відміну від C++), передача параметрів у метод за посиланням, методи зі змінним числом параметрів, оператор goto. Також у C# залишили обмежену можливість роботи з вказівниками — в місцях коду, спеціально позначених словом unsafe і при вказівці спеціальної опції компілятору.

Проект специфікації C# 2.0 вперше був викладений Microsoft в жовтні 2003 року; у 2004 році виходили бета-версії (проект з кодовою назвою Whidbey), C# 2.0 остаточно вийшов 7 листопада 2005 року разом з Visual Studio 2005 і.NET 2.0.

Нові можливості у версії 2.0:

­ Часткові типи (розділення реалізації класу більш ніж на один файл).

­ Узагальнені, або параметризовані типи (generics, «дженерики»). На відміну від шаблонів C++, вони підтримують деякі додаткові можливості і працюють на рівні віртуальної машини. Разом з тим, параметрами узагальненого типу не можуть бути вирази.

­ Нова форма ітератора, що дозволяє створювати співпрограми за допомогою ключового слова yield, подібно Python і Рубі.

­ Анонімні методи, що забезпечують функціональність замикання.

­ Оператор??: return obj1?? obj2; означає (у нотації C# 1.0) return obj1!=null? obj1: obj2;.

­ Типи-значення, що обнуляються (nullable), (що позначаються знаком питання, наприклад, int? i = null;) є тими ж самими типами-значеннями, що можуть nfrj; приймати також значення null. Такі типи дозволяють поліпшити взаємодію з базами даних через мову SQL.

В червні 2004 року Андерс Гейлсберг вперше розповів на сайті Microsoft про плановані розширення мови в C#3.0. У вересні 2005 року було випущено проект специфікації C# 3.0 і бета-версія C# 3.0, що встановлюється у вигляді доповнення до існуючих Visual Studio 2005 і.NET 2.0 [2]. Офіційно версія C# 3.0 побачила світ 19 листопада 2007 року у складі.NET Framework 3.5.

В C# 3.0 з'явилися такі радикальні доповнення та зміни:

­ Ключові слова select, from, where, що дозволяють робити запити з SQL, XML, колекції тощо (запит, інтегрований в мову, англ. Language Integrated Query, або LINQ)

­ Ініціалізація об'єкта разом з його властивостями:

­ Лямбда-вирази (анонімні функції):

­ Автоматичне визначення типів локальних змінних:

­ Безіменні типи:

­ Методи-розширення — додавання методу в існуючий клас за допомогою ключового слова this при першому параметрі статичної функції.

C# 3.0 буде сумісний з C# 2.0 за генерованим MSIL-кодом; поліпшення в мові — чисто синтаксичні і реалізуються на етапі компіляції. Наприклад, багато з інтегрованих запитів LINQ можна реалізувати в поточних версіях використовуючи безіменні делегати в поєднанні з предикативними методами над контейнерами, на кшталт List.FindAll і List.RemoveAll.

Нові можливості в версії 4.0:

­ Динамічна типізація об'єктів:

­ Динамічний перехід,

­ Динамічний виклик методу.

C# стандартизований в ECMA та ISO.

 

 

1.4.2.2 Елементи мови C#

 

 

Алфавіт (або множина літер) мови програмування С# складають символи таблиці кодів ASCII. Алфавіт С# включає:

­ рядкові й прописні літери латинського алфавіту;

­ цифри від 0 до 9;

­ символ «_»;

­ набір спеціальних символів: " { }, 1 [ ] + — %/ \; ':?< > =!& #

­ інші символи.

Як і в мовах C++ та Java, C# поділяє типи на два види: вбудовані типи (табл. 1.3), які визначені в мові, та типи, що визначає користувач.

 

Таблиця 1.3 – Вбудовані типи даних C#

 

Тип даних

Діапазон

byte

0.. 255

sbyte

-128.. 127

short

-32,768.. 32,767

Ushort

0.. 65,535

int

-2,147,483,648.. 2,147,483,647

uint

0.. 4,294,967,295

long

-9,223,372,036,854,775,808.. 9,223,372,036,854,775,807

ulong

0.. 18,446,744,073,709,551,615

Float

-3,402823e38.. -3,402823e38

Double

-1,79769313486232e308.. 1,79769313486232e308

decimal

-79228162514264337593543950335.. 79228162514264337593543950335

char

Символ Юнікода

string

Строка символів Юнікода

bool

true або false

object

Об’єкт.

 

Мова програмування C# є жорстко типізованою. Тобто нам необхідно обов’язково оголошувати змінни, вказавши їх тип даних. Змінні оголошуються за наступною схемою: <Тип> <ім’я змінної> [=<значення>];

Мова програмування С# надає багато гнучких операторів для написання програмного коду. Синтаксис використання операторів мова С# спадкує від мови С/C++, на базі якої вона створювалась.

Оператори в мові програмування С# подяліються на оператори порівняння та привласнення (табл. 1.4), арифметичні та логічні оператори (табл 1.5), оператори збільшення/зменшення (табл. 1.6), оператори порівняння (табл. 1.7) та умовні оператори (табл. 1.8).

 

Таблиця 1.4 – Оператори порівняння та привласнення

 

Оператор

Призначення

=

Привласнення значення

==

Перевірка на рівність

 

Таблиця 1.5 – Арифметичні та логічні оператори

 

Оператор

Призначення

*, /, %

Множення, ділення, залишок від ділення

+, -

складання, віднімання

&

Побітове AND

^

Побітове XOR

|

Побітове OR

 

Таблиця 1.6 – Операції збільшення та зменшення

 

Оператор

Повна форма

Призначення

v ++

v - -

 

v = v + 1

v = v – 1

 

Постфіксна форма збільшення/зменшення змінної v на 1. При привласненні вираза спочатку повертається значення, а потім збільшується/зменшується.

++v

- -v

 

v = v + 1

v = v – 1

 

Префіксна форма збільшення/зменшення змінної v на 1. При привласненні вираза спочатку збільшується/зменшується, а потім повертається значення.

v += n

v = v + n

Збільшення змінної v на n.

v *= n

v = v * n

Збільшення змінної v в n разів.

v -= n

v = v - n

Зменшення змінної v на n.

v/=n

v = v / n

Зменшення змінної v в n разів.

 

Таблиця 1.7 - Оператори порівняння

 

Оператор

Призначення

<, <=, >, >=

Суворе та не суворе порівняння менше/більше

==,!=

Порівняння на рівність та нерівність

 

Таблиця 1.8 – Умовні оператори

 

Оператор

Призначення

!

Умовне NOT.

||

Умовне OR.

&&

Умовне AND.

 

Клас Math містить стандартні математичні функції, без яких важко обійтись при побудові багатьох виразів. Цей клас містить два статичних поля, що задають константи E (число е) та PI (число π), а також 23 статичних метода. Методи задають:

­ тригонометричні функції – Sin, Cos, Tan;

­ обратні тригонометричні функции – ASin, ACos, ATan, ATan2(sinx, cosx);

­ гіперболічні функції – Tanh, Sinh, Cosh;

­ експоненту і лога рифмічні функції – Exp, Log, Log10;

­ модуль, корінь, знак – Abs, Sqrt, Sign;

­ функції округлення – Ceiling, Floor, Round;

­ мінімум, максимум, ступінь, остаток – Min, Max, Pow, IEEEReminder.

В мові C# немає спеціальних ключових слів – procedure або function, але ці поняття присутні. Синтаксис оголошення метода дозволяє однозначно визначити, чим є метод – процедурою або функції. Процедура C# має власні особливості:

­ вона повертає формальний результат void, що вказує на відсутність результату;

­ виклик процедури є оператором мови.

В найпростішому варіанті оголошення методу відбувається так: тип_результату_функції ім’я_методу [список_формальних_аргументів]).

Масиви є колекціями об’єктів одного типу. Оскільки довжина масивів практично не обмежена, вони можуть використовуватись для зберігання тисяч або навіть мільйонів об’єктів, але розмір повинен бути вказаний при його створені. Кожен елемент масиву доступний по його числовому індексу, який вказує позицію або чарунку, в якій об’єкт зберігається в масиві. Індексуються масиви починаючи з 0. Масиви класифікуються наступним чином:

­ одномірні масиви;

­ багатомірні масиви;

­ масиви масивів;

­ колекції.


 

2 СПЕЦІАЛЬНА ЧАСТИНА

2.1 Структура програмного продукту

 

 

«Есть решение!» - це програма, яка була розроблена як посібник для вивчення тем з дисципліни «Чисельні методи», що стосуються розв’язання систем лінійних рівнянь та виконання операцій над матрицями. Програма «Есть решение!» пропонує автоматичне вирішення вищеописаних задач.

Користувач має можливість за допомогою зручного інтерфейсу одним кліком миші вирішувати системи лінійних рівнянь методом Гауса, Крамера та матричним методом, знаходити визначник матриці та знаходити для заданої матриці зворотну. Тип задачі обирається на головній сторінці програми «Есть решение!» (рис. 2.1). Після вибору типу задачі відкривається окрема форма з вибраним модулем.

Для кожного з типу задач розроблена можливість обирати розмірність матриці від 2х2 до 5х5. Користувач може заповнювати, змінювати та очищувати поля, що призначені для вводу коефіцієнтів матриці та, у випадку систем лінійних рівнянь, вільних членів рівняння. Якщо користувач допустить помилку при заповненні даних для задачі, або залишить певні поля порожніми, програма сповістить його про це.

 

 

Рисунок 2.1 – Головна сторінка програми «Есть решение!»

 

Після заповнення даних для задачі користувач одним кліком миші отримує рішення у зручній формі, яке виводиться у додаток, але за бажанням користувач для підвищення сприйняття може зберегти рішення в форматі текстового документу.

Для кожного типу задач, що представлені в програмі «Есть решение!», користувач може отримати довідкову інформацію, що викликається у модулі кожного типу задач та надається у формі текстового документу.

При виході з програми та кожного модуля користувач попереджається відповідним повідомленням задля уникнення втрати даних.

Дана розробка є відправною точкою на шляху до полегшення навчання студентів з дисципліни «Чисельні методи» з тем, що стосуються методів вирішення систем лінійних рівнянь та виконання операцій над матрицями.

Основна структура програмного продукту представлена на рисунку 2.2.

 

 

Рисунок 2.2 – Структура програмного продукту

 

Ключові переваги програми «Есть решение!»:

- надійність розрахунків;

- простота інтерфейсу користувача;

- висока швидкість виконання розрахунків;

- висока деталізація відображення ходу розв’язання задач.

Загальні обмеження:

- 5 мб вільного місця на диску;

- від 256 Мб оперативної пам’яті;

- відео-карта з підтримкою DirectX 9 і 64 Мб графічної пам'яті;

- монітор, з розширенням не менш 800х600;

- клавіатура, миша;

- операційні система Windows 7 і вище;

- Microsoft.Net Framework 4.5;

- Microsoft Visual C++ Redistributable.

 

 

2.2 Структура і функціональне призначення модулів програмного продукту

 

 

Програма «Есть решение!» складається з декількох модулів, які показані на рисунку 2.3.

 

 

Рисунок 2.3 – Модулі програми «Есть решение!»

 

Головний модуль програми – модуль «MainMenu», що описує головну форму програми. Цей модуль є своєрідним «скелетом» програми, тому що об’єднує всі модулі програми в один налагоджений механізм. В ньому описуються зв’язки між головною та іншими формами програми, описані компоненти, за допомогою яких вони викликаються, та інші елементи інтрефейсу форми. Код форми «MainMenu» показаний на рисунку 2.4.

 


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using Word = Microsoft.Office.Interop.Word;

using System.Diagnostics;

namespace Диплом

{public partial class MainMenu: Form

{static public int[] Control = new int[6];

public MainMenu()

{InitializeComponent();}

private void button1_Click(object sender, EventArgs e)

{if (Control[0] == 0)

{Gauss f2 = new Gauss();

f2.Show();

Control[0] = 1; } }

private void button2_Click(object sender, EventArgs e)

{if (Control[1] == 0)

{Kramer f3 = new Kramer();

f3.Show();

Control[1] = 1; }}

private void button3_Click(object sender, EventArgs e)

{if (Control[2] == 0)

{Matrix f4 = new Matrix();

f4.Show();

Control[2] = 1;} }

private void button4_Click(object sender, EventArgs e)

{if (Control[3] == 0)

{Determinant f5 = new Determinant();

f5.Show();

Control[3] = 1;}}

private void button5_Click(object sender, EventArgs e)

{if (Control[4] == 0)

{InventMatrix f6 = new InventMatrix();

f6.Show();

Control[4] = 1;} }

private void MainMenu_FormClosing(object sender, FormClosingEventArgs e)

{DialogResult result = MessageBox.Show("Вы точно хотите выйти?", "Выход из программы", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

if (result == DialogResult.No)

{e.Cancel = true;} }

private void button6_Click(object sender, EventArgs e)

{Process.Start(@"О программе.docx");}}}


 

Рисунок 2.4 – Код форми MainMenu

 

Інші модулі програми, що призначені для обчислень, мають між собою схожу структуру. Після завантаження кожної форми для вирішення певного типу задачі користувач обирає розмірність матриці. В залежності від обраного розміру, що відповідає певному елементу випадаючого списку, на формі динамічно створюється необхідна кількість полів для вводу даних, що відповідає кількості коефіцієнтів матриці та, у випадку з системами лінійних рівнянь, до цієї кількості додається стовпець вільних членів. В залежності від кількості полів для вводу змінюється розмір поля для виводу рішення. Після вводу даних та кліку на кнопку «Решить» запускається метод з алгоритмом для вирішення цього типу задачі, в ході якого поле для виводу рішення заповнюється даними, що описують беспосередньо процес рішення. Якщо користувач натискає кнопку «Сохранить», то всі дані з поля для виведення рішення копіюються в файл формату «.rtf.». Якщо користувач натискає кнопку «Очистить», то викликається метод, що очищає всі текстові елементи на формі. При натисканні на кнопку «Справка» викликається метод, що відкріває довідку через програму «WordPad» або «Microsoft Office Word».

Модуль «Gauss» призначений для вирішення систем лінійних рівнянь методом Гауса. Цей модуль описує окрему форму, що містить алгоритм для вирішення рівнянь різної розмірності. Лістинг форми показаний на рисунку 2.5.

 


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Diagnostics;

namespace Диплом

{public partial class Gauss: Form

{int MatrixSize = 2, Row, Cell, PreviousMatrixSize, Control = 1, BeginXPosition, ExitOrNot;

float[,] MatrixMembers;

TextBox[,] Koefficients = new TextBox[5, 5];

TextBox[] Freemembers = new TextBox[5];

public Gauss()

{InitializeComponent();}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

{MatrixSize = comboBox1.SelectedIndex + 2;

if (MatrixSize!= PreviousMatrixSize)

{richTextBox1.Text = "";

if (Control == 1)


Дата добавления: 2015-10-21; просмотров: 107 | Нарушение авторских прав







mybiblioteka.su - 2015-2024 год. (0.065 сек.)







<== предыдущая лекция | следующая лекция ==>