Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
!!! Соловьев.doc
Скачиваний:
12
Добавлен:
18.11.2019
Размер:
2.02 Mб
Скачать

5.1 Макеты экранных форм для ввода и вывода информации

Макеты экранных форм для ввода и вывода информации представлены на рисунках 6 - 8.

Рисунок 6 - Макет экранной формы «Заполнители»

Рисунок 7 - Макет экранной формы «Цеха»

Рисунок 8 - Макет экранной формы «Быстрый поиск: Заполнители»

Заключение

В результате выполнения курсового проекта закреплены знания методов многомерного статистического анализа, получены первичные навыки проверки статистических гипотез, углублен умения разработки программных продуктов.

Решены поставленные инженерные задачи:

- разработан алгоритм проверки статистических гипотез;

- программно реализован разработанный алгоритм в среде программирования Delfi 7.

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

Список используемых источников

  1. Вендеров, А.М. CASE – технологии. Современные методы и средства проектирования информационных систем / А.М. Вендеров. – М.: Финансы и статистика, 1998. – 176 с.

  2. Бондарь А.Г., InterBase и Firebird. Практическое руководство для умных пользователей и начинающих разработчиков. – СПб.: БХВ-Петербург, 2007. – 592 с.: ил.

  3. Зубкова Т.М., Технология разработки программного обеспечения: Учебное пособие. – Оренбург: ГОУ ОГУ, 2004. – 101 с.

  4. Григорьев, Ю.А., Ревунков Г.И. Банки данных / Ю.А. Григорьев, Г.И. Ревунков. – М.: Изд–во МГТУ, 2002. – 320 с.

  5. Дейт, К. Дж. Введение в системы баз данных: Пер. с англ / К.Дж. Дейт. – К.;М.; СПб.: Издательский дом «Вильямс». 2000. – 848 с.

  6. Интегрированная аналитическая информационная система Петрозаводского государственного университета. [Электронный ресурс] – Режим доступа: WWW.URL: http://rcnit.karelia.ru/info/iais.

  7. Конноли, Т. Базы данных: проектирование, реализация и сопровождение. Теория и практика / Т. Конноли, К. Берг, А. Страчан. – М.: Издательский дом «Вильямс», 2000. – 1120 с.

  8. Кузнецов, С.Д. Основы современных баз данных. [Электронный ресурс] – Режим доступа: WWW.URL: http://www.citforum.ru/ database/osbd/ contents.shtml

  9. Фаронов В.В. Delphi. Программирование на языке высокого уровня: Учебник для вузов — СПб.: Питер, 2004. – 640 с.: ил.

  10. Конопка Р. Создание оригинальных компонент в среде Delphi/Пер. с англ. Рей Конопка. – К.: НИПФ «ДиаСофтЛтд», 1996.

  11. Технология разработки программного обеспечения. Учебное пособие. / С. Орлов. – Спб.: Питер, 2003. – 480 с.

Приложение а Листинг программы

program Project1;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

Еnd.

unit Unit1;

interface

uses

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

Dialogs, Grids, StdCtrls, XPMan;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

StringGrid1: TStringGrid;

Button1: TButton;

Button2: TButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

XPManifest1: TXPManifest;

Button3: TButton;

procedure Edit2Change(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);

procedure Edit2KeyPress(Sender: TObject; var Key: Char);

procedure Edit3KeyPress(Sender: TObject; var Key: Char);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

procedure StringGrid1GetEditMask(Sender: TObject; ACol, ARow: Integer;

var Value: string);

procedure Edit3Change(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations } end;

var

a:array [1..20] of real;

b:array [1..20] of real;

f:array [1..45] of real;

i,n,u,u1,m,o:integer;

T,T2,E,s1,s2,m1,m2,m3,m11,m22,m33:real;

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

s1:=0; s2:=0; m1:=0; m2:=0; m3:=0;

m:=2;

n:=strtoint(edit3.text);

u:=strtoint(edit1.Text);

u1:=strtoint(edit2.Text);

with StringGrid1 do

begin

if rowcount>(strtoint(edit3.Text)+1) then rowcount:=rowcount-1;

for i:=1 to RowCount-1 do

begin

a[i]:=strtofloat(Cells[1,i]);

s1:=s1+a[i];

b[i]:=strtofloat(Cells[2,i]);

s2:=s2+b[i]; end;

s1:=s1/(RowCount-1);

s2:=s2/(RowCount-1);

RowCount:=RowCount+1;

cells[0,RowCount-1]:='Ср. знач.';

cells[1,Rowcount-1]:=floattostrf(s1,fffixed,10,2);

cells[2,Rowcount-1]:=floattostrf(s2,fffixed,10,2);

for i:=1 to rowcount-2 do

begin

a[i]:=a[i]-s1;

b[i]:=b[i]-s2;

m1:=m1+sqr(a[i]);

m2:=m2+sqr(b[i]);

m3:=m3+(a[i]*b[i]); end;

m1:=m1*(1/(rowcount-3));

m2:=m2*(1/(rowcount-3));

m3:=m3*(1/(rowcount-3)); end;

Label1.Caption:='Ковариационная матрица'+#13+#13+' '+floattostrf(m1,fffixed,10,2)+' '+floattostrf(m3,fffixed,10,2)+#13+#13+

' '+floattostrf(m3,fffixed,10,2)+' '+floattostrf(m2,fffixed,10,2);

E:=m1*m2-sqr(m3);

m11:=m2/E;

m22:=m1/E;

m33:=-1*m3/E;

label2.Caption:='Обратная ковариационная матрица'+#13+#13+' '+floattostrf(m11,fffixed,10,5)+' '+floattostrf(m33,fffixed,10,5)+#13+#13+

' '+floattostrf(m33,fffixed,10,5)+' '+floattostrf(m22,fffixed,10,5);

T:=((((n*(s1-u))*m11)+((n*(s2-u1))*m33))*(s1-u))+((((n*(s1-u))*m33)+((n*(s2-u1))*m22))*(s2-u1));

T2:=m*(n-1)/(n-m)*f[n-m];

label3.Caption:='Фактическое значение '+floattostrf(T,fffixed,10,2);

Label7.Caption:='Критическое значение '+floattostrf(T2,fffixed,10,2);

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

close;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

Button1.Visible:=False;

Label7.Caption:='';

Label1.Caption:='';

Label2.Caption:='';

Label3.Caption:='';

Button3.Visible:=False;

Edit1.text:='';

Edit2.text:='';

Edit3.text:='';

Edit1.ReadOnly:=False;

Edit1.SetFocus;

for i:=1 to stringgrid1.rowcount-1 do

stringgrid1.Rows[i].Clear;

stringgrid1.options:=stringgrid1.options-[goEditing]; end;

procedure TForm1.Edit1Change(Sender: TObject);

begin

if length(Edit1.text)>0 then Edit2.ReadOnly:=False; end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

case Key of

'0'..'9': ;

#8 : ;

else Key :=Chr(0);

end;

If Length(Edit1.Text)<1 then

case Key of

'1'..'9': ;

else Key :=Chr(0); end; end;

procedure TForm1.Edit2Change(Sender: TObject);

begin

if length(Edit2.text)>0 then Edit3.ReadOnly:=False; end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

case Key of

'0'..'9': ;

#8 : ;

else Key :=Chr(0);

end;

If Length(Edit2.Text)<1 then

case Key of

'1'..'9': ;

else Key :=Chr(0); end; end;

procedure TForm1.Edit3Change(Sender: TObject);

begin

stringgrid1.options:=stringgrid1.options+[goEditing];

if length(Edit3.text)=0 then StringGrid1.RowCount:=2 else StringGrid1.RowCount:=1+strtoint(Edit3.text);

for i:=1 to StringGrid1.RowCount-1 do

if i<=9 then StringGrid1.cells[0,i]:='0'+inttostr(i) else StringGrid1.cells[0,i]:=inttostr(i);

StringGrid1.Visible:=True;

end;

procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);

begin

If Length(Edit3.Text)<1 then

case Key of

'1'..'9': ;

else Key :=Chr(0);

end;

case Key of

'0'..'9': ;

#8 : ;

else Key :=Chr(0); end; end;

procedure TForm1.FormCreate(Sender: TObject);

begin

with StringGrid1 do

begin

cells[0,0]:='№ Цеха';

cells[1,0]:='Рентабельность, %';

cells[2,0]:='Продолжительность оборота, дней';

f[1]:=199.5; f[16]:=3.63;

f[2]:=19; f[17]:=3.59;

f[3]:=9.55; f[18]:=3.55;

f[4]:=6.94; f[19]:=3.52;

f[5]:=5.79; f[20]:=3.49;

f[6]:=5.14; f[21]:=3.47;

f[7]:=4.74; f[22]:=3.44;

f[8]:=4.46; f[23]:=3.42;

f[9]:=4.26; f[24]:=3.40;

f[10]:=4.1; f[25]:=3.38;

f[11]:=3.98; f[26]:=3.37;

f[12]:=3.88; f[27]:=3.35;

f[13]:=3.8; f[28]:=3.34;

f[14]:=3.74; f[29]:=3.33;

f[15]:=3.68; f[30]:=3.32; end; end;

procedure TForm1.StringGrid1GetEditMask(Sender: TObject; ACol, ARow: Integer;

var Value: string);

begin

Value := '!09;1; '; end;

procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);

begin

o:=0;

with StringGrid1 do

begin

for i:=1 to rowcount-1 do

if (cells[1,i]<>'') and (cells[2,i]<>'') then o:=o+1;

if o=rowcount-1 then

begin

Button1.Visible:=True;

Button3.Visible:=True;

options:=options-[goEditing];

Edit1.ReadOnly:=True;

Edit2.ReadOnly:=True;

Edit3.ReadOnly:=True;

end;

end; end; end.

28

Group 1