Проектирование интерфейса пользователя

Автор работы: Пользователь скрыл имя, 12 Мая 2015 в 16:59, курсовая работа

Описание работы

В первой части расчетно-графического задания рассматривается предметная область, уточняющая требования к программному продукту, проводится анализ представленных на рынке программных продуктов: языков программирования, сред разработки программного обеспечения, сред проектирования на базе CASE технологии, а также выбирается математический метод решения поставленной задачи.

Содержание работы

Введение ……………………………………………………………………...4
1 Выбор технологии, языка и среды программирования ………….………..5
2 Анализ и уточнение требований к программному продукту …………......8
2.1 Анализ процесса обработки информации и описание структуры данных для ее хранения ……………………………………………………....8
3 Разработка функциональной схемы программного продукта ………….....11
4 Проектирование интерфейса пользователя …………………………….......13
4.1 Построение диаграммы классов……………………………………….…...13
4.2 Уточнение структуры классов предметной области и разработка алгоритмов метода ……………………………………….…...14
5 Тестирование разработанных программных продуктов…………………..15
Заключение ………………………………………………………………...... 17
Список использованных источников

Файлы: 1 файл

Отчет Ленка.doc

— 464.50 Кб (Скачать файл)

  minDet,MnKK,summ,summ2,summ3,ha:real;

  mato: array[0..2] of real;

  srkv,a,yy: array[0..2] of real;

  mas3:array[0..2,0..2] of real;

  mas2,cov,ob,c:ma;

implementation

 

{$R *.dfm}

 

procedure TForm1.Button3Click(Sender: TObject);

begin

Form2.Visible:=true;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

 

Application.CreateForm(TForm3,Form3);

Form3.Visible:=True;

 

end;

function determin(ms:ma): real;

begin

determin:=ms[0,0]*ms[1,1]*ms[2,2]+ms[2,0]*ms[0,1]*ms[1,2]+ms[1,0]*ms[2,1]*ms[0,2]-ms[2,0]*ms[1,1]*ms[0,2]-ms[1,0]*ms[0,1]*ms[2,2]-ms[0,0]*ms[2,1]*ms[1,2];

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Form5.Visible:=true;

 

 

////////////////////////////////////////////////////////////////////////////////////

Form5.IBDataSet2.Open;

Form5.IBDataSet2.last;

y:=Form5.IBDataSet2.RecordCount;

Form5.IBDataSet2.first;

Setlength(mass,4,y);

Setlength(cov1,3,y);

Setlength(X,3,y);

//Setlength(c,3,y);

//Form5.IBDataSet2.SelectSQL.Clear; // очистить текст sql

//Form5.IBDataSet2.SelectSQL.Add('select * from ORDERS where DETAIL= :param'); // задать текст запроса

Form5.IBDataSet1.Prepare;   // отправить запрос на сервер, проверить его корректность и т.п.

 

//z:=IBDataSet2.FieldCount;

//IBDataSet2.first;

for i:=0 to y-1 do

  begin

  mass[1,i]:=Form5.IBDataSet2.FieldByName('SROK').AsInteger;

  x2:=Form5.IBDataSet2.FieldByName('ID').AsInteger;

  mass[3,i]:=Form5.IBDataSet2.FieldByName('ID').AsInteger;

  mass[2,i]:=Form5.IBDataSet2.FieldByName('COST').AsInteger;

     Form5.IBDataSet1.ParamByName('param2').asInteger:=x2; // задать значение параметра

    Form5.IBDataSet1.Open;

     Form5.IBDataSet1.last;

     mass[0,i]:=Form5.IBDataSet1.RecordCount;

      Form5.IBDataSet1.Close;

      Form5.StringGrid2.Cells[2,0]:='X2';

      Form5.StringGrid2.Cells[1,0]:='X1';

      Form5.StringGrid2.Cells[0,0]:='Y';

      Form5.StringGrid2.Cells[3,0]:='ID';

 

     Form5.StringGrid2.Cells[2,i+1]:=inttostr(mass[2,i]);

      Form5.StringGrid2.Cells[1,i+1]:=inttostr(mass[1,i]);

      Form5.StringGrid2.Cells[0,i+1]:=inttostr(mass[0,i]);

      Form5.StringGrid2.Cells[3,i+1]:=inttostr(mass[3,i]);

   Form5.IBDataSet2.next;

end;

 

 

//****матожидание

for i:=0 to 2 do

begin

summ:=0;

  for j:=0 to y-1 do

   begin

    summ:=summ+mass[i,j];

 

   end;

  mato[i]:=summ/5;

 

end;

 

//****

//***среднее квадратичное отконение

  for i:=0 to 2 do

 begin

summ:=0;

  for j:=0 to y-1 do

   begin

    summ:=summ+sqr(mass[i,j]-mato[i]);

   end;

   srkv[i]:=sqrt(summ/5);

 

end;

//***

 

//**матрица парных коэф. корреляции

  for i:=0  to 1 do

for j:=i+1 to 2 do

begin

  summ:=0;

  summ2:=0;

  summ3:=0;

  for n:=0 to y-1 do

   begin

    summ:=summ+(mass[i,n]-mato[i])*(mass[j,n]-mato[j]);

    summ2:=summ2+sqr(mass[i,n]-mato[i]);

    summ3:=summ3+sqr(mass[j,n]-mato[j])

   end;

  mas2[i,j]:=summ/(sqrt(summ2)*sqrt(summ3));

  mas2[j,i]:=mas2[i,j];

 

end;

mas2[0,0]:=1;    //элементы главной диагонали

mas2[1,1]:=1;

mas2[2,2]:=1;

 

//**

//***** Частные коэф. корреляции

 

mas3[0,1]:=(mas2[0,1]-(mas2[0,2]*mas2[1,2]))/sqrt((1-sqr(mas2[0,2]))*(1-sqr(mas2[1,2])));

mas3[0,2]:=(mas2[0,2]-(mas2[0,1]*mas2[1,2]))/sqrt((1-sqr(mas2[0,1]))*(1-sqr(mas2[1,2])));

mas3[1,2]:=(mas2[1,2]-(mas2[0,1]*mas2[0,2]))/sqrt((1-sqr(mas2[0,1]))*(1-sqr(mas2[0,2])));

mas3[1,0]:=mas3[0,1];

mas3[2,0]:=mas3[0,2];

mas3[2,1]:=mas3[1,2];

//*****

//******Множественный коэффициент корреляции

 

 

zav:=1; minDet:=mas2[1,1]*mas2[2,2]-mas2[2,1]*mas2[1,2];   //определитель

                                                           //после вычеркивания

                                                           //строки столбца

 

 

MnKK:=sqrt(1-(abs(determin(mas2))/abs(minDet)));

//******

 

//*******ковариацонная матрица

 

for i:=0 to 2 do

for j:=0 to y-1 do

  begin

   cov1[i,j]:=mass[i,j]-mato[i]

  end;

 

  for i:=0 to 2 do

begin

summ:=0;

summ2:=0;

summ3:=0;

for j:=0 to y-1 do

  begin

   summ:=summ+cov1[i,j]*cov1[0,j];

   summ2:=summ2+cov1[i,j]*cov1[1,j];

   summ3:=summ3+cov1[i,j]*cov1[2,j];

  end;

  cov[i,0]:=summ;          //XT*X

  cov[i,1]:=summ2;

  cov[i,2]:=summ3;

 end;

 

 

//*******

//ищем вектор оценок коэффициентов регрессии a

for i:=0 to 2 do

for j:=0 to y-1 do              //находим матрицу X

  begin

   if i=0 then X[i,j]:=1 else

    if i=zav-1 then break else

    X[i,j]:=mass[i,j];

  end;

 

for i:=0 to 2 do

begin

summ:=0;

summ2:=0;

summ3:=0;

for j:=0 to y-1 do

  begin

   summ:=summ+X[i,j]*X[0,j];

   summ2:=summ2+X[i,j]*X[1,j];

   summ3:=summ3+X[i,j]*X[2,j];

  end;

  c[i,0]:=summ;          //XT*X

  c[i,1]:=summ2;

  c[i,2]:=summ3;

end;

 

 

 

 

for i:=0 to 2 do

  begin

  for j:=0 to 2 do

   begin

     case i of

     0:begin n:=1; m:=2; end;

     1:begin n:=0; m:=2; end;

     2:begin n:=0; m:=1; end;

     end;

     case j of

     0:begin k:=1; t:=2; end;

     1:begin k:=0; t:=2;  end;

     2:begin k:=0; t:=1; end;

     end;

    ob[i,j]:=((c[n,k]*c[m,t])-(c[n,t]*c[m,k]))/determin(c); // (XT*X)^-1

    if ((i+j)mod 2)=1 then ob[i,j]:=-ob[i,j];

   end;

  end;

 

// for i:=1 to 3 do

// for j:=1 to 3 do

//  StringGrid2.Cells[i-1,j-1]:=floattostr(RoundTo(ob[i,j],-2));

 

for i:=0 to 2 do

  begin

  for j:=0 to y-1 do

   begin

   yy[i]:=yy[i]+mass[zav-1,j]*X[i,j];    //XT*Y

 

   end;

  //showmessage(floattostr(y[1,i]))

 

  end;

for j:=0 to 2 do

begin

summ:=0;

  for i:=0 to 2 do

   begin

   summ:=summ+yy[i]*ob[j,i];

   end;

   a[j]:=summ;

   //showmessage(floattostr(a[j]));         //вектор оценок коэффициентов регрессии

   end;

//**************КРА закончился***************

 

Form5.StringGrid1.Cells[0,0]:='ID';

Form5.StringGrid1.Cells[1,0]:='Наименование';

Form5.StringGrid1.Cells[2,0]:='Остаток';

Form5.StringGrid1.Cells[3,0]:='Требуется';

Form5.StringGrid1.Cells[4,0]:='Закупить';

//Form5.IBDataSet2.SelectSQL.Clear; // очистить текст sql

//Form5.IBDataSet2.SelectSQL.Add('select * from DETAILS where ID = :param');

  Form5.IBDataSet3.Prepare;

  For i:=0 to y-1 do

  begin

    Form5.StringGrid1.Cells[0,i+1]:=inttostr(mass[3,i]);  //ID

     Form5.IBDataSet3.ParamByName('param').asInteger:=mass[3,i];    //Название

      //showmessage(inttostr(mass[3,i]));

  Form5.IBDataSet3.Open;

  //Form5.IBDataSet2.next;

  Form5.StringGrid1.Cells[1,i+1]:=Form5.IBDataSet3.FieldByName('NAME').AsString;

  Form5.StringGrid1.Cells[2,i+1]:=Form5.IBDataSet3.FieldByName('KOLVO').AsString;

   ha:=a[0]+ a[1]*Form5.IBDataSet3.FieldByName('SROK').AsInteger+a[2]*Form5.IBDataSet3.FieldByName('COST').AsInteger;

  Form5.StringGrid1.Cells[3,i+1]:=floattostr(round(ha+0.5));

 

   n:= round(ha+0.5)-Form5.IBDataSet3.FieldByName('KOLVO').AsInteger;

   if n<=0 then Form5.StringGrid1.Cells[4,i+1]:='0'

   else  Form5.StringGrid1.Cells[4,i+1]:=inttostr(n);

    Form5.IBDataSet3.Close;

 

  end;

 

 

end;

 

 

end.

unit Unit3;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, Unit1, StdCtrls, DBCtrls, ComCtrls, Unit4, IBQuery, DB,

  IBCustomDataSet, IBTable, Grids, DBGrids;

 

type

  TForm3 = class(TForm)

    DateTimePicker1: TDateTimePicker;

    DateTimePicker2: TDateTimePicker;

    Edit1: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    Button1: TButton;

    DBGrid1: TDBGrid;

    DBGrid2: TDBGrid;

    DBGrid3: TDBGrid;

    IBTable1: TIBTable;

    DataSource1: TDataSource;

    DataSource2: TDataSource;

    IBTable2: TIBTable;

    IBTable3: TIBTable;

    DataSource3: TDataSource;

    IBTable4: TIBTable;

    procedure Button1Click(Sender: TObject);

  

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form3: TForm3;

 

implementation

 

{$R *.dfm}

 

 

procedure TForm3.Button1Click(Sender: TObject);

var x:integer;

begin

IBTable4.Active:=true;

IBTable4.Last;

x:=IBTable4.FieldByName('ID').AsInteger;

IBTable4.Insert;

 

 

IBTable4.Edit;

IBTable4.FieldByName('ID').AsInteger:= x+1;

IBTable4.FieldByName('DATANACH').AsDateTime:=DateTimePicker1.DateTime;

IBTable4.FieldByName('DATAKON').AsDateTime:=DateTimePicker2.DateTime;

IBTable4.FieldByName('REMONT').AsString:=Edit1.Text;

IBTable4.FieldByName('DEVICE').AsInteger:=IBTable1.FieldByName('ID').AsInteger;

IBTable4.FieldByName('DETAIL').AsInteger:=IBTable2.FieldByName('ID').AsInteger;

IBTable4.FieldByName('WORKER').AsInteger:=IBTable3.FieldByName('ID').AsInteger;

IBTable4.ApplyUpdates;

IBTable4.Active:=false;

form3.close;

end;

 

end.

unit Unit4;

 

interface

 

uses

  SysUtils, Classes, DB, IBDatabase, IBCustomDataSet, IBTable, IBQuery;

 

type

  TDataModule4 = class(TDataModule)

    IBTable1: TIBTable;

    IBDatabase1: TIBDatabase;

    IBTransaction1: TIBTransaction;

    DataSource1: TDataSource;

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  DataModule4: TDataModule4;

 

implementation

 

{$R *.dfm}

 

end.

unit Unit5;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, unit4, DB, IBCustomDataSet, IBQuery, IBSQL, Grids, StdCtrls,

  IBTable, DBGrids;

 

type

  TForm5 = class(TForm)

    IBDataSet1: TIBDataSet;

    IBDataSet2: TIBDataSet;

    StringGrid1: TStringGrid;

    Button1: TButton;

    IBDataSet3: TIBDataSet;

    Label1: TLabel;

    StringGrid2: TStringGrid;

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form5: TForm5;

 

 

implementation

 

{$R *.dfm}

 

procedure TForm5.Button1Click(Sender: TObject);

var

i:integer;

begin

Form5.Visible:=false;

end;

end.


Информация о работе Проектирование интерфейса пользователя