Программная система учета и анализа товарооборота на ИПТД "Скарлет"

Автоматизация учета и анализа товарооборота на предприятии. Разработка архитектуры программной системы. Рассмотрение физической модели базы данных, алгоритма программы. Прогнозирование уровня продажи товаров в программном средстве Borland C++ 6.0.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 01.05.2015
Размер файла 1,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Скорость переноса облака зараженного воздуха, при инверсии и скорости ветра 4 м/с, равна 21 км/ч.

Скорость переноса облака зараженного воздуха, при изотермии и скорости ветра 4 м/с, равна 24 км/ч.

Скорость переноса облака зараженного воздуха, при конвекции и скорости ветра 4 м/с, равна 28 км/ч.

Определяем время подхода облака зараженного воздуха t, час по формуле 5.4:

t = R / W, (5.4)

где R - расстояние от места аварии, 5 км;

W - скорость переноса облака, км/ч.

- при инверсии: t = 5 / 21 = 0,24 часа,

- при изотермии: t = 5 / 24 = 0,2 часа,

- при конвекции: t = 5 / 28 = 0,18 часа.

6) Определяем время поражающего действия хлора

Время поражающего действия хлора при скорости ветра 1 м/с, равно 1,3 час. Поправочный коэффициент при скорости ветра 4 м/с, равен 0,43.

Время поражающего действия хлора составит: 1,3 · 0,43 = 0,6 час (36мин).

Таблица 5.2 Результаты оценки химической обстановки

Источник заражения

Тип АХОВ

Кол-во АХОВ, т

Глубина зоны заражения, км

Общая площадь зоны заражения, км2

Разрушенная емкость

хлор

10

при инверсии: 18,62 при изотермии: 3,5 при конвекции: 0,8

при инверсии: 5,6 при изотермии: 0,9 при конвекции: 0,5

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

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

Заключение

В современной жизни трудно представить себе организацию, не имеющую на вооружении, в сфере своей деятельности, вычислительной техники. Использование ЭВМ упрощает, ускоряет и упорядочивает работу сотрудников организаций самых различных видов деятельности.

В выпускной квалификационной работе решены следующие инженерные задачи:

- разработана архитектура ПС;

- реализовано функциональное назначение;

- спроектирована база данных;

- разработан алгоритм решения задачи;

- разработана сопровождающая документация;

- оценен экономический эффект от внедрения ПС.

Разработанная «Программная система учета и анализа товарооборота на предприятии ИПТД «Скарлет» выполняет все функции, которые на нее были возложены, соответствует требованиям эргономичности интерфейса, легко может быть модифицирована в сторону расширения функциональных возможностей. Отвечает современным требованиям, предъявляемым к прикладным программам, ориентированным на реализацию запросов пользователя.

Для разработки программного комплекса использовался Borland C++ 6.0. Для написания базы данных использовался InterBase 7.5.

Список использованных источников

1 [http://dlc-gw.edu.yar.ru] - Ярославский областной Центр Дистанционного Обучения. Секция информатики.

2 [http://www.lira.com.ua/products/3] - Программные системы.

3 Андерсон Т. Введение в многомерный статистический анализ. -М.: Физматгиз, 1963.

4 [http://www.ibase.ru] - Официальный сайт InterBase

5 Скляр А.Я., Введение в InterBase [Текст]. - М.: Горячая линия - Телеком, 2002 -517с.: ил.

6 Архангельский А.Я.,«Приемы программирования в С++Builder 6 и 2006» - М.: ЗАО «Издательство БИНОМ», 2004. - 1152с.

7 Волкова Т.В., «Проектирование и создание БД» - Оренбург: ГОУ ОГУ, 2006. -- 140 с..

8 Карпова Т.С., Базы данных: модели разработка, реализация. - СПб.: Питер, 2001. - 304 с.

9 Послед Б.С., Borland C++ Builder 6. Разработка приложений баз данных -- СПб.: ООО «ДиаСофтЮП», 2003 -- 320 с.

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

11 Бобровский С.И.,- Delphi 7-Учебный курс_-- СПб.: Питер, 2004. -- 736 С.: ил.

12 Рахматуллин Р.Р. Методические указания «Выполнение организационно-экономической части дипломных проектов»/ Тарасов В.Н, Коваленко О.В.- Оренбург: ОГУ, 1998. - 45с.

13 Мотузко Ф.Я. «Охрана труда», М.: Высшая школа, 1989. - 336с

14 Арустамов Э.Я., «Безопасность жизнедеятельности» - М.: Издательско-торговая корпорация «Дашков и К», 2004. - 496 с.

15 Атаманюк В.Г., Гражданская оборона: Учебник для вузов - М.: Высшая школа, 1986. - 207 с.

16 СНиП 23-05-95. Естественное и искусственное освещение. - Введ. с 20.04.95 - М.: Минстрой России, 1995. - 35с.

17 ГОСТ 12.1.003-99 Шум, общие требования безопасности

18 ГОСТ 19.402-78. Описание программы

19 ГОСТ 19.301-79. Программа и методика испытаний

20 ГОСТ 19.404-79. Пояснительная записка

21 ГОСТ 19.503-79. Руководство системному программисту

22 ГОСТ 19.504-79. Руководство программиста

23 ГОСТ 19.505-79. Руководство оператору

24 ГОСТ 19.105-78 ЕСПД. Состав и структура программного документа

25 ГОСТ 19.106-78 ЕСПД. Требования к программным документам, выполненным печатным способом

26 ГОСТ 19.102-77 Стадии разработки ПО

27 ГОСТ 19.101-77. Виды программных документов

Приложение А

SQL-скрипты объектов БД

SET SQL DIALECT 3;

/* CREATE DATABASE '127.0.0.1/gds.\BDOPTTORG.gdb' PAGE_SIZE 4096

DEFAULT CHARACTER SET */

/* Table: ADRES, Owner: SYSDBA */

CREATE TABLE "ADRES"

(

"KOD" INTEGER NOT NULL,

"N_DOM" INTEGER,

"N_KORP" INTEGER,

"N_OFICE_KV" INTEGER,

"KOD_UL" INTEGER NOT NULL,

"KOD_NAS_P" INTEGER NOT NULL,

"KOD_STR_ED" INTEGER NOT NULL,

PRIMARY KEY ("KOD")

);

/* Table: DOK_O_POST_TOV, Owner: SYSDBA */

CREATE TABLE "DOK_O_POST_TOV"

(

"NOMER" INTEGER NOT NULL,

"DATA" DATE NOT NULL,

"KOD_KONT_O_RAB" INTEGER NOT NULL,

"KOD_STR_ED1" INTEGER,

"KOD_STR_ED2" INTEGER,

PRIMARY KEY ("NOMER")

);

/* Table: DOK_O_RASH, Owner: SYSDBA */

CREATE TABLE "DOK_O_RASH"

(

"NOMER" INTEGER NOT NULL,

"DATA" DATE NOT NULL,

"KOD_STR_ED1" INTEGER NOT NULL,

"KOD_STR_ED2" INTEGER NOT NULL,

"KOD_KONTR_O_RAB" INTEGER NOT NULL,

"NOMER_FIZ_LLICO" INTEGER,

PRIMARY KEY ("NOMER")

);

/* Table: DOLZHNOST, Owner: SYSDBA */

CREATE TABLE "DOLZHNOST"

(

"KOD" INTEGER NOT NULL,

"NAZV" VARCHAR(50),

"KR_NAZV" VARCHAR(30),

PRIMARY KEY ("KOD")

);

/* Table: ED_IZM, Owner: SYSDBA */

CREATE TABLE "ED_IZM"

(

"KOD" INTEGER NOT NULL,

"NAZV" VARCHAR(50),

"KR_NAZV" VARCHAR(30),

PRIMARY KEY ("KOD")

);

/* Table: FIZ_LICO, Owner: SYSDBA */

CREATE TABLE "FIZ_LICO"

(

"NOMER" INTEGER NOT NULL,

"FAM" VARCHAR(50),

"IMYA" VARCHAR(30),

"OTCH" VARCHAR(50),

"N_SER_PASP" INTEGER,

"N_PASP" INTEGER,

PRIMARY KEY ("NOMER")

);

/* Table: KONTR_O_RAB, Owner: SYSDBA */

CREATE TABLE "KONTR_O_RAB"

(

"KOD" INTEGER NOT NULL,

"DATA_N" DATE NOT NULL,

"DATA_OK" DATE,

"KOD_STR_ED1" INTEGER,

"KOD_STR_ED2" INTEGER,

"KOD_DOLZ" INTEGER NOT NULL, ,

"NOMER_FIZ_LICO" INTEGER,

"KOD_SOD" INTEGER NOT NULL,

PRIMARY KEY ("KOD")

);

/* Table: NAS_PUNKT, Owner: SYSDBA */

CREATE TABLE "NAS_PUNKT"

(

"KOD" INTEGER NOT NULL,

"NAZV" VARCHAR(50),

"KOD_TIPA_NAS_P" INTEGER NOT NULL,

PRIMARY KEY ("KOD")

);

/* Table: POZIC_DOK_O_POST_TOV, Owner: SYSDBA */

CREATE TABLE "POZIC_DOK_O_POST_TOV"

(

"NOMER" INTEGER NOT NULL,

"KOL_VO" INTEGER,

"CENA_ED" INTEGER,

"NOMER_DOK_O_POST" INTEGER NOT NULL,

"KOD_TOV" INTEGER NOT NULL,

"ED_IZM" INTEGER NOT NULL,

"ED_IZM2" INTEGER NOT NULL,

PRIMARY KEY ("NOMER")

);

/* Table: POZIC_DOK_O_RASH, Owner: SYSDBA */

CREATE TABLE "POZIC_DOK_O_RASH"

(

"NOMER" INTEGER NOT NULL,

"KOL_VO" INTEGER,

"CENA_ED" INTEGER,

"NOMER_DOK_O_RASH" INTEGER NOT NULL,

"KOD_TOV" INTEGER NOT NULL,

"ED_IZM1" INTEGER NOT NULL,

"ED_IZM2" INTEGER NOT NULL,

PRIMARY KEY ("NOMER")

);

/* Table: SOD_KONT, Owner: SYSDBA */

CREATE TABLE "SOD_KONT"

(

"KOD" INTEGER NOT NULL,

"SOD" BLOB SUB_TYPE TEXT SEGMENT SIZE 40,

PRIMARY KEY ("KOD")

);

/* Table: STR_ED_UR_LICO, Owner: SYSDBA */

CREATE TABLE "STR_ED_UR_LICO"

(

"KOD" INTEGER NOT NULL,

"NAZV" VARCHAR(50),

"KR_NAZV" VARCHAR(30),

"KOD_TIP_STR_ED" INTEGER NOT NULL,

PRIMARY KEY ("KOD")

);

/* Table: TEL, Owner: SYSDBA */

CREATE TABLE "TEL"

(

"KOD" INTEGER NOT NULL,

"N_TEL" INTEGER,

"KOD_TIP_TEL" INTEGER NOT NULL,

"KOD_STR_ED" INTEGER,

"NOMER_FIZ_LICO" INTEGER,

PRIMARY KEY ("KOD")

);

/* Table: TIP_NAS_PUNKTA, Owner: SYSDBA */

CREATE TABLE "TIP_NAS_PUNKTA"

(

"KOD" INTEGER NOT NULL,

"NAZV" VARCHAR(50),

"KR_NAZV" VARCHAR(30),

PRIMARY KEY ("KOD")

);

/* Table: TIP_STR_ED, Owner: SYSDBA */

CREATE TABLE "TIP_STR_ED"

(

"KOD" INTEGER NOT NULL,

"NAZV" VARCHAR(50),

"KR_NAZV" VARCHAR(30),

PRIMARY KEY ("KOD")

);

/* Table: TIP_TEL, Owner: SYSDBA */

CREATE TABLE "TIP_TEL"

(

"KOD" INTEGER NOT NULL,

"NAZV" VARCHAR(50),

PRIMARY KEY ("KOD")

);

/* Table: TIP_ULICI, Owner: SYSDBA */

CREATE TABLE "TIP_ULICI"

(

"KOD" INTEGER NOT NULL,

"NAZV" VARCHAR(50),

"KR_NAZV" VARCHAR(30),

PRIMARY KEY ("KOD")

);

/* Table: TOVAR, Owner: SYSDBA */

CREATE TABLE "TOVAR"

(

"KOD" INTEGER NOT NULL,

"NAIM" VARCHAR(80),

"KOD_VIDA" INTEGER NOT NULL,

PRIMARY KEY ("KOD")

);

/* Table: ULICA, Owner: SYSDBA */

CREATE TABLE "ULICA"

(

"KOD" INTEGER NOT NULL,

"NAZV" VARCHAR(50),

"KOD_TIPA_UL" INTEGER NOT NULL,

PRIMARY KEY ("KOD")

);

/* Table: USERS, Owner: SYSDBA */

CREATE TABLE "USERS"

(

"KOD" INTEGER NOT NULL,

"NIC" VARCHAR(34),

"PAR" INTEGER

);

/* Table: VID_TOVARA, Owner: SYSDBA */

CREATE TABLE "VID_TOVARA"

(

"KOD" INTEGER NOT NULL,

"NAZV" VARCHAR(80) NOT NULL,

PRIMARY KEY ("KOD")

);

ALTER TABLE "ADRES" ADD FOREIGN KEY ("KOD_UL") REFERENCES "ULICA" ("KOD");

ALTER TABLE "ADRES" ADD FOREIGN KEY ("KOD_NAS_P") REFERENCES "NAS_PUNKT" ("KOD");

ALTER TABLE "ADRES" ADD FOREIGN KEY ("KOD_STR_ED") REFERENCES "STR_ED_UR_LICO" ("KOD");

ALTER TABLE "DOK_O_POST_TOV" ADD FOREIGN KEY ("KOD_STR_ED1") REFERENCES "STR_ED_UR_LICO" ("KOD");

ALTER TABLE "DOK_O_POST_TOV" ADD FOREIGN KEY ("KOD_STR_ED2") REFERENCES "STR_ED_UR_LICO" ("KOD");

ALTER TABLE "DOK_O_POST_TOV" ADD FOREIGN KEY ("KOD_KONT_O_RAB") REFERENCES "KONTR_O_RAB" ("KOD");

ALTER TABLE "DOK_O_RASH" ADD FOREIGN KEY ("NOMER_FIZ_LLICO") REFERENCES "ED_IZM" ("KOD");

ALTER TABLE "DOK_O_RASH" ADD FOREIGN KEY ("KOD_STR_ED1") REFERENCES "STR_ED_UR_LICO" ("KOD");

ALTER TABLE "DOK_O_RASH" ADD FOREIGN KEY ("KOD_STR_ED2") REFERENCES "STR_ED_UR_LICO" ("KOD");

ALTER TABLE "DOK_O_RASH" ADD FOREIGN KEY ("KOD_KONTR_O_RAB") REFERENCES "KONTR_O_RAB" ("KOD");

ALTER TABLE "KONTR_O_RAB" ADD FOREIGN KEY ("KOD_STR_ED1") REFERENCES "STR_ED_UR_LICO" ("KOD");

ALTER TABLE "KONTR_O_RAB" ADD FOREIGN KEY ("KOD_STR_ED2") REFERENCES "STR_ED_UR_LICO" ("KOD");

ALTER TABLE "KONTR_O_RAB" ADD FOREIGN KEY ("KOD_DOLZ") REFERENCES "DOLZHNOST" ("KOD");

ALTER TABLE "KONTR_O_RAB" ADD FOREIGN KEY ("NOMER_FIZ_LICO") REFERENCES "FIZ_LICO" ("NOMER");

ALTER TABLE "KONTR_O_RAB" ADD FOREIGN KEY ("KOD_SOD") REFERENCES "SOD_KONT" ("KOD");

ALTER TABLE "NAS_PUNKT" ADD FOREIGN KEY ("KOD_TIPA_NAS_P") REFERENCES "TIP_NAS_PUNKTA" ("KOD");

ALTER TABLE "POZIC_DOK_O_POST_TOV" ADD FOREIGN KEY ("ED_IZM") REFERENCES "ED_IZM" ("KOD");

ALTER TABLE "POZIC_DOK_O_POST_TOV" ADD FOREIGN KEY ("ED_IZM2") REFERENCES "ED_IZM" ("KOD");

ALTER TABLE "POZIC_DOK_O_POST_TOV" ADD FOREIGN KEY ("NOMER_DOK_O_POST") REFERENCES "DOK_O_POST_TOV" ("NOMER");

ALTER TABLE "POZIC_DOK_O_POST_TOV" ADD FOREIGN KEY ("KOD_TOV") REFERENCES "TOVAR" ("KOD");

ALTER TABLE "POZIC_DOK_O_RASH" ADD FOREIGN KEY ("NOMER_DOK_O_RASH") REFERENCES "DOK_O_RASH" ("NOMER");

ALTER TABLE "POZIC_DOK_O_RASH" ADD FOREIGN KEY ("KOD_TOV") REFERENCES "TOVAR" ("KOD");

ALTER TABLE "POZIC_DOK_O_RASH" ADD FOREIGN KEY ("ED_IZM1") REFERENCES "ED_IZM" ("KOD");

ALTER TABLE "POZIC_DOK_O_RASH" ADD FOREIGN KEY ("ED_IZM2") REFERENCES "ED_IZM" ("KOD");

ALTER TABLE "STR_ED_UR_LICO" ADD FOREIGN KEY ("KOD_TIP_STR_ED") REFERENCES "STR_ED_UR_LICO" ("KOD");

ALTER TABLE "TEL" ADD FOREIGN KEY ("KOD_TIP_TEL") REFERENCES "TIP_TEL" ("KOD");

ALTER TABLE "TEL" ADD FOREIGN KEY ("KOD_STR_ED") REFERENCES "STR_ED_UR_LICO" ("KOD");

ALTER TABLE "TEL" ADD FOREIGN KEY ("NOMER_FIZ_LICO") REFERENCES "FIZ_LICO" ("NOMER");

ALTER TABLE "TOVAR" ADD FOREIGN KEY ("KOD_VIDA") REFERENCES "VID_TOVARA" ("KOD");

ALTER TABLE "ULICA" ADD FOREIGN KEY ("KOD_TIPA_UL") REFERENCES "TIP_ULICI" ("KOD");

/* Triggers only will work for SQL triggers */

CREATE TRIGGER “ADRES TR” FOR “ADRES”

ACTIVE BEFORE INSERT POSITION 0

as

BEGIN

IF (NEW.NOMER IS NULL) THEN

NEW.NOMER = GEN_ID(ADRES,1);

END ;

CREATE TRIGGER “DOGOVOR TR” FOR “DOGOVOR”

ACTIVE BEFORE INSERT POSITION 0

as

BEGIN

IF (NEW.NOMER IS NULL) THEN

NEW.NOMER = GEN_ID(DOGOVOR,1);

END ;

CREATE TRIGGER “CREATE_TR_DOL” FOR “DOLZHOST”

ACTIVE BEFORE INSERT POSITION 0

as

begin

New.kod=gen_id(DOLZHOST_KOD_Gen,1);

end ;

CREATE TRIGGER “TR_ED_IZM” FOR “EDIZM”

ACTIVE BEFORE INSERT POSITION 0

as

BEGIN

IF (NEW.KOD IS NULL) THEN

NEW.KOD = GEN_ID(ED_IZM,1);

END ;

CREATE TRIGGER “FIZ_LICO” FOR “FIZ_LICO”

ACTIVE BEFORE INSERT POSITION 0

as

BEGIN

IF (NEW.NOMER IS NULL) THEN

NEW.NOMER = GEN_ID(FIZ_LICO,1);

END ;

CREATE TRIGGER “NAKL TR” FOR “NAKLADNAYA”

ACTIVE BEFORE INSERT POSITION 0

as

BEGIN

IF (NEW.NOMER IS NULL) THEN

NEW.NOMER = GEN_ID(NAKLADNAYA,1);

END ;

CREATE TRIGGER “NAS_PUNKT TR” FOR “NAS_PUNKT”

ACTIVE BEFORE INSERT POSITION 0

as

BEGIN

IF (NEW.KOD IS NULL) THEN

NEW.KOD = GEN_ID(NAS_PUNKT,1);

END ;

CREATE TRIGGER “POL_F/L TR” FOR “POL_FIZ_LICA”

ACTIVE BEFORE INSERT POSITION 0

as

BEGIN

IF (NEW.KOD IS NULL) THEN

NEW.KOD = GEN_ID(POL_F_L,1);

END;

CREATE TRIGGER “POZ_NAKL” FOR “POZICYA_NAKLADNOY”

ACTIVE BEFORE INSERT POSITION 0

as

BEGIN

IF (NEW.NOMER IS NULL) THEN

NEW.NOMER = GEN_ID(POZ_NAKL,1);

END ;

CREATE TRIGGER “PROIZV_TR” FOR “PROIZVODSVO”

ACTIVE BEFORE INSERT POSITION 0

as

BEGIN

IF (NEW.KOD IS NULL) THEN

NEW.KOD = GEN_ID(PROIZV,1);

END ;

CREATE TRIGGER “STANDART_TR” FOR “STANDART”

ACTIVE BEFORE INSERT POSITION 0

as

BEGIN

IF (NEW.KOD IS NULL) THEN

NEW.KOD = GEN_ID(STANDART,1);

END;

CREATE TRIGGER “TIP_SRT_ED TR” FOR “TIP_STR_ED”

ACTIVE BEFORE INSERT POSITION 0

as

BEGIN

IF (NEW.KOD IS NULL) THEN

NEW.KOD = GEN_ID(TIP_STR_ED,1);

END ;

CREATE TRIGGER “TIP_UL TR” FOR “TIP_ULICI”

ACTIVE BEFORE INSERT POSITION 0

as

BEGIN

IF (NEW.KOD IS NULL) THEN

NEW.KOD = GEN_ID(TIP_UL,1);

END ;

CREATE TRIGGER “ULICA TR” FOR “ULICA”

ACTIVE BEFORE INSERT POSITION 0

as

BEGIN

IF (NEW.KOD IS NULL) THEN

NEW.KOD = GEN_ID(ULICA,1);

END ;

CREATE TRIGGER “VID_PROD TR” FOR “VID_PRODUKCII”

ACTIVE BEFORE INSERT POSITION 0

as

BEGIN

IF (NEW.KOD IS NULL) THEN

NEW.KOD = GEN_ID(VID_PROD,1);

END ;

COMMIT WORK ;

ALTER TABLE " POZIC_DOK_O_POST_TOV " ADD

CHECK(NOMER>0);

ALTER TABLE "POZIC_DOC_O_PROD" ADD

CHECK(KODIN>0);

ALTER TABLE "DOK_O_RASH" ADD

CHECK(NOMER>0);

ALTER TABLE "DOK_O_POST" ADD

CHECK(KODE>0);

ALTER TABLE "TIP_UR_LICA" ADD

CHECK(KOD>0);

ALTER TABLE "DOKUMPOST" ADD

CHECK(NOMER>0);

ALTER TABLE "" ADD

CHECK(KOD>0);

ALTER TABLE "DOK_O_POST" ADD

CHECK(KODFKOMU>0);

ALTER TABLE " POZIC_DOC_O_POST " ADD

CHECK(NOMER>0);

ALTER TABLE " POZIC_DOC_O_POST " ADD

CHECK(KODIN>0);

ALTER TABLE " POZIC_DOC_O_POST " ADD

CHECK(KODD>0);

ALTER TABLE "POZIC_DOC_O_POST" ADD

CHECK(KODEIK>0);

ALTER TABLE "POZICPOST" ADD

CHECK(KODEINC>0);

ALTER TABLE "POZICPOST" ADD

CHECK(KODEIC>0);

ALTER TABLE "POL_FIZ_LICA" ADD

CHECK(KOD>0);

ALTER TABLE "UR_LICO" ADD

CHECK(KOD>0);

ALTER TABLE "" ADD

CHECK(KODT>0);

ALTER TABLE "TIP_ULICI" ADD

CHECK(KOD>0);

ALTER TABLE "ULICA" ADD

CHECK(KOD>0);

ALTER TABLE "ULICA" ADD

CHECK(KODTIPA>0);

ALTER TABLE "TIP_NAS_PUNKTA" ADD

CHECK(KOD>0);

ALTER TABLE "NAS_PUNKT" ADD

CHECK(KOD>0);

ALTER TABLE "NAS_PUNKT" ADD

CHECK(KODTIPA>0);

ALTER TABLE "ADRES" ADD

CHECK(NOMER>0);

ALTER TABLE "ADRES" ADD

CHECK(DOM>0);

ALTER TABLE "ADRES" ADD

CHECK(KODUL>0);

ALTER TABLE "ADRES" ADD

CHECK(KODNP>0);

ALTER TABLE "FIZ_LICO" ADD

CHECK(NOMER>0);

Приложение Б (обязательное)

Текст программы

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm2 *Form2;

//---------------------------------------------------------------------------

__fastcall TForm2::TForm2(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm2::SpeedButton3Click(TObject *Sender)

{

DataSource1->DataSet->Prior();

}

//---------------------------------------------------------------------------

void __fastcall TForm2::SpeedButton4Click(TObject *Sender)

{

DataSource1->DataSet->First();

}

//---------------------------------------------------------------------------

void __fastcall TForm2::SpeedButton2Click(TObject *Sender)

{

DataSource1->DataSet->Next();

}

//---------------------------------------------------------------------------

void __fastcall TForm2::SpeedButton1Click(TObject *Sender)

{

DataSource1->DataSet->Last();

}

//---------------------------------------------------------------------------

void __fastcall TForm2::Button1Click(TObject *Sender)

{

DataSource1->DataSet->Append();

}

//---------------------------------------------------------------------------

void __fastcall TForm2::Button2Click(TObject *Sender)

{

DataSource1->DataSet->Edit();

}

//---------------------------------------------------------------------------

void __fastcall TForm2::Button4Click(TObject *Sender)

{

DataSource1->DataSet->Cancel();

}

//---------------------------------------------------------------------------

void __fastcall TForm2::BitBtn1Click(TObject *Sender)

{

if (DBEdit1->Text==Edit1->Text)

{

Form1->Show();

Form2->Visible=false ;

}

else

MessageBoxA(0, "Вы ввели не правильный пароль, повторите попытку"," Пароль " , MB_OK);

}

//--------------------------------------------------------------------------

void __fastcall TForm2::BitBtn2Click(TObject *Sender)

{

Form1->Close();

Form2->Close();

}

//sql Обращение

select KOD, KOD_VIDA, NAIM from TOVAR

select * from ED_IZM

select * from DOLZHNOST

select * from FIZ_LICO

select * from VID_TOVARA

select * from TOVAR

select * from KONTR_O_RAB

select * from STR_ED_UR_LICO

select NOMER, FAM, IMYA, OTCH, N_SER_PASP, N_PASP from FIZ_LICO

select * from POZIC_DOK_O_POST_TOV

select * from DOK_O_POST_TOV

select * from TIP_ULICI

select * from ULICA

select * from TIP_NAS_PUNKTA

select * from NAS_PUNKT

select * from TIP_TEL

select * from POZIC_DOK_O_POST_TOV

#include <vcl.h>

#pragma hdrstop

#include "Unit3.h"

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm3 *Form3;

//---------------------------------------------------------------------------

__fastcall TForm3::TForm3(TComponent* Owner)

: TForm(Owner)

{

} //---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit4.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm4 *Form4;

//---------------------------------------------------------------------------

__fastcall TForm4::TForm4(TComponent* Owner)

: TForm(Owner)

{

} //---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit5.h"

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm5 *Form5;

//---------------------------------------------------------------------------

__fastcall TForm5::TForm5(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include <Math.h>

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#include "Unit4.h"

#include "Unit5.h"

#include "Unit6.h"

#include "Unit7.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

DataSource1->DataSet->Append();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

DataSource1->DataSet->Edit();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton4Click(TObject *Sender)

{

DataSource1->DataSet->First();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton3Click(TObject *Sender)

{

DataSource1->DataSet->Prior();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton2Click(TObject *Sender)

{

DataSource1->DataSet->Next();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton1Click(TObject *Sender)

{

DataSource1->DataSet->Last();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)

{

DataSource1->DataSet->Cancel();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)

{

Form2->Show();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button6Click(TObject *Sender)

{

IBTable16->ApplyUpdates();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::IBClientDataSet4CalcFields(TDataSet *DataSet)

{

int s1,s2;

s1=IBClientDataSet4->FieldByName("KOD_TOV")->AsInteger;

s2=IBClientDataSet5->FieldByName("KOD_TOV")->AsInteger;

if(s1==s2)

IBClientDataSet4->FieldByName("ost")->AsInteger=(IBClientDataSet4->FieldByName("KOL_VO")->AsInteger-IBClientDataSet5->FieldByName("KOL_VO")->AsInteger);

if(s1!=s2) IBClientDataSet4->FieldByName("ost")->AsInteger=IBClientDataSet4->FieldByName("KOL_VO")->AsInteger;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button9Click(TObject *Sender)

{

IBClientDataSet1->ApplyUpdates(-1);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

IBClientDataSet1->ApplyUpdates(-1);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button11Click(TObject *Sender)

{

if (RadioButton1->Checked) IBTable14->ApplyUpdates();

if (RadioButton2->Checked) IBTable15->ApplyUpdates();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button12Click(TObject *Sender)

{

IBClientDataSet6->ApplyUpdates(-1);

IBClientDataSet20->ApplyUpdates(-1);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button13Click(TObject *Sender)

{

IBClientDataSet9->ApplyUpdates(-1);

IBClientDataSet10->ApplyUpdates(-1);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button14Click(TObject *Sender)

{

IBClientDataSet11->ApplyUpdates(-1);

IBClientDataSet12->ApplyUpdates(-1);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button15Click(TObject *Sender)

{

IBClientDataSet15->ApplyUpdates(-1);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button16Click(TObject *Sender)

{

IBClientDataSet13->ApplyUpdates(-1);

IBClientDataSet14->ApplyUpdates(-1);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button18Click(TObject *Sender)

{

IBClientDataSet17->ApplyUpdates(-1);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn1Click(TObject *Sender)

{

p=3;

SG->Cells[0][0]="X1(шт.)";

SG->Cells[1][0]="X2(руб.)";

SG->Cells[2][0]="Y(шт.)";

n=0;

Word year3,month3,day3,year4,month4,day4;

// январь

IBTable3->Open();

IBTable3->First();

while (!IBTable3->Eof)

{

DecodeDate(IBTable3->FieldValues["DATA"],year3,month3,day3);

if (month3==1)

{

X1[n][0] = IBTable3->FieldValues["NOMER"];

n++;

}

IBTable3->Next();

}

// февраль

n=0;

month3=0;

IBTable3->Open();

IBTable3->First();

while (!IBTable3->Eof)

{

DecodeDate(IBTable3->FieldValues["DATA"],year3,month3,day3);

if (month3==2)

{

X1[n][1] = IBTable3->FieldValues["NOMER"];

n++;

}

IBTable3->Next();

}

//март

n=0;

month3=0;

IBTable3->Open();

IBTable3->First();

while (!IBTable3->Eof)

{

DecodeDate(IBTable3->FieldValues["DATA"],year3,month3,day3);

if (month3==3)

{

X1[n][2] = IBTable3->FieldValues["NOMER"];

n++;

}

IBTable3->Next();

}

// апрель

n=0;

month3=0;

IBTable3->Open();

IBTable3->First();

while (!IBTable3->Eof)

{

DecodeDate(IBTable3->FieldValues["DATA"],year3,month3,day3);

if (month3==4)

{

X1[n][3] = IBTable3->FieldValues["NOMER"];

n++;

}

IBTable3->Next();

}

// май

n=0;

month3=0;

IBTable3->Open();

IBTable3->First();

while (!IBTable3->Eof)

{

DecodeDate(IBTable3->FieldValues["DATA"],year3,month3,day3);

if (month3==5)

{

X1[n][4] = IBTable3->FieldValues["NOMER"];

n++;

}

IBTable3->Next();

}

// июнь

n=0;

month3=0;

IBTable3->Open();

IBTable3->First();

while (!IBTable3->Eof)

{

DecodeDate(IBTable3->FieldValues["DATA"],year3,month3,day3);

if (month3==6)

{

X1[n][5] = IBTable3->FieldValues["NOMER"];

n++;

}

IBTable3->Next();

}

// июль

n=0;

month3=0;

IBTable3->Open();

IBTable3->First();

while (!IBTable3->Eof)

{

DecodeDate(IBTable3->FieldValues["DATA"],year3,month3,day3);

if (month3==7)

{

X1[n][6] = IBTable3->FieldValues["NOMER"];

n++;

}

IBTable3->Next();

}

// август

n=0;

month3=0;

IBTable3->Open();

IBTable3->First();

while (!IBTable3->Eof)

{

DecodeDate(IBTable3->FieldValues["DATA"],year3,month3,day3);

if (month3==8)

{

X1[n][7] = IBTable3->FieldValues["NOMER"];

n++;

}

IBTable3->Next();

}

// сентябрь

n=0;

month3=0;

IBTable3->Open();

IBTable3->First();

while (!IBTable3->Eof)

{

DecodeDate(IBTable3->FieldValues["DATA"],year3,month3,day3);

if (month3==9)

{

X1[n][8] = IBTable3->FieldValues["NOMER"];

n++;

}

IBTable3->Next();

}

// октябрь

n=0;

month3=0;

IBTable3->Open();

IBTable3->First();

while (!IBTable3->Eof)

{

DecodeDate(IBTable3->FieldValues["DATA"],year3,month3,day3);

if (month3==10)

{

X1[n][9] = IBTable3->FieldValues["NOMER"];

n++;

}

IBTable3->Next();

}

// ноябрь

n=0;

month3=0;

IBTable3->Open();

IBTable3->First();

while (!IBTable3->Eof)

{

DecodeDate(IBTable3->FieldValues["DATA"],year3,month3,day3);

if (month3==11)

{

X1[n][10] = IBTable3->FieldValues["NOMER"];

n++;

}

IBTable3->Next();

}

// декабрь

n=0;

month3=0;

IBTable3->Open();

IBTable3->First();

while (!IBTable3->Eof)

{

DecodeDate(IBTable3->FieldValues["DATA"],year3,month3,day3);

if (month3==12)

{

X1[n][11] = IBTable3->FieldValues["NOMER"];

n++;

}

IBTable3->Next();

}

// сумма за январь

n=0;

float Sum1=0, Srcena1=0;

IBTable2->Open() ;

IBTable2->First() ;

while (!IBTable2->Eof)

{

if (IBTable2->FieldValues["NOMER_DOK_O_RASH"]==X1[n][0])

{

Sum1 = IBTable2->FieldValues["KOL_VO"]+Sum1;

Srcena1=Srcena1+IBTable2->FieldValues["CENA_ED"];

n++;

}

IBTable2->Next();

}

if (Srcena1!=0) Srcena1=Srcena1/n;

// за февраль

n=0;

float Srcena2=0,Sum2=0;

IBTable2->Open() ;

IBTable2->First() ;

while (!IBTable2->Eof)

{

if (IBTable2->FieldValues["NOMER_DOK_O_RASH"]==X1[n][1])

{

Sum2 = IBTable2->FieldValues["KOL_VO"]+Sum2;

Srcena2=Srcena2+IBTable2->FieldValues["CENA_ED"];

n++;

}

IBTable2->Next();

}

if (Srcena2!=0) Srcena2=Srcena2/n;

// март

n=0;

float Srcena3=0,Sum3=0;

IBTable2->Open() ;

IBTable2->First() ;

while (!IBTable2->Eof)

{

if (IBTable2->FieldValues["NOMER_DOK_O_RASH"]==X1[n][2])

{

Sum3 = IBTable2->FieldValues["KOL_VO"]+Sum3;

Srcena3=Srcena3+IBTable2->FieldValues["CENA_ED"];

n++;

}

IBTable2->Next();

}

if (Srcena3!=0) Srcena3=Srcena3/n;

//апрель

n=0;

float Srcena4=0,Sum4=0;

IBTable2->Open() ;

IBTable2->First() ;

while (!IBTable2->Eof)

{

if (IBTable2->FieldValues["NOMER_DOK_O_RASH"]==X1[n][3])

{

Srcena4=Srcena4+IBTable2->FieldValues["CENA_ED"];

Sum4 = IBTable2->FieldValues["KOL_VO"]+Sum4;

n++;

}

IBTable2->Next();

}

if (n!=0) Srcena4=Srcena4/n;

//май

n=0;

float Srcena5=0,Sum5=0;

IBTable2->Open() ;

IBTable2->First() ;

while (!IBTable2->Eof)

{

if (IBTable2->FieldValues["NOMER_DOK_O_RASH"]==X1[n][4])

{

Sum5 = IBTable2->FieldValues["KOL_VO"]+Sum5;

Srcena5=Srcena5+IBTable2->FieldValues["CENA_ED"];

n++;

}

IBTable2->Next();

}

if (n!=0) Srcena5=Srcena5/n; // ср.цена за месяц

// июнь

n=0;

float Srcena6=0,Sum6=0;

IBTable2->Open() ;

IBTable2->First() ;

while (!IBTable2->Eof)

{

if (IBTable2->FieldValues["NOMER_DOK_O_RASH"]==X1[n][5])

{

Sum6 = IBTable2->FieldValues["KOL_VO"]+Sum6;

Srcena6=Srcena6+IBTable2->FieldValues["CENA_ED"];

n++;

}

IBTable2->Next();

}

if (Srcena6!=0) Srcena6=Srcena6/n; // ср.цена за месяц

// июль

n=0;

float Srcena7=0,Sum7=0;

IBTable2->Open() ;

IBTable2->First() ;

while (!IBTable2->Eof)

{

if (IBTable2->FieldValues["NOMER_DOK_O_RASH"]==X1[n][6])

{

Sum7 = IBTable2->FieldValues["KOL_VO"]+Sum7;

Srcena7=Srcena7+IBTable2->FieldValues["CENA_ED"];

n++;

}

IBTable2->Next();

}

if (Srcena7!=0) Srcena7=Srcena7/n; // ср.цена за месяц

// август

n=0;

float Srcena8=0,Sum8=0;

IBTable2->Open() ;

IBTable2->First() ;

while (!IBTable2->Eof)

{

if (IBTable2->FieldValues["NOMER_DOK_O_RASH"]==X1[n][7])

{

Sum8 = IBTable2->FieldValues["KOL_VO"]+Sum8;

Srcena8=Srcena8+IBTable2->FieldValues["CENA_ED"];

n++;

}

IBTable2->Next();

}

if (Srcena8!=0) Srcena8=Srcena8/n; // ср.цена за месяц

// сентябрь

n=0;

float Srcena9=0,Sum9=0;

IBTable2->Open() ;

IBTable2->First() ;

while (!IBTable2->Eof)

{

if (IBTable2->FieldValues["NOMER_DOK_O_RASH"]==X1[n][8])

{

Sum9 = IBTable2->FieldValues["KOL_VO"]+Sum9;

Srcena9=Srcena9+IBTable2->FieldValues["CENA_ED"];

n++;

}

IBTable2->Next();

}

if (Srcena9!=0) Srcena9=Srcena9/n; // ср.цена за месяц

// октябрь

n=0;

float Srcena10=0, Sum10=0;

IBTable2->Open() ;

IBTable2->First() ;

while (!IBTable2->Eof)

{

if (IBTable2->FieldValues["NOMER_DOK_O_RASH"]==X1[n][9])

{

Sum10 = IBTable2->FieldValues["KOL_VO"]+Sum10;

Srcena10=Srcena10+IBTable2->FieldValues["CENA_ED"];

n++;

}

IBTable2->Next();

}

if (Srcena10!=0) Srcena10=Srcena10/n; // ср.цена за месяц

// ноябрь

n=0;

float Srcena11=0,Sum11=0;

IBTable2->Open() ;

IBTable2->First() ;

while (!IBTable2->Eof)

{

if (IBTable2->FieldValues["NOMER_DOK_O_RASH"]==X1[n][10])

{

Sum11 = IBTable2->FieldValues["KOL_VO"]+Sum11;

Srcena11=Srcena11+IBTable2->FieldValues["CENA_ED"];

n++;

}

IBTable2->Next();

}

if (Srcena11!=0) Srcena11=Srcena11/n; // ср.цена за месяц

// декабрь

n=0;

float Srcena12=0, Sum12=0;

IBTable2->Open() ;

IBTable2->First() ;

while (!IBTable2->Eof)

{

if (IBTable2->FieldValues["NOMER_DOK_O_RASH"]==X1[n][11])

{

Sum12 = IBTable2->FieldValues["KOL_VO"]+Sum12;

Srcena12=Srcena12+IBTable2->FieldValues["CENA_ED"];

n++;

}

IBTable2->Next();

}

if (Srcena12!=0) Srcena12=Srcena12/n; // ср.цена за месяц

// Массив Суммы товара за месяц(январь-декабрь);

Sum[0]=Sum1;

Sum[1]=Sum2;

Sum[2]=Sum3;

Sum[3]=Sum4;

Sum[4]=Sum5;

Sum[5]=Sum6;

Sum[6]=Sum7;

Sum[7]=Sum8;

Sum[8]=Sum9;

Sum[9]=Sum10;

Sum[10]=Sum11;

Sum[11]=Sum12;

// массив средней цены за месяц

Src[0]=Srcena1;

Src[1]=Srcena2;

Src[2]=Srcena3;

Src[3]=Srcena4;

Src[4]=Srcena5;

Src[5]=Srcena6;

Src[6]=Srcena7;

Src[7]=Srcena8;

Src[8]=Srcena9;

Src[9]=Srcena10;

Src[10]=Srcena11;

Src[11]=Srcena12;

// Выборка данных по дате

Word year1,month1,day1,year2,month2,day2;

DecodeDate(DateTimePicker1->Date,year1,month1,day1);

DecodeDate(DateTimePicker2->Date,year2,month2,day2);

int kol=0;

for (int i = month1; i <= month2; i++)

{

Y[kol][2]=Sum[i-1];

if(Y[kol][2]!=0)

kol++;

}

int sr=0;

for (int i = month1; i <= month2; i++)

{

XX1[sr][1]=Src[i-1];

//if (X1[sr][1]!=0)

sr++;

}

n=0;

IBTable6->Open() ;

IBTable6->First() ;

while (n!=month2)

{

{

X[n][0]= IBTable6->FieldValues["KOL_VO"];

n++;

}

IBTable6->Next();

}

int kolvo=0;

for (int j = month1; j < month2; j++)

{

SG->Cells[0][kolvo+1] = FloatToStr(X[j-1][0]);

kolvo++;

}

n=month2-month1;

for (int i = 0; i < n; i++)

SG->Cells[1][i+1] = FloatToStrF(XX1[i][1],ffFixed,7,2);

for (int j = 0; j < n; j++)

SG->Cells[2][j+1] = FloatToStr(Y[j][2]);

// Общая матрица

for (int i = 0; i <n ; i++)

Xob[i][0] = Y[i][2];

for (int i = 0; i < n; i++)

Xob[i][1] = X[i][0];

for (int i = 0; i < n; i++)

Xob[i][2] = XX1[i][1];

//Формирование единичной матрицы

for (int i = 0; i < n; i++)

Xedin[i][0] =1;

for (int i = 0; i < n; i++)

Xedin[i][1] =X[i][0];

for (int i = 0; i < n; i++)

Xedin[i][2] =XX1[i][1];

for (int i = 0; i < n; i++)

vector[i][0]=Xobsh[i][0];

}

//---------------------------------------------------------------------------

void vich(matrix A, matrix B, matrix C, int n, int m)

{

for (int i = 0; i < n; i++)

for (int j = 0; j < m; j++)

C[i][j] = A[i][j] - B[i][j];

}

//---------------------------------------------------------------------------

void mult(matrix A, matrix B, matrix C, int n, int k, int m)

{

float sum;

for (int i = 0; i < n; i++)

for (int j = 0; j < m; j++){

sum = 0;

for (int h = 0; h < k; h++)

{

sum=sum+(A[i][h] * B[h][j]);

C[i][j] = sum;

}

}

}

//---------------------------------------------------------------------------

void mult1(matrix A, matrix B, matrix C, int n, int k)

{

double sum;

for (int i = 0; i < n; i++)

{

sum = 0;

for (int h = 0; h < k;h++)

{

sum+=A[i][h] * B[h][0];

C[i][0] = sum;

}

}

}

//---------------------------------------------------------------------------

//Функция вычисления алгебраического дополнения

//элемента a[i,j] квадратной матрицы A размерностью n*n

double alg_add(matrix A, int n, int i, int j)

{

matrix A1;

double M;

int k,h;

for (k = 0; k < i; k++)

{

for (h = 0; h < j; h++)

A1[k][h] = A[k][h];

for (h = j+1; h < n; h++)

A1[k][h-1] = A[k][h];

}

for (k = i+1; k < n; k++)

{

for (h = 0; h < j; h++)

A1[k-1][h] = A[k][h];

for (h = j+1; h < n; h++)

A1[k-1][h-1] = A[k][h];

}

M = det(A1,n-1);

if ((i+j)%2 != 0) M = -M;

return M;

}

//---------------------------------------------------------------------------

//Функция вычисления определителя матрицы A размерностью n*n

double det(matrix A, int n)

{

double d;

if (n != 1)

{

d = 0;

for (int j = 0; j < n; j++)

d += A[0][j] * alg_add(A,n,0,j);

}

else d = A[0][0];

return d;

}

//---------------------------------------------------------------------------

//Функция вычисления матрицы, обратной матрице A размерностью n*n

void inv_matr(matrix A, matrix B, int n)

{

double d = det(A,n);

for (int i = 0; i < n; i++)

for (int j = 0; j < n; j++)

B[i][j] = alg_add(A,n,j,i)/d;

}

//---------------------------------------------------------------------------

void transmatr(matrix A, matrix B, int n, int p)

{

for (int i = 0; i < n; i++)

for (int j = 0; j < p; j++)

B[j][i] = A[i][j];

}

//---------------------------------------------------------------------------

void sredn(matrix Xobsh,matrix Xs,int n, int p)

{

for (int j = 0; j < p; j++){

float sum = 0;

for (int i = 0; i < n; i++)

sum += Xobsh[i][j];

Xs[j][0] = sum/float(n);

}

}

//-----------------------------------------------------------------//

void sigm(matrix Xobsh,matrix Xs,matrix S,int n,int p)

{

for (int j = 0; j < p; j++){

double sum = 0;

for (int i = 0; i < n; i++)

sum +=(Xobsh[i][j]-Xs[j][0])*(Xobsh[i][j]-Xs[j][0]);

S[j][0] = sqrt(sum/float(n));

}

}

//-----------------------------------------------------------------//

void standmatr(matrix Xobsh,matrix Xs,matrix S,matrix Z,int n,int p)

{

for (int i = 0; i < n; i++)

for (int j = 0; j < p; j++)

Z[i][j]=(Xobsh[i][j]-Xs[j][0])/S[j][0];

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button19Click(TObject *Sender)

{

IBClientDataSet18->ApplyUpdates(-1);

IBClientDataSet19->ApplyUpdates(-1);

}

//---------------------------------------------------------------------------

//Таблица Фишера

int k=1;

for (int i = 0; i < 16; i++)

{ Form4->StringGrid1->Cells[0][i+1]=k; Form4->StringGrid1->Cells[i+1][0]=k; k++; }

Form4->StringGrid1->Cells[1][1]=161; Form4->StringGrid1->Cells[2][1]=200;

Form4->StringGrid1->Cells[1][2]=18.5; Form4->StringGrid1->Cells[2][2]=19;

Form4->StringGrid1->Cells[1][3]=10.1; Form4->StringGrid1->Cells[2][3]=9.55;

Form4->StringGrid1->Cells[1][4]=7.71; Form4->StringGrid1->Cells[2][4]=6.94;

Form4->StringGrid1->Cells[1][5]=6.61; Form4->StringGrid1->Cells[2][5]=5.79;

Form4->StringGrid1->Cells[1][6]=5.99; Form4->StringGrid1->Cells[2][6]=5.14;

Form4->StringGrid1->Cells[1][7]=5.59; Form4->StringGrid1->Cells[2][7]=4.74;

Form4->StringGrid1->Cells[1][8]=5.42; Form4->StringGrid1->Cells[2][8]=4.46;

Form4->StringGrid1->Cells[1][9]=5.12; Form4->StringGrid1->Cells[2][9]=4.26;

Form4->StringGrid1->Cells[1][10]=4.96; Form4->StringGrid1->Cells[2][10]=4.10;

Form4->StringGrid1->Cells[1][11]=4.84; Form4->StringGrid1->Cells[2][11]=3.98;

Form4->StringGrid1->Cells[1][12]=4.75; Form4->StringGrid1->Cells[2][12]=3.89;

Form4->StringGrid1->Cells[1][13]=4.67; Form4->StringGrid1->Cells[2][13]=3.81;

Form4->StringGrid1->Cells[1][14]=4.60; Form4->StringGrid1->Cells[2][14]=3.74;

Form4->StringGrid1->Cells[1][15]=4.54; Form4->StringGrid1->Cells[2][15]=3.68;

Form4->StringGrid1->Cells[1][16]=4.49; Form4->StringGrid1->Cells[2][16]=3.63;

Form4->StringGrid1->Cells[3][1]=216;

Form4->StringGrid1->Cells[3][2]=19.2;

Form4->StringGrid1->Cells[3][3]=9.28;

Form4->StringGrid1->Cells[3][4]=6.59;

Form4->StringGrid1->Cells[3][5]=5.41;

Form4->StringGrid1->Cells[3][6]=4.76;

Form4->StringGrid1->Cells[3][7]=4.35;

Form4->StringGrid1->Cells[3][8]=4.07;

Form4->StringGrid1->Cells[3][9]=3.86;

Form4->StringGrid1->Cells[3][10]=3.71;

Form4->StringGrid1->Cells[3][11]=3.59;

Form4->StringGrid1->Cells[3][12]=3.49;

Form4->StringGrid1->Cells[3][13]=3.41;

Form4->StringGrid1->Cells[3][14]=3.34;

Form4->StringGrid1->Cells[3][15]=3.29;

Form4->StringGrid1->Cells[3][16]=3.24;

for (int i = 0; i < 15; i++)

for (int j = 0; j < 3; j++)

Fish[i][j]=StrToFloat(Form4->StringGrid1->Cells[j+1][i+1]);

void __fastcall TForm1::BitBtn2Click(TObject *Sender)

{

Analiz();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::KR_Analiz()

{

p=3;

//Расчет парных коэффициентов корреляции

sredn(Xobsh,Xs,n,p);

sigmm(Xobsh,Xs,A1,n,p);

standart_matr(Xobsh,Xs,A1,Z,n,p);

transmatr(Z,Zt,n,p);

mult(Zt,Z,R,p,n,p);

for (int i = 0; i < p+1; i++)

for (int j = 0; j < p+1; j++)

SG2->Cells[i][j]=FloatToStrF(R[i][j]/n,ffFixed,7,3);

for (int i = 0; i < p; i++)

for (int j = 0; j < p; j++)

R[i][j]=R[i][j]/n;

for (int i = 1; i < p; i++)

for (int j = 1; j < p; j++)

R1[i-1][j-1]=R[i][j];

r1=det(R,p);

r2=det(R1,p-1);

kd=sqrt(1-(r1/r2));

kk=pow(kd,0.5);

Edit3->Text=FloatToStr(kd);

Edit4->Text=FloatToStr(kk);

//Вывод уравнение регрессии

transmatr(Xed,Xt,n,p); // /

mult(Xt,Xed,X1,p,n,p);// /

obr_matr(X1,Xobr,p); //

mult(Xt,vec,Y1,p,n,p); //

mult1(Xobr,Y1,A,p,p);

// вывод уравнения

Label23->Caption="Y="+FloatToStrF(A[0][0],ffFixed,7,2)+"+"+FloatToStrF(A[1][0],ffFixed,7,2)+"X1"+FloatToStrF(A[2][0],ffFixed,7,2)+"X2";

Pr=A[0][0]+A[1][0]*StrToFloat(Edit1->Text)+A[2][0]*StrToFloat(Edit2->Text);

Label28->Caption="Прогноз на "+FloatToStr(n+1)+ " месяц ="+FloatToStrF(Pr,ffFixed,7,0)+" штук";

//Значимость

mult(Xed,A,Qr,n,p,n); //

trans_matr(Qr,Xt,n,p); //

mult(Xt,Qr,Qr1,n,n,n); //

vich(vec,Qr,Qost,n,p);

transmatr(Qost,Xtr,n,p);

mult1(Xtr,Qost,Qr2,n,n);

Fras=(Qr1[0][0]/p)/(Qr2[0][0]/(n-p-1)); //

Label21->Caption="Fras="+FloatToStr(Fras);//

//критерий Фишера=

Label22->Caption="Fкрит="+FloatToStr(Fish[n-p-2][p-1]);

if (Fras>Fish[n-p-2][p-1]) Memo1->Text="Уравнение значимо так как Fрас>Fкрит "; else

Memo1->Text="Уравнение не значимо" ;

for(int i=0;i<n;i++)

Series1->AddXY(i,vec[i][0],' ',clRed);

}

void __fastcall TForm1::Button20Click(TObject *Sender)

{

Form4->Show();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button10Click(TObject *Sender)

{

Form3->QuickRep1->Preview();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button21Click(TObject *Sender)

{

Form5->QuickRep1->Preview();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::TabSheet16Show(TObject *Sender)

{

Form6->Show();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button22Click(TObject *Sender)

{

IBClientDataSet4->ApplyUpdates(-1);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn3Click(TObject *Sender)

{

QuickRep1->Preview();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::PageControl1Change(TObject *Sender)

{

TabSheet19->Visible=false;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn4Click(TObject *Sender)

{

MessageBoxA(0, "Неправильно введены данные","Ошибка ввода пользователя" , MB_OK);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button17Click(TObject *Sender)

{

IBClientDataSet16->ApplyUpdates(-1);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button7Click(TObject *Sender)

{

Form7->QuickRep1->Preview();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormDblClick(TObject *Sender)

{

Form1->Visible=false;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

Application->ShowMainForm=false;

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#ifndef Unit1H

#define Unit1H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ComCtrls.hpp>

#include <ExtCtrls.hpp>

#include <Buttons.hpp>

#include <DB.hpp>

#include <DBClient.hpp>

#include <DBGrids.hpp>

#include <DBLocal.hpp>

#include <DBLocalI.hpp>

#include <Grids.hpp>

#include <IBDatabase.hpp>

#include <Provider.hpp>

#include <DBCtrls.hpp>

#include <Mask.hpp>

#include <IBCustomDataSet.hpp>

#include <IBTable.hpp>

#include <IBQuery.hpp>

#include <Chart.hpp>

#include <Series.hpp>

#include <TeEngine.hpp>

#include <TeeProcs.hpp>

#include <DbChart.hpp>

#include <Menus.hpp>

#include <DBTables.hpp>

#include <QRCtrls.hpp>

#include <QuickRpt.hpp>

#define MATRIX_MAX 50

typedef double matrix[MATRIX_MAX][MATRIX_MAX];

typedef double vector[MATRIX_MAX];

//Функция обнуления матрицы

void clear_matr(matrix A);

void mult(matrix A, matrix B, matrix C, int n, int k, int m);

void mult1(matrix A, matrix B, double value, int n, int m);

double alg_add(matrix A, int n, int i, int j);

double det(matrix A, int n);

void inv_matr(matrix A, matrix B, int n);

void trans_matr(matrix A, matrix B, int n, int m);

void sred(matrix X,matrix Xs,int nx, int p);

void sigm(matrix X,matrix Xs,matrix S,int nx,int p);

void stand_matr(matrix X,matrix Xs,matrix S,matrix Z,int nx,int p);

void sum_st(matrix X,matrix Xs,int nx, int p);

void kv_st(matrix X,matrix Xs,int nx, int p);

//---------------------------------------------------------------------------

class TForm1 : public TForm

{

__published: // IDE-managed Components

TPageControl *PageControl1;

TTabSheet *TabSheet1;

TPanel *Panel1;

TTabSheet *TabSheet3;

TPanel *Panel3;

TTabSheet *TabSheet4;

TTabSheet *TabSheet5;

TPageControl *PageControl2;

TTabSheet *TabSheet6;

TTabSheet *TabSheet7;

TPanel *Panel4;

TPanel *Panel5;

TPageControl *PageControl3;

TTabSheet *TabSheet8;

TPageControl *PageControl4;

TTabSheet *TabSheet9;

TTabSheet *TabSheet10;

TTabSheet *TabSheet11;

TTabSheet *TabSheet12;

TIBDatabase *IBDatabase1;

TIBTransaction *IBTransaction1;

TIBClientDataSet *IBClientDataSet1;

TDataSource *DataSource1;

TPageControl *PageControl5;

TTabSheet *TabSheet2;

TDBGrid *DBGrid1;

TSpeedButton *SpeedButton1;

TSpeedButton *SpeedButton2;

TSpeedButton *SpeedButton3;

TSpeedButton *SpeedButton4;

TButton *Button1;

TButton *Button2;

TButton *Button3;

TButton *Button4;

TDBEdit *DBEdit1;

TDBEdit *DBEdit2;

TLabel *Label1;

TLabel *Label2;

TLabel *Label3;

TDBEdit *DBEdit3;

TLabel *Label4;

TDBEdit *DBEdit4;

TIBClientDataSet *IBClientDataSet2;

TDataSource *DataSource2;

TIBClientDataSet *IBClientDataSet3;

TDataSource *DataSource3;

TDBGrid *DBGrid4;

TDataSource *DataSource4;

TIntegerField *IBClientDataSet1KOD;

TStringField *IBClientDataSet1NAZV;

TStringField *IBClientDataSet1KR_NAZV;

TIntegerField *IBClientDataSet1KOD_TIP_STR_ED;

TDataSource *DataSource6;

TDBGrid *DBGrid5;

TDBNavigator *DBNavigator1;

TDBNavigator *DBNavigator2;

TIBClientDataSet *IBClientDataSet6;

TIntegerField *IBClientDataSet6NOMER;

TDateField *IBClientDataSet6DATA;

TIntegerField *IBClientDataSet6KOD_KONT_O_RAB;

TIntegerField *IBClientDataSet6KOD_STR_ED1;

TIntegerField *IBClientDataSet6KOD_STR_ED2;

TStringField *IBClientDataSet6kod_kto;

TStringField *IBClientDataSet6kod_komu;

TIBClientDataSet *IBClientDataSet7;

TDBGrid *DBGrid6;

TDBNavigator *DBNavigator3;

TDBNavigator *DBNavigator4;

TDataSource *DataSource7;

TDBGrid *DBGrid7;

TDBNavigator *DBNavigator5;

TDBGrid *DBGrid8;

TDBNavigator *DBNavigator6;

TIBClientDataSet *IBClientDataSet9;

TIBClientDataSet *IBClientDataSet10;

TDataSource *DataSource8;

TDataSource *DataSource9;

TIntegerField *IBClientDataSet10KOD;

TStringField *IBClientDataSet10NAZV;

TIntegerField *IBClientDataSet10KOD_TIPA_UL;

TStringField *IBClientDataSet10kod_tipa;

TDBGrid *DBGrid9;

TDBNavigator *DBNavigator7;

TDBGrid *DBGrid10;

TDBNavigator *DBNavigator8;

TIBClientDataSet *IBClientDataSet11;

TIBClientDataSet *IBClientDataSet12;

TDataSource *DataSource10;

TIntegerField *IBClientDataSet12KOD;

TStringField *IBClientDataSet12NAZV;

TIntegerField *IBClientDataSet12KOD_TIPA_NAS_P;

TStringField *IBClientDataSet12tip_nas_p;

TDataSource *DataSource11;

TDBGrid *DBGrid11;

TDBGrid *DBGrid12;

TDBNavigator *DBNavigator9;

TDBNavigator *DBNavigator10;

TIBClientDataSet *IBClientDataSet13;

TIBClientDataSet *IBClientDataSet14;

TDataSource *DataSource12;

TDataSource *DataSource13;

TIntegerField *IBClientDataSet14KOD;

TIntegerField *IBClientDataSet14N_TEL;

TIntegerField *IBClientDataSet14KOD_TIP_TEL;

TIntegerField *IBClientDataSet14KOD_STR_ED;

TIntegerField *IBClientDataSet14NOMER_FIZ_LICO;

TStringField *IBClientDataSet14tip_tel;

TStringField *IBClientDataSet14Str_ed;

TStringField *IBClientDataSet14n_fiz_lico;

TDBGrid *DBGrid13;

TDBNavigator *DBNavigator11;

TIBClientDataSet *IBClientDataSet15;

TDataSource *DataSource14;

TTabSheet *TabSheet14;

TDBGrid *DBGrid14;

TDBNavigator *DBNavigator12;

TDataSource *DataSource15;

TIBClientDataSet *IBClientDataSet16;

TButton *Button11;

TButton *Button12;

TLabel *Label12;

TLabel *Label13;

TButton *Button13;

TLabel *Label14;

TLabel *Label15;

TButton *Button14;

TButton *Button15;

TButton *Button16;

TLabel *Label16;

TLabel *Label17;

TTabSheet *TabSheet15;

TButton *Button17;

TTabSheet *TabSheet17;

TDBGrid *DBGrid15;

TDBNavigator *DBNavigator13;

TButton *Button18;

TIBClientDataSet *IBClientDataSet17;

TDataSource *DataSource16;

TStringGrid *SG;

TBitBtn *BitBtn1;

TBitBtn *BitBtn2;

TDateTimePicker *DateTimePicker1;

TDateTimePicker *DateTimePicker2;

TLabel *Label18;

TTabSheet *TabSheet18;

TDBGrid *DBGrid16;

TLabel *Label19;

TDBNavigator *DBNavigator14;

TDBGrid *DBGrid17;

TDBNavigator *DBNavigator15;

TLabel *Label20;

TIBClientDataSet *IBClientDataSet18;

TIBClientDataSet *IBClientDataSet19;

TDataSource *DataSource17;

TDataSource *DataSource18;

TIntegerField *IBClientDataSet19KOD;

TStringField *IBClientDataSet19NAIM;

TIntegerField *IBClientDataSet19KOD_VIDA;

TStringField *IBClientDataSet19tip_t;

TButton *Button19;

TDBGrid *DBGrid18;

TIBClientDataSet *IBClientDataSet20;

TDataSource *DataSource19;

TDBLookupComboBox *DBLookupComboBox1;

TIBTable *IBTable1;

TIBTable *IBTable2;

TIBTable *IBTable3;

TDataSource *DataSource20;

TDataSource *DataSource21;

TDataSource *DataSource22;

TIntegerField *IBTable2NOMER;

TIntegerField *IBTable2KOL_VO;

TIntegerField *IBTable2CENA_ED;

TIntegerField *IBTable2NOMER_DOK_O_RASH;

TIntegerField *IBTable2KOD_TOV;

TIntegerField *IBTable2ED_IZM1;

TIntegerField *IBTable2ED_IZM2;

TIBTable *IBTable4;

TDataSource *DataSource23;

TIBTable *IBTable5;

TDataSource *DataSource24;

TIBTable *IBTable6;

TDataSource *DataSource25;

TStringGrid *SG2;

TLabel *Label21;

TLabel *Label22;

TLabel *Label23;

TMemo *Memo1;

TButton *Button20;

TLabel *Label24;

TLabel *Label25;

TChart *Chart1;

TLineSeries *Series1;

TEdit *Edit1;

TEdit *Edit2;

TLabel *Label26;

TLabel *Label27;

TLabel *Label28;

TLabel *Label29;

TLabel *Label30;

TLabel *Label31;

TLabel *Label32;

TLabel *Label33;

TLabel *Label34;

TEdit *Edit3;

TEdit *Edit4;

TLabel *Label35;

TLabel *Label36;

TButton *Button10;

TDBLookupComboBox *DBLookupComboBox2;

TDataSource *DataSource26;

TDataSource *DataSource27;

TIBTable *IBTable7;

TIBTable *IBTable8;

TLabel *Label37;

TIBTable *IBTable9;

TDataSource *DataSource28;

TIBTable *IBTable10;

TIntegerField *IBTable10KOD;

TIBStringField *IBTable10NAIM;

TIntegerField *IBTable10KOD_VIDA;

TDataSource *DataSource29;

TIBTable *IBTable11;

TDataSource *DataSource30;

TDataSource *DataSource31;

TButton *Button21;

TLabel *Label38;

TTabSheet *TabSheet16;

TDBLookupComboBox *DBLookupComboBox3;

TIntegerField *NOMER;

TIntegerField *KOL_VO;

TIntegerField *CENA_ED;

TIntegerField *NOMER_DOK_O_POST;

TIntegerField *KOD_TOV;

TIntegerField *ost;

TIntegerField *ED_IZM;

TIntegerField *ED_IZM2;

TDataSource *DataSource32;

TDataSource *DataSource33;

TIBTable *IBTable13;

TIBTable *IBTable14;

TIBTable *IBTable15;

TIntegerField *IBTable14NOMER;

TDateField *IBTable14DATA;

TIntegerField *IBTable14KOD_STR_ED1;

TIntegerField *IBTable14KOD_STR_ED2;

TIntegerField *IBTable14KOD_KONTR_O_RAB;


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.