Автор работы: Пользователь скрыл имя, 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
Список использованных источников
minDet,MnKK,summ,summ2,summ3,
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.Visible:=True;
end;
function determin(ms:ma): real;
begin
determin:=ms[0,0]*ms[1,1]*ms[
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form5.Visible:=true;
//////////////////////////////
Form5.IBDataSet2.Open;
Form5.IBDataSet2.last;
y:=Form5.IBDataSet2.
Form5.IBDataSet2.first;
Setlength(mass,4,y);
Setlength(cov1,3,y);
Setlength(X,3,y);
//Setlength(c,3,y);
//Form5.IBDataSet2.SelectSQL.
//Form5.IBDataSet2.SelectSQL.
Form5.IBDataSet1.Prepare; // отправить запрос на сервер, проверить его корректность и т.п.
//z:=IBDataSet2.FieldCount;
//IBDataSet2.first;
for i:=0 to y-1 do
begin
mass[1,i]:=Form5.IBDataSet2.
x2:=Form5.IBDataSet2.
mass[3,i]:=Form5.IBDataSet2.
mass[2,i]:=Form5.IBDataSet2.
Form5.IBDataSet1.ParamByName('
Form5.IBDataSet1.Open;
Form5.IBDataSet1.last;
mass[0,i]:=Form5.IBDataSet1.
Form5.IBDataSet1.Close;
Form5.StringGrid2.Cells[2,0]:=
Form5.StringGrid2.Cells[1,0]:=
Form5.StringGrid2.Cells[0,0]:=
Form5.StringGrid2.Cells[3,0]:=
Form5.StringGrid2.Cells[2,i+1]
Form5.StringGrid2.Cells[1,i+1]
Form5.StringGrid2.Cells[0,i+1]
Form5.StringGrid2.Cells[3,i+1]
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[
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])
summ2:=summ2+sqr(mass[i,n]-
summ3:=summ3+sqr(mass[j,n]-
end;
mas2[i,j]:=summ/(sqrt(summ2)*
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,
mas3[0,2]:=(mas2[0,2]-(mas2[0,
mas3[1,2]:=(mas2[1,2]-(mas2[0,
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]-
MnKK:=sqrt(1-(abs(determin(
//******
//*******ковариацонная матрица
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,
summ3:=summ3+cov1[i,j]*cov1[2,
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[
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]:=
for i:=0 to 2 do
begin
for j:=0 to y-1 do
begin
yy[i]:=yy[i]+mass[zav-1,j]*X[
end;
//showmessage(floattostr(y[1,
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]:=
Form5.StringGrid1.Cells[1,0]:=
Form5.StringGrid1.Cells[2,0]:=
Form5.StringGrid1.Cells[3,0]:=
Form5.StringGrid1.Cells[4,0]:=
//Form5.IBDataSet2.SelectSQL.
//Form5.IBDataSet2.SelectSQL.
Form5.IBDataSet3.Prepare;
For i:=0 to y-1 do
begin
Form5.StringGrid1.Cells[0,i+1]
Form5.IBDataSet3.ParamByName('
//showmessage(inttostr(mass[3,
Form5.IBDataSet3.Open;
//Form5.IBDataSet2.next;
Form5.StringGrid1.Cells[1,i+1]
Form5.StringGrid1.Cells[2,i+1]
ha:=a[0]+ a[1]*Form5.IBDataSet3.
Form5.StringGrid1.Cells[3,i+1]
n:= round(ha+0.5)-Form5.
if n<=0 then Form5.StringGrid1.Cells[4,i+1]
else Form5.StringGrid1.Cells[4,i+1]
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').
IBTable4.Insert;
IBTable4.Edit;
IBTable4.FieldByName('ID').
IBTable4.FieldByName('
IBTable4.FieldByName('DATAKON'
IBTable4.FieldByName('REMONT')
IBTable4.FieldByName('DEVICE')
IBTable4.FieldByName('DETAIL')
IBTable4.FieldByName('WORKER')
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.