Программная система учета и анализа товарооборота на ИПТД "Скарлет"
Автоматизация учета и анализа товарооборота на предприятии. Разработка архитектуры программной системы. Рассмотрение физической модели базы данных, алгоритма программы. Прогнозирование уровня продажи товаров в программном средстве 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;
Подобные документы
Проектирование программного продукта. Разработка базы данных средствами Microsoft Access. Разработка прикладных решений для информационной системы 1С: Предприятие 8.2. Изучение первичной, вторичной документации. Автоматизация учета и управление компанией.
курсовая работа [1,4 M], добавлен 14.12.2017Анализ существующей методики воинского учета. Схема архитектуры и программная реализация разрабатываемого АРМ специалиста отдела мобилизационной работы и комплектования. Логическая структура реляционной базы данных. Результаты тестирования программы.
дипломная работа [1,4 M], добавлен 16.05.2013Разработка программы учета занятости компьютеров в лаборатории. Анализ требований, метод решения. Разработка алгоритма в виде структурных схем. Программная реализация в среде Borland Delphi. Минимальные системные требования для ее корректной работы.
дипломная работа [6,3 M], добавлен 10.06.2013Склад ОАО "Ориенбанк", его специфика и структура. Описание структуры базы данных складского учета для предприятия. Разработка пользовательского интерфейса программы. Инструкция к применению базы данных. Автоматизация операций и учета средств банка.
курсовая работа [4,7 M], добавлен 26.02.2010Роль оптовой торговли в рыночной экономике. Сортовой и партионный способы учета товаров. Организация бухгалтерского учета и документооборота на предприятии. Разработка базы данных для автоматизации учета переоценки стоимости товаров на оптовом складе.
дипломная работа [2,8 M], добавлен 15.01.2012Анализ входной и выходной информации на предприятии. Осуществление функционального и информационного моделирования базы данных, создание ее структуры. Программная реализация системы автоматизации учета работы автотранспорта. Оценка трудоемкости проекта.
дипломная работа [1,2 M], добавлен 09.07.2012Технико-экономическая характеристика предприятия. Выбор комплекса задач автоматизации, анализ бизнес-процессов. Концептуальный уровень архитектуры базы данных, ее физическая модель. Программная реализация информационной системы для учета ремонтных работ.
дипломная работа [8,8 M], добавлен 27.06.2012- Разработка информационной системы для автоматизации учета ремонта электрооборудования на предприятии
Архитектура и функции информационной системы для автоматизации учета ремонта электрооборудования. Построение модели прецедентов, потоков данных и процессов в стандарте IDEF0. Проектирование концептуальной и логической модели интегрированной базы данных.
курсовая работа [442,9 K], добавлен 06.08.2013 Создание информационной системы товарооборота на основе использования технологий баз данных кирпичного завода. Физическая модель базы данных. Проектирование БД в СУБД Microsoft SQL Server. Схема функциональной структуры программной системы. Запросы к БД.
курсовая работа [3,5 M], добавлен 05.03.2015Разработка программной системы для поддержки генеалогических деревьев. Модели вариантов использования и анализа системы. Морфологическая и функциональная модели, диаграммы состояний, деятельности и взаимодействия. Хранение сведений в базах данных.
курсовая работа [535,2 K], добавлен 01.02.2013