фывфв. Руководство пользователя Контрольный пример
Скачать 7.68 Mb.
|
ЗаключениеВ результате выполнения курсовой работы по дисциплине "Технология программирования" мной была разработана программа реализующая пять действий над нечеткими множествами: пересечение, разность, объединение, симметричная разность и произведение. Программа позволяет выполнять следующие действия: § вводить различные исходные данные; § выводить на экран результаты; § возможность производить обработку различных наборов данных в течение одного сеанса работы. Наличие развитого пользовательского интерфейса позволяет работать с созданной программой практически любому пользователю, имеющем начальные знания и навыки работы на компьютере: необходимой действие выбирается щелчком мыши на соответствующей кнопке. Работа над курсовой работой позволила освоить технологию модульного программирования и приобрести навыки работы со средой визуального программирования Delphi и ее библиотечной системой. Кроме того в работе был изучен теоретический вопрос по этапам разработки программных средств. Список использованных источников1. Брауде Э.Д. Технология разработки программного обеспечения. - М.: Бином, 2004. - 455 с. 2. Брукс Ф.П. Как проектируются и создаются программные комплексы. - М.: Наука, 1979. - 376 с. . Вирт Н. Алгоритмы и структуры данных. - М.: Мир, 1989. - 360 с. . Глушаков С.В. Программирование на Delphi. - Харьков: Фолио, 2002.518 с. . Дал У., Дейкстра Э., Хоор К. Структурное программирование. - М.: Мир, 1975. - 472 с. . Жоголев Е.А. Введение в технологию программирования (конспект лекций). - М.: "ДИАЛОГ-МГУ", 1994. - 286 с. . Кнут Д.Е. Искусство программирования. т.3. - М.: Мир, 1984. - 724 с. . Кофман А. Введение в теорию нечетких множеств. - М.: Радио и связь, 1982. - 432 с. . Липаев В.В. Качество программного обеспечения. - М.: Финансы и статистика, 1983. - 366 с. Приложение. Листинг программыМодуль main unit main;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ImgList, ComCtrls, StdCtrls, ToolWin;= class (TForm): TToolBar;: TMemo;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TImageList;: TToolButton;: TToolButton;PrgEnd (Sender: TObject);FormCreate (Sender: TObject);InputMNO (Sender: TObject);OperationNM (Sender: TObject); { Private declarations } { Public declarations };: TForm1;op_mno, vvod; {$R *. dfm}, a2, a3: mno_mas;,n1,n2: integer;vyvod (a: mno_mas; n: integer): string; // вывод множества: integer;: string;: = '';i: =1 to n do: = s + FloatToStrF (a [i], ffFixed, 4,2) + '; ';: = s;;TForm1. PrgEnd (Sender: TObject); // выход из программы;;TForm1. FormCreate (Sender: TObject); // создание формы и инициализация множеств: integer;;: = Random (10) + 5;: = Random (10) + 5;i: = 1 to n1 do[i]: = Random (11) / 10;i: = 1 to n2 do[i]: = Random (11) / 10;;TForm1. InputMNO (Sender: TObject); // ввод нечетких множеств: integer;Sender = ToolButton1 then. SpinEdit1. Value: = n1;. StringGrid1. ColCount: = n1;. Caption: = 'Ввод множества А';i: = 1 to n1 do. StringGrid1. Cells [i - 1, 0]: = FloatToStrF (a1 [i], ffFixed, 3, 1);. ShowModal;: = Form2. SpinEdit1. Value;i: = 1 to n1 do[i]: = StrToFloat (Form2. StringGrid1. Cells [i - 1, 0]);;Sender = ToolButton2 then. SpinEdit1. Value: = n2;. StringGrid1. ColCount: = n2;. Caption: = 'Ввод множества B';i: = 1 to n2 do. StringGrid1. Cells [i - 1, 0]: = FloatToStrF (a2 [i], ffFixed, 3, 1);. ShowModal;: = Form2. SpinEdit1. Value;i: = 1 to n2 do[i]: = StrToFloat (Form2. StringGrid1. Cells [i - 1, 0]);;;TForm1. OperationNM (Sender: TObject); // операции над множествами. Clear;Sender = addmno then. Lines. Add ('Операция: ' + addmno. Hint);(a1,n1,a2,n2,a3,n3);;Sender = peresmno then. Lines. Add ('Операция: ' + peresmno. Hint);(a1,n1,a2,n2,a3,n3);;Sender = submno then. Lines. Add ('Операция: ' + submno. Hint);(a1,n1,a2,n2,a3,n3);;Sender = ssubmno then. Lines. Add ('Операция: ' + ssubmno. Hint);(a1,n1,a2,n2,a3,n3);;Sender = mulmno then. Lines. Add ('Операция: ' + mulmno. Hint);(a1,n1,a2,n2,a3,n3);;. Lines. Add ('Множество А');. Lines. Add (vyvod (a1,n1));. Lines. Add ('Множество В');. Lines. Add (vyvod (a2,n2));. Lines. Add ('Результат');. Lines. Add (vyvod (a3,n3));;. Модуль op_mno unit op_mno;_mas = array [1.20] of real;_mas = array [1.20] of 0.1;peres (a1: mno_mas; n1: integer; a2: mno_mas; n2: integer;a3: mno_mas; var n3: integer);objed (a1: mno_mas; n1: integer; a2: mno_mas; n2: integer;a3: mno_mas; var n3: integer);razn (a1: mno_mas; n1: integer; a2: mno_mas; n2: integer;a3: mno_mas; var n3: integer);simrazn (a1: mno_mas; n1: integer; a2: mno_mas; n2: integer;a3: mno_mas; var n3: integer);proizved (a1: mno_mas; n1: integer; a2: mno_mas; n2: integer;a3: mno_mas; var n3: integer);math;mu (a: mno_mas; n: integer; var b: bin_mas); {характеристическая функция}: integer;i: =1 to n doa [i] <0.5 then[i]: = 0[i]: = 1;;peres (a1: mno_mas; n1: integer; a2: mno_mas; n2: integer;a3: mno_mas; var n3: integer); {пересечение множеств}: integer;: =n1;n2 {объединение множеств}: integer;: =n1;n2 {разность множеств}: integer;: =n1;n2 {симметричная разность множеств}: integer;, aa2: bin_mas;(a1, n1, aa1);(a2, n2, aa2);: =n1;i: =1 to n3 do[i]: =0;i: =1 to n3 do(aa1 [i] =1) and (aa2 [i] =1) then[i]: =a1 [i];;proizved (a1: mno_mas; n1: integer; a2: mno_mas; n2: integer;a3: mno_mas; var n3: integer); {произведение множеств}: integer;: =n1;n2 Модуль vvod unit vvod;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Spin, Buttons, Grids;= class (TForm): TStringGrid;: TBitBtn;: TLabel;: TSpinEdit;SpinEdit1Change (Sender: TObject);;: TForm2; {$R *. dfm}TForm2. SpinEdit1Change (Sender: TObject); // изменение размерности множества. ColCount: = SpinEdit1. Value;;. |