Автоматизація побудови діаграм динаміки обсягів промислового виробництва регіонів України

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    1,2 Мб
  • Опубликовано:
    2014-01-04
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Автоматизація побудови діаграм динаміки обсягів промислового виробництва регіонів України

ЗМІСТ

ВСТУП

. ПОСТАНОВКА ЗАДАЧІ

. ХАРАКТЕРИСТИКА ПРОГРАМНИХ ЗАСОБІВ РЕАЛІЗАЦІЇ ПРОЕКТУ

. ПРОЕКТУВАННЯ ТА РЕАЛІЗАЦІЯ ПРОГРАМНОГО ПРОДУКТУ

3.1 Опис структури інтерфейсу

3.2 Опис складових частин програми

3.3 Схема зв’язку між складовими частинами програми

4. РОЗРОБКА ІНСТРУКЦІЇ КОРИСТУВАЧА

ВИСНОВКИ

ЛІТЕРАТУРА

ДОДАТОК А

ДОДАТОК Б

ДОДАТОК В

ВСТУП

Темою курсового проекту є «Автоматизація побудови діаграм динаміки обсягів промислового виробництва регіонів України». Виконаний у середовищі програмування Borland Builder C++ 6.0 на мові програмування високого рівня С++.

Створена програма будує діаграми динаміки обсягів промислового виробництва регіонів України, відображає зміни обсягів виробництва у конкретному регіоні за увесь час.

Програма може бути використана будь-якими особами чи організаціями у яких є потреба у побудові діаграм динаміки обсягів промислового виробництва регіонів України.

Процес створення діаграм займає багато часу, тому програма буде особливо корисною - статистикам, у яких є потреба вести облік промислового виробництва України.

програма діаграма динаміка інтерфейс

1. ПОСТАНОВКА ЗАДАЧІ

Темою курсового проекту є «Автоматизація побудови діаграм динаміки обсягів промислового виробництва регіонів України».

Метою даного курсового проекту є створення додатку який дозволяє будувати діаграми динаміки обсягів промислового виробництва засобами інтегрованого середовища Borland Builder C++ 6.0 на мові програмування високого рівня С++.

Система повинна забезпечити наступні функції:

      додавання запису до таблиці;

2        редагування даних таблиці;

         видалення даних з таблиці;

         завантаження даних з файлу;

         збереження даних у файл;

         будування діаграми для обраного міста.

Інтерфейс програми повинен містити вікно з компонентами призначених для відображення таблиці, додавання даних до таблиці, завантаження даних та їх збереження, побудови діаграми.

Для повноцінної роботи програми потрібно мати, як мінімум:

-  тип процесора Pentium або Athlon і вище;

-  обсяг оперативного запам'ятовуючого пристрою 128 Мб;

-  обсяг вільного місця на жорсткому диску 1 Гб;

-       операційну система Win32 (ХР/Vista/7);

-       виконавчу середу dot NET v. 4.0 і вище;

2. ХАРАКТЕРИСТИКА ПРОГРАМНИХ ЗАСОБІВ РЕАЛІЗАЦІЇ ПРОЕКТУ

Для реалізації курсового проекту було використано інтегроване середовище програмування C++ Builder 6.++ Builder - програмний продукт, інструмент швидкої розробки додатків (RAD), інтегрована середа програмування (IDE), система, використовувана програмістами для розробки програмного забезпечення на мові програмування C.

Форми є основою додатків C + + Builder. Створення користувальницького інтерфейсу додатку полягає в додаванні у вікно форми елементів, об'єктів C + + Builder, званих компонентами. Компоненти C + + Builder розташовуються на палітрі компонентів, виконаної у вигляді багатосторінкового блокнота. Важлива особливість C + + Builder полягає в тому, що він дозволяє створювати власні компоненти і налаштовувати палітру компонентів, а також створювати різні версії палітри компонентів для різних проектів.

С + + багато років вдосконалюється і оптимізується для більш легкого створення і використання, багато допоміжних компонентів створено для його вдосконалення . На практиці мова програмування С + + застосовується в багатьох галузях промисловості , на його основі створені багато інших мов програмування. На даний момент С + + задовольняє всім сучасним вимогам у створенні програм (як невеликих додатків так і вузькоспеціалізованих програмних комплексів) [1, 2].

3. ПРОЕКТУВАННЯ ТА РЕАЛІЗАЦІЯ ПРОГРАМНОГО ПРОДУКТУ

.1 Опис алгоритму програми

Меню повинно давати користувачеві наступні можливості:

-   інформація про програму;

-          додавання записів;

-          редагування записів;

-          видалення записів;

-          завантаження нових записів;

-          зберігання записів у файл;

-          побудови діаграм;

-          вихід з програми;

Алгоритм роботи програми:

1    користувач додає новий запис у таблиця, шляхом або ж одиничного додавання, або може завантажити з файлу відразу всі записи;

2        користувач може редагувати введену або завантажену інформацію;

         обирає регіон, діаграми якого він хоче побачити;

         виводиться діаграма, яка відображає динаміку зміни обсягів виробництва для обраного регіону за кожний рік;

         Користувач має можливість зберегти записи таблиці у файл.

3.2 Проектування інтерфейсу програми

До складу розробленої програми входять 2 форми. Призначення форм проекту приведено у таблиці 3.3.

Таблиця 3.3 - Призначення форм проекту

Ім’я

Призначення

MainForm

Форма для побудови діаграми

AboutForm

Форма інформації про програму (автора, та зміст)


Форма MainForm для побудови діаграми. На ній розміщені компоненти: ComboBox, Chart, GroupBox, Label, Button, OpenDialog, SaveDialog, StringGrid, Edit.

Використовуючи властивість Caption задав заголовок форми MainForm як «Автоматизация построения диаграмм динамики объёмов промышленного производства регионов Украины». Форму MainForm приведено на рисунку 3.1.


Компонент ComboBox призначений для вибору регіону діаграми динаміки зміни обсягів виробництва якого ми хотіли би побудувати. Компонент Chart призначений для побудови діаграми.

Компонент GroupBox призначений для групування компонентів записів таблиці.

Компонент Label призначений для виводу підказок користувачу.

Компоненти Button виконують функції:

-   додавання записів;

-          редагування записів;

-          видалення записів;

Компоненти Edit призначені для вводу року, типу промисловості, об’єму виробництва, регіону.

Компонент StringGrid призначений для виводу усіх записів таблиці.

Компонент SaveDialog призначений для збереження записів таблиці у файл.

Компонент OpenDialog призначений для завантаження записів у таблицю.

Форма AboutForm дозволяє користувачу дізнатися інформацію про програму, а саме хто є автором, та що вона робить. На ній розміщені компоненти: Label, Panel.

Використовуючи властивість Caption задав заголовок форми AboutForm «Автоматизация построения диаграмм динамики объёмов промышленного производства регионов Украины». Форму AboutForm приведено на рисунку 3.2.

Рисунок 3.2 - Вигляд форми AboutForm, яка призначена для виводу інформації про програму

Компонент Label призначений для виведення напису «О программе». Компонент Panel призначений для виведення інформації про програму.

3.3 Опис складових частин програми

Програма містить два модулі, які приведені в таблиці 3.4.

Таблиця 3.4 - Вміст модулів програми

Назва модулю

Перелік обробників подій

MainUnit

 void __fastcall FormCreate(TObject *Sender); void __fastcall bAddClick(TObject *Sender); void __fastcall bDelClick(TObject *Sender); void __fastcall bChangeClick(TObject *Sender); void __fastcall MakeChartClick(TObject *Sender); void __fastcall bSaveClick(TObject *Sender); void __fastcall bLoadClick(TObject *Sender); void __fastcall sgDataClick(TObject *Sender); void __fastcall AboutClick(TObject *Sender); void __fastcall eKindKeyPress(TObject *Sender, char &Key); void __fastcall eYearKeyPress(TObject *Sender, char &Key); void __fastcall eSizeKeyPress(TObject *Sender, char &Key); void __fastcall eRegionKeyPress(TObject *Sender, char &Key);

AboutUnit

TAbout_Form *About_Form;


Перелік підпрограм/функцій які входять до складу модуля MainUnit приведено у таблиці 3.5.

Таблиця 3.5 - Перелік підпрограм/функцій які входять до складу модуля MainUnit

Підпрограми/функції

Призначення

bool CheckData

Перевіряє введені дані на коректність

void FormatGrid

Формує таблицю записів


3.4 Схема зв’язку між складовими частинами програми

Схема зв’язку між складовими частинами програми, показана на рисунку 3.5.








Рисунок 3.5 - Схема зв’язку між складовими частинами програми

3.5 Контроль коректності вхідних та вихідних даних

Контролю коректності даних, що вводяться користувачем, необхідно приділяти чималу увагу, оскільки необроблені помилки, що виникають при неправильному введенні даних, приводять до помилок в роботі програми, часто є катастрофічним.

Для запобігання помилок та виявлення нештатних ситуацій були прий-няті такі заходи:

.        Для коректного введення року не дозволяється залишати поле порожнім

(_year=="")

{

*err="Заполните поле Год";false;

}

.        Для коректного введення року не дозволяється вводити рік менш ніж 1900 та не більш ніж 2013

((((TEdit*)Sender)->Text.Length() < 3) || (StrToInt(eYear->Text)<1900)||(StrToInt(eYear->Text)>2013))

{(0,"Некоректная дата","Ошибка",mrOk);;

}

.        Для коректного введення року був доданий обробник подій для полів введення OnKeyPress, який не дозволяє вводити нічого окрім цифр та не більш ніж 4 рази

if ((Key >= '0') && (Key <= '9') || (Key == VK_BACK))

Key!=0;=0;(Key == VK_BACK) ;(((TEdit*)Sender)->Text.Length() > 3)

{ = 0; ;

}

4. Для коректного введення типу промисловості не дозволяється залишати поле порожнім

(_kind=="")

{

*err="Заполните поле Вид промышленности";false;

}

5.   Для коректного введення типу промисловості був доданий обробник подій для полів введення OnKeyPress, який не дозволяє введення нічого окрім букв російського та українського алфавіту

(((Key>='а') && (Key<='я'))||((Key>='А') && (Key<='Я'))||(Key<='і')||(Key<='ї')||(Key<='І')||(Key<='Ї')|| (Key == VK_BACK))!=0;=0;

6.  
Для коректного введення об’єму виробництва не дозволяється залишати поле порожнім

if(_size=="")

{

*err="Заполните поле Объём производства";false;

}

7.   Для коректного введення об’єму виробництва був доданий обробник подій для полів введення OnKeyPress, який не дозволяє вводити нічого окрім цифр

((Key >= '0') && (Key < '9') || (Key == VK_BACK)) !=0;=0;

8.   Для коректного введення регіону не дозволяється залишати поле порожнім

(_region=="")

{

}

9.   Для коректного будування діаграми не дозволяється додавати до таблиці записів однакових записів

p=sgData->RowCount;(int i=1;i<p;i++)(eRegion->Text==sgData->Cells[3][i])(eKind->Text==sgData->Cells[1][i])(eYear->Text==sgData->Cells[0][i])

{(0,"Такая запись уже присутствует", "Ошибка", mrOk);;

}

10. Для коректного будування діаграми не дозволяється будування при порожній таблиці

(sgData->Cells[0][1]=="")

{(0,"Перед построением графика заполните таблицу с данными", "Ошибка", mrOk);;

}

11. Для коректного збереження таблиці записів не дозволяється зберігати порожню таблицю

(sgData->Cells[0][1]=="")

{(0, "Перед сохранением необходимо заполнить таблицу", "Ошибка", mrOk);;

}

4. РОЗРОБКА ІНСТРУКЦІЇ КОРИСТУВАЧА

Об’єм каталогу проекту має розмір 2,77 МБ (2 905 090 байт).

Об’єм виконуваного файлу ManufactureChartProject.exe має розмір 57,5 КБ (58 880 байт).

Запуск програми здійснюється наступним чином:

вибрати необхідний файл та відкрити його подвійним клацанням;

Після запуску програми на екран монітору з’явиться головне вікно програми, яке зображене на рисунку 4.1.

Рисунок 4.1 - Вигляд головного вікна програми після запуску

При виборі пункту «Добавить», введені записи додаються до таблиці записів, приклад зображено на рисунку 4.2

Рисунок 4.2 - Вигляд головного вікна програми після реалізації функції «Добавить»

При виборі пункту «Изменить», активний запис редагується, після чого додається до таблиці записів, приклад зображено на рисунку 4.3

Рисунок 4.3 - Вигляд головного вікна програми після реалізації функції «Изменить»

При виборі пункту «Удалить», активний запис видаляється з таблиці записів, приклад зображено на рисунку 4.4

Рисунок 4.4 - Вигляд головного вікна програми після реалізації функції «Удалить»

При виборі пункту «Загрузить», загружається з файлу інформація до таблиці записів, приклад зображено на рисунку 4.5 та 4.6

Рисунок 4.5 - Вигляд головного вікна програми по запуску функції «Загрузить»

Рисунок 4.6 - Вигляд головного вікна програми після реалізації функції «Загрузить»

При виборі пункту «Сохранить», таблиця записів зберігається у файл, приклад зображено на рисунку 4.7

Рисунок 4.7 - Вигляд головного вікна програми при запуску функції «Сохранить»

При виборі пункту «Построить», будується діаграма виходячи із обраного регіону, приклад зображено на рисунку 4.8

Рисунок 4.8 - Вигляд головного вікна програми після реалізації функції «Построить»

При виборі пункту «О программе», виводиться форма, яка відображає інформацію про програму та її зміст, приклад зображено на рисунку 4.9


Рисунок 4.8 - Вигляд головного вікна програми після вибору пункту «О программе»

ВИСНОВКИ

Протягом роботи над курсовим проектом «Автоматизація побудови діаграм динаміки обсягів промислового виробництва регіонів України» було створено програму, яка дозволяє будувати діаграми виходячи з динаміки обсягів промислового виробництва.

Використовуючи інтегроване середовище програмування Borland Builder C++ 6.0 на мові програмування високого рівня С++.

Програма може бути використана будь-якими особами чи організаціями у яких є потреба у побудові діаграм динаміки обсягів промислового виробництва регіонів України.

Розроблена програма має зручний та зрозумілий інтерфейс для роботи, який відповідає виконуваним функціям.

Розроблений програмний продукт у повному обсязі виконує усі функції, задані у постановці задачі.

ЛІТЕРАТУРА

1    Архангельский, А.Я.Язык С++ Builder. Справочное и методическое пособие. [Текст] / А.Я.Архангельский.М.: Бином, 2008.-942 с.

2        Архангельский, А.Я.Программирование в C++ Builder 6[Текст] / А.Я.Архангельский.М.: Бином, 2003.-1152 с.

ДОДАТОК А

Вхідні дані. Склад контрольного прикладу

ДОДАТОК Б

Структурна схема алгоритму програми











ДОДАТОК В

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

.срр

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

#include <vcl.h>

#pragma hdrstop

#include "MainUnit.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

#include <fstream.h>

#include <istream.h>

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

__fastcall TMainForm::TMainForm(TComponent* Owner)

: TForm(Owner)

{

}TMainForm::CheckData(AnsiString _year, AnsiString _kind, AnsiString _size, AnsiString _region, AnsiString *err)

{(_year=="")

{

*err="Заполните поле Год";false;

}(_kind=="")

{

*err="Заполните поле Вид промышленности";false;

}(_size=="")

{

*err="Заполните поле Объём производства";false;

}(_region=="")

{

*err="Заполните поле Регион";false;

}

{(StrToInt(_year)<=0)

{

*err="Год должен быть положительным числом";false;

}

}(...)

{

*err="Год должен быть целым числом";false;

}

{(StrToFloat(_size)<0)

{

*err="Объём производства не может быть отрицательным числом";false;

}

}(...)

{

*err="Объём производства должен быть вещественным числом";false;

}

*err="";true;

}FormatGrid(TStringGrid *SG)

{i,W=0;>ColCount=4;(i=0; i<SG->ColCount; i++)>Cols[i]->Clear();>RowCount=2;>Cells[0][0]="Год";>Cells[1][0]="Вид промышленности";>Cells[2][0]="Объём производства";>Cells[3][0]="Регион";>ColWidths[0]=70;>ColWidths[1]=200;>ColWidths[2]=200;(i=0;i<SG->ColCount-1;i++)W+=SG->ColWidths[i];>ColWidths[3]=SG->Width - W - 35;

}

//---------------------------------------------------------------------------__fastcall TMainForm::FormCreate(TObject *Sender)

{(sgData);

}

//---------------------------------------------------------------------------__fastcall TMainForm::bAddClick(TObject *Sender)

{p;err;(!CheckData(eYear->Text, eKind->Text, eSize->Text, eRegion->Text, &err))

{(0,err.c_str(), "Ошибка", mrOk);;

}((((TEdit*)Sender)->Text.Length() < 3) ||(StrToInt(eYear->Text)<1900)||(StrToInt(eYear->Text)>2013)){ MessageBox(0,"Некоректная дата","Ошибка",mrOk); return; }=sgData->RowCount;(int i=1;i<p;i++)(eRegion->Text==sgData->Cells[3][i])(eKind->Text==sgData->Cells[1][i])(eYear->Text==sgData->Cells[0][i])

{(0,"Такая запись уже присутствует", "Ошибка", mrOk);;

}=sgData->RowCount;(sgData->Cells[0][p-1]=="")-;>RowCount++;>Cells[0][p]=eYear->Text;>Cells[1][p]=eKind->Text;>Cells[2][p]=eSize->Text;>Cells[3][p]=eRegion->Text;>Enabled=true;(cbRegion, sgData, 3);

}

//---------------------------------------------------------------------------__fastcall TMainForm::bDelClick(TObject *Sender)

{p=sgData->Selection.Top, i, j;(p<1)

{(0,"Выберите данные для удаления", "Ошибка", mrOk);;

}(sgData->Cells[0][p]=="")

{(0,"Данные для удаления не найдены", "Ошибка", mrOk);;

}(i=p+1; i<sgData->RowCount; i++)(j=0; j<sgData->ColCount; j++)>Cells[j][i-1]=sgData->Cells[j][i];(j=0; j<sgData->ColCount; j++)>Cells[j][sgData->RowCount-1]="";(sgData->RowCount>2)>RowCount--;>Enabled=false;(cbRegion, sgData, 3);

}

//---------------------------------------------------------------------------__fastcall TMainForm::bChangeClick(TObject *Sender)

{p;err;(!CheckData(eYear->Text, eKind->Text, eSize->Text, eRegion->Text, &err))

{(0,err.c_str(), "Ошибка", mrOk);;

}((((TEdit*)Sender)->Text.Length() < 3) ||(StrToInt(eYear->Text)<1900)||(StrToInt(eYear->Text)>2013)){ MessageBox(0,"Некоректная дата","Ошибка",mrOk); return; }=sgData->RowCount;(int i=1;i<p;i++)(eRegion->Text==sgData->Cells[3][i])(eKind->Text==sgData->Cells[1][i])(eYear->Text==sgData->Cells[0][i])(eSize->Text==sgData->Cells[2][i])

{(0,"Такая запись уже присутствует", "Ошибка", mrOk);;

}=sgData->Selection.Top;(p<1)

{(0,"Выберите данные для изменения", "Ошибка", mrOk);;

}(sgData->Cells[0][p]=="")

{(0,"Данные для изменения не найдены", "Ошибка", mrOk);;

}>Cells[0][p]=eYear->Text;>Cells[1][p]=eKind->Text;>Cells[2][p]=eSize->Text;>Cells[3][p]=eRegion->Text;(cbRegion, sgData, 3);

}

//---------------------------------------------------------------------------Compare(Elem a, Elem b)

{(a.region<b.region) return -1;(a.region>b.region) return 1;(a.kind<b.kind) return -1;(a.kind>b.kind) return 1;(a.year<b.year) return -1;(a.year>b.year) return 1;(a.size<b.size) return -1;(a.size>b.size) return 1;0;

}Sort(Elem *arr, int N, int opt)

{tmp;(int i=0; i<N; i++)(int j=i+1; j<N; j++)(Compare((arr)[i],(arr)[j])==opt)

(arr)[i]=(arr)[j];

(arr)[j]=tmp;

}

}__fastcall TMainForm::MakeChartClick(TObject *Sender)

{TColor color[16] = {clRed, clSkyBlue,clGreen, clYellow, clBlue, clWhite, clGray, clPurple,, clSilver, clOlive, clLime, clAqua, clTeal, clFuchsia,};i, j, p, N, minY, maxY;*Arr, tmp, *ArrTMP;st = cbRegion->Text, kind="";*T;(sgData->Cells[0][1]=="")

{(0,"Перед построением графика заполните таблицу с данными", "Ошибка", mrOk);;

}=sgData->RowCount-1;= new Elem[N];(i=1; i<=N; i++)

{[i-1].year = StrToInt(sgData->Cells[0][i]);[i-1].kind = sgData->Cells[1][i];[i-1].size = StrToFloat(sgData->Cells[2][i]);[i-1].region = sgData->Cells[3][i];

}(Arr, N, 1);=N;(i=N; i>0; i--)((Arr[i].year==Arr[i-1].year)&&(Arr[i].kind==Arr[i-1].kind)&&(Arr[i].region==Arr[i-1].region)&&(Arr[i].region!=""))

{[i-1].size+=Arr[i].size;[i].year=0;[i].kind="";[i].size=0;[i].region="";

}(Arr,N, -1);=N-1;(Arr[p].region=="")-;++;= new Elem[p];(ArrTMP, Arr, sizeof(Arr[0])*p);[] Arr;= new Elem[p];(Arr, ArrTMP, sizeof(Arr[0])*p);=p;=10000;=-1;(i=0; i<N; i++)

{( (Arr[i].region==st)&&(minY>Arr[i].year) ) minY=Arr[i].year;( (Arr[i].region==st)&&(maxY<Arr[i].year) ) maxY=Arr[i].year;

}(Arr,N, 1);>BackColor = clBtnFace;>BorderStyle = bsNone;>Color = clBtnFace;>Frame->Color = TColor(0x00404080); //свойство Frame определяет рамку вокруг диаграммы>Frame->Style = psSolid;>Title->Text->Clear();>Title->Text->Add("Объемы производства для региона '"+st+"'"); //Текст подписи можно осуществить через Text>Title->Alignment = taCenter;>Title->Font->Color = clMaroon;>Title->Font->Name = "Arial";>Title->Font->Size = 8;>LeftWall->Color = TColor(0x00E8E8F4); //цветовая гамма>BottomWall->Color = clMaroon; //размер стенок>BackWall->Color = clBtnFace;>MarginLeft = 1;>MarginRight = 1;>MarginTop = 0;>MarginBottom = 0;>LeftAxis->LabelsOnAxis = false;>SeriesList->Clear();=0;= new TBarSeries(ChartSize);>Marks->Visible = false;>Title = "Test";(i=minY; i<=maxY; i++)>AddXY(i,0,IntToStr(i), T->LegendItemColor(0));flag= false;(i=0; i<N; i++)

{(Arr[i].region==st)

{(kind=="")

{>Marks->Visible = false;>Title = Arr[i].kind;=Arr[i].kind;

}(Arr[i].kind!=kind)

{(!flag) T->AddXY(minY,0,IntToStr(minY), T->LegendItemColor(p));(kind!="")>AddSeries(T);=Arr[i].kind;= new TBarSeries(ChartSize);>Marks->Visible = false;>Title = Arr[i].kind;=false;

}(minY==Arr[i].year)flag=true;>AddXY(Arr[i].year,Arr[i].size, IntToStr(Arr[i].year),T->LegendItemColor(p));

}

}>AddSeries(T);>Legend->Visible = true; //Legend - список обозначений на диаграмме

}TMainForm::FillRegion(TComboBox *CB, TStringGrid *SG, int p)

{>Items->Clear();(int i=1; i<SG->RowCount; i++)(CB->Items->IndexOf(SG->Cells[p][i])==-1)>Items->Add(SG->Cells[p][i]);(CB->Items->Count>0)>ItemIndex=0;

}

//---------------------------------------------------------------------------__fastcall TMainForm::bSaveClick(TObject *Sender)

{(sgData->Cells[0][1]=="")

{(0, "Перед сохранением необходимо заполнить таблицу", "Ошибка", mrOk);;

}(SaveDialog1->Execute())

{*Table = new TStringList;(int i=1; i<=sgData->RowCount-1; i++)>Add(sgData->Rows[i]->DelimitedText);>SaveToFile(SaveDialog1->FileName);Table;(0,"Данные сохранены","Информация",mrOk);

}

}

//---------------------------------------------------------------------------__fastcall TMainForm::bLoadClick(TObject *Sender)

{(OpenDialog1->Execute())

{(sgData);*Table = new TStringList;>LoadFromFile(OpenDialog1->FileName);N=Table->Count;(int i=1; i<=N; i++)>Rows[i]->DelimitedText = Table->Strings[i-1];(N>0)(N==1)>RowCount=2;

{>RowCount=N+1;>Enabled=true;

}Table;(cbRegion, sgData, 3);(0,"Данные загружены","Информация",mrOk);

}

}

//---------------------------------------------------------------------------__fastcall TMainForm::sgDataClick(TObject *Sender)

{p=sgData->Selection.Top;>Text = sgData->Cells[0][p];>Text = sgData->Cells[1][p];>Text = sgData->Cells[2][p];>Text = sgData->Cells[3][p];

}

//---------------------------------------------------------------------------__fastcall TMainForm::AboutClick(TObject *Sender)

{_Form->Show();

}

//---------------------------------------------------------------------------__fastcall TMainForm::eKindKeyPress(TObject *Sender, char &Key)

{(((Key>='а') && (Key<='я'))||((Key>='А') && (Key<='Я'))||(Key<='і')||(Key<='ї')||(Key<='І')||(Key<='Ї')|| (Key == VK_BACK))!=0;Key=0;

}

//---------------------------------------------------------------------------__fastcall TMainForm::eYearKeyPress(TObject *Sender, char &Key)

{((Key >= '0') && (Key < '9') || (Key == VK_BACK)) Key!=0;Key=0;(Key == VK_BACK) return;(((TEdit*)Sender)->Text.Length() > 3) { Key = 0; return; }

}

//---------------------------------------------------------------------------__fastcall TMainForm::eSizeKeyPress(TObject *Sender, char &Key)

{((Key >= '0') && (Key < '9') || (Key == VK_BACK)) Key!=0;Key=0;

}

//---------------------------------------------------------------------------__fastcall TMainForm::eRegionKeyPress(TObject *Sender, char &Key)

{(((Key>='а') && (Key<='я'))||((Key>='А') && (Key<='Я'))||(Key<='і')||(Key<='ї')||(Key<='І')||(Key<='Ї')|| (Key == VK_BACK))!=0;Key=0;

}

//---------------------------------------------------------------------------.h

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

#ifndef MainUnitH

#define MainUnitH

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

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <Grids.hpp>

#include <Chart.hpp>

#include <ExtCtrls.hpp>

#include <Series.hpp>

#include <TeEngine.hpp>

#include <Dialogs.hpp>

//---------------------------------------------------------------------------Elem

{year;size;kind, region;

};TMainForm : public TForm

{

__published:         // IDE-managed Components*sgData;*eYear;*Label1;*GroupBox1;*Label2;*eKind;*Label3;*eSize;*Label4;*eRegion;*bAdd;*bDel;*ChartSize;*bChange;*cbRegion;*MakeChart;*Label5;*bLoad;*bSave;*SaveDialog1;*OpenDialog1;*About;__fastcall FormCreate(TObject *Sender);__fastcall bAddClick(TObject *Sender);__fastcall bDelClick(TObject *Sender);__fastcall bChangeClick(TObject *Sender);__fastcall MakeChartClick(TObject *Sender);__fastcall bSaveClick(TObject *Sender);__fastcall bLoadClick(TObject *Sender);__fastcall sgDataClick(TObject *Sender);__fastcall AboutClick(TObject *Sender);__fastcall eKindKeyPress(TObject *Sender, char &Key);__fastcall eYearKeyPress(TObject *Sender, char &Key);__fastcall eSizeKeyPress(TObject *Sender, char &Key);__fastcall eRegionKeyPress(TObject *Sender, char &Key);:  // User declarationsCheckData(AnsiString _year, AnsiString _kind, AnsiString _size, AnsiString _region, AnsiString *err);FillRegion(TComboBox *CB, TStringGrid *SG, int p);:              // User declarations

__fastcall TMainForm(TComponent* Owner);

};

//---------------------------------------------------------------------------PACKAGE TMainForm *MainForm;

//---------------------------------------------------------------------------.cpp

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

#include <vcl.h>

#pragma hdrstop

#include "AboutUnit.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"_Form *About_Form;

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

__fastcall TAbout_Form::TAbout_Form(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------.h

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

#ifndef AboutUnitH

#define AboutUnitH

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

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ExtCtrls.hpp>

//---------------------------------------------------------------------------TAbout_Form : public TForm

{

__published:         // IDE-managed Components*Panel1;*Panel2;*Label1;:  // User declarations:                   // User declarations

__fastcall TAbout_Form(TComponent* Owner);

};

//---------------------------------------------------------------------------PACKAGE TAbout_Form *About_Form;

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

Похожие работы на - Автоматизація побудови діаграм динаміки обсягів промислового виробництва регіонів України

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!