
- •Содержание
- •Введение
- •1 Выбор технологии, языка и среды программирования
- •2 Анализ и уточнение требований к программному продукту
- •2.1 Анализ процесса обработки информации и описание структур данных для ее хранения
- •2.1.1 Диаграмма вариантов использования
- •2.1.2 Даталогическая модель бд
- •2.2 Выбор методов и разработка основных алгоритмов решения задачи
- •3 Разработка функциональной схемы программного продукта
- •4 Проектирование классов предметной области
- •4.1 Построение диаграммы классов
- •5 Выбор стратегии тестирования и разработка тестов
- •5.1 Макеты экранных форм для ввода и вывода информации
- •Заключение
- •Список используемых источников
- •Приложение а Листинг программы
5.1 Макеты экранных форм для ввода и вывода информации
Макеты экранных форм для ввода и вывода информации представлены на рисунках 6 - 8.
Рисунок 6 - Макет экранной формы «Заполнители»
Рисунок 7 - Макет экранной формы «Цеха»
Рисунок 8 - Макет экранной формы «Быстрый поиск: Заполнители»
Заключение
В результате выполнения курсового проекта закреплены знания методов многомерного статистического анализа, получены первичные навыки проверки статистических гипотез, углублен умения разработки программных продуктов.
Решены поставленные инженерные задачи:
- разработан алгоритм проверки статистических гипотез;
- программно реализован разработанный алгоритм в среде программирования Delfi 7.
Анализ результатов работы системы проверки статистических гипотез свидетельствует о том, что мы обоснованно можем выбрать ту модель, которая наилучшим образом соответствует исходным статистическим данным, характеризующим реальное поведение исследуемой совокупности объектов, оценить надежность и точность выводов, сделанных на основании ограниченного статистического материала.
Список используемых источников
Вендеров, А.М. CASE – технологии. Современные методы и средства проектирования информационных систем / А.М. Вендеров. – М.: Финансы и статистика, 1998. – 176 с.
Бондарь А.Г., InterBase и Firebird. Практическое руководство для умных пользователей и начинающих разработчиков. – СПб.: БХВ-Петербург, 2007. – 592 с.: ил.
Зубкова Т.М., Технология разработки программного обеспечения: Учебное пособие. – Оренбург: ГОУ ОГУ, 2004. – 101 с.
Григорьев, Ю.А., Ревунков Г.И. Банки данных / Ю.А. Григорьев, Г.И. Ревунков. – М.: Изд–во МГТУ, 2002. – 320 с.
Дейт, К. Дж. Введение в системы баз данных: Пер. с англ / К.Дж. Дейт. – К.;М.; СПб.: Издательский дом «Вильямс». 2000. – 848 с.
Интегрированная аналитическая информационная система Петрозаводского государственного университета. [Электронный ресурс] – Режим доступа: WWW.URL: http://rcnit.karelia.ru/info/iais.
Конноли, Т. Базы данных: проектирование, реализация и сопровождение. Теория и практика / Т. Конноли, К. Берг, А. Страчан. – М.: Издательский дом «Вильямс», 2000. – 1120 с.
Кузнецов, С.Д. Основы современных баз данных. [Электронный ресурс] – Режим доступа: WWW.URL: http://www.citforum.ru/ database/osbd/ contents.shtml
Фаронов В.В. Delphi. Программирование на языке высокого уровня: Учебник для вузов — СПб.: Питер, 2004. – 640 с.: ил.
Конопка Р. Создание оригинальных компонент в среде Delphi/Пер. с англ. Рей Конопка. – К.: НИПФ «ДиаСофтЛтд», 1996.
Технология разработки программного обеспечения. Учебное пособие. / С. Орлов. – Спб.: Питер, 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.