№
|
Ім’я
файлу
|
Розширення
|
Розмір
(б)
|
Час
виконання (сек)
|
1
|
MAIN
|
CPP
|
138
|
|
2
|
ZAST
|
CPP
|
4 958
|
|
3
|
WINOW
|
CPP
|
56 530
|
|
4
|
DB
|
CPP
|
10 030
|
|
5
|
BD
|
DAT
|
896
|
|
6
|
STP
|
DAT
|
64
|
|
7
|
MAIN
|
EXE
|
112 784
|
0.1
|
6.
Розробка документів на супроводження програмного продукту
6.1 Розробка
інструкцій системному програмісту
СD диск містить 2 папки:
. Program, що містить файли програмного
забезпечення;
2. Text, що містить документацію до
програмного забезпечення.
Для успішного запуску програми необхідно:
. Створити директорію з довільним ім’ям на
будь-якому диску (програма не прив’язана до імені диску).
2. В програмі використовуються функції
стандартної бібліотеки "graphics. h", але успішного виконання
графічної частини програми необхідно щоб файл egavga. bgi був розміщений в
спільній директорії з MAIN. EXE.
. Для використання шрифтів необхідно в
директорію додати файл tscr. chr.
Для розширення можливостей модуля програми, що
генерує меню необхідно:
. Відкрити WINOW. CPP файл у середовищі
Turbo C.
2. Доповнити необхідними функціями.
. Зберегти змінений файл.
. Перекомпілювати файл MAIN. CPP.
Для розширення можливостей роботи бази даних
необхідно:
. Відкрити DB. CPP файл у середовищі Turbo
C.
2. Доповнити необхідними функціями.
. Зберегти змінений файл.
. Перекомпілювати файл MAIN. CPP.
Для розширення можливостей графічної заставки
меню необхідно:
. Відкрити ZAST. CPP файл у середовищі
Turbo C.
2. Доповнити необхідними функціями.
. Зберегти змінений файл.
. Перекомпілювати файл MAIN. CPP.
6.1 Розробка інструкцій користувачеві
СD диск містить 2 папки:
. Program, що містить файли програмного
забезпечення;
2. Text, що містить документацію до
програмного забезпечення.
Для запуску програмного забезпечення необхідно:
. Створити окрему директорію на будь-якому
диску.
2. Скопіювати з CD диску вміст папки Program
у виділену директорію.
. Запустити MAIN. EXE із створеної
директорії.
Для управління програми використовувати:
. Після виведення заставки необхідно
натиснути будь-яку клавішу для закриття заставки і переходу в головне меню.
2. Перехід між меню та підменю здійснюється
за допомогою стрілок на клавіатурі: UP/DOWN - вертикального; LEFT/RIGHT -
горизонтального.
. Вибір пунктів меню, та підменю
здійснюється клавішею ENTER.
. Вихід з підпунктів меню здійснюється за
допомогою клавіші ESC.
. При перегляді вмісту бази даних та
графіків гортання між сторінками здійснюється клавішею SPASE.
. При перегляді графіку з кількістю
записів більш ніж 10 необхідно рухати графік в ліво та право за допомогою
клавіш A/D.
. Для виходу з програми необхідно вибрати
пункт головного меню EXIT або натиснути клавішу ESC в головному меню.
Висновки
У курсовій роботі, згідно технічного завдання,
розроблено інтерфейс комп’ютерної системи управляння процесом випалювання
будівельних матеріалів з використанням принципів об’єктно-орієнтованого
програмування.
В першому розділі зроблено аналіз об’єкта
автоматизації, дана коротка класифікація сучасних об’єктно-орієнтованих мов
програмування, проведено огляд та аналіз сучасних технологій та засобів
проектування комп’ютерних систем управління, розглянута універсальна мова
програмування.
В другому розділі визначені всі функції, які
повинна виконувати система, що проектується. Визначено з яких частин
складається система у вигляді структурної моделі. Розроблено UML-діаграми
варіантів використання, діяльності та послідовностей. Розроблено структуру бази
даних та структуру запису файлу. Складено таблицю тестової бази даних.
В третьому розділі розроблена структура модулів
програмного забезпечення, розроблена структура модуля меню, розроблена структура
бази даних та розроблена структура модуля заставки.
В четвертому розділі розроблений план тестів
програмного забезпечення та проведено тестування програмного забезпечення, що
показало відповідність програмного забезпечення з індивідуальним завданнями.
В п’ятому розділі проведено дослідження
ефективності програмного забезпечення.
В шостому розділі розроблені інструкції
системному програмісту та користувачу. Наведено мінімальний перелік файлів без
яких неможлива робота програми.
Отже, даний програмний комплекс можна
рекомендувати до використання у виробничому процесі випалювання будівельних
матеріалів як додатковий шар, який може бути використаний як інтерфейс
оператора для спрощення роботи з базою даних, що формується в процесі
моніторингу технологічного процесу.
Список
літератури
1. Бушуев
С.Д. Автоматика и автоматизация производственных процессов / С.Д. Бушуев В.С.
Михайлов - М., 1990. - 256 с.
2. Бронхин
А.С. Основы автоматики производства и контрольно-измерительные приборы на
предприятиях промышленности строительных материалов / А.С. Бронхин, Ю.С.
Гризак. - М., 1974. - 375 с.
3. Ковалюк
Д.О. Моделювання тепло-технологічних об’єктів з розподіленими параметрами. /
Д.О. Ковалюк, С.М. Москвіна. - Вінниця: КІВЦ ВНТУ, 2010. - 158 с.
4. Объектно-ориентированные
технологии проектирования прикладных программных систем [Електронний ресурс] /
С.С. Гайсарян // Библиотека on-line - Режим доступу до журн.:
http://citforum.ru/programming/oop_rsis/index. shtml
5. Брой
М. Информатика. Основополагающеее введение: в 4-х ч. Ч.1. - М.: Диалог-МИФИ,
1996. - 304 с.
6. Калянов
Г.Н. Структурный системный анализ (автоматизация и применение). - М.:
"Лори", 1996. - 242 с.
. Електронна
бібліотека Вікіпедія [Електронний ресурс] Smalltalk - Вікіпедія - [Режим
доступу] http://uk. wikipedia.org/wiki/Smalltalk
. Електронна
бібліотека Вікіпедія [Електронний ресурс] Ада - Вікіпедія - [Режим доступу]
http://ru. wikipedia.org/wiki/Ада
. Л.А.
Калиниченко Язык определения интерфейсов IDL в архитектуре / Калиниченко Л.А.,
Когаловский М.Р. CORBA. - М. - 176 с.
. Подбельский
В.В. Язык Си++ - М.: Финансы и статистика, 2001. - 560 с.
. Герберт
Шилдт. Сетевое программирование для профессионалов.
. -
М.: Наука, 2006. - 712 с.
. Тихомиров
Ю.В. Самоучитель MFC. - СПб.: БХВ-Петербург, 2002. - 640 с.
. Шлеер
С. Объектно-ориентированный анализ: моделирование мира в состояниях / Шлеер С.,
Меллор С. - К.: "Диалектика", 1993. - 240 с.
15. Електронна
бібліотека Вікіпедія [Електронний ресурс] UML - Вікіпедія - [Режим доступу]
http://ru. wikipedia.org/wiki/UML
16. ГОСТ
19.701 - 90 (ИСО 5807.85) - Схеми алгоритмів програм, даних та систем. - М.:
Госстандарт, 1990.
17. ГОСТ
19.781 - 83 - Програмне забезпечення систем обробки даних. - М.: Госстандарт,
1983.
18. ГОСТ
19.101 - 77 - Розробка програмної документації, видів програм та програмних
документів. - М.: Госстандарт, 1977.
. ГОСТ
19.401 - 78 - Текст програми. Вимоги до змісту оформлення. - М.: Госстандарт,
1978.
. ДСТУ
3008 - 95 - Розробка технічної документації. - К.: Держстандарт України, 1995.
. ГОСТ
7.1 - 2003 - Система стандартів з інформації, бібліотечної та видавничої
справи. Бібліографічний запис. Бібліографічний опис. Загальні вимоги та правила
складання. - М.: Госстандарт, 2003.
Додатки
Додаток
А
Міністерство освіти і науки, молоді та спорту
України
Вінницький національний технічний університет
Інститут автоматики, електроніки та комп’ютерних
систем управління
Керівник курсової роботи
к. т. н., доц. Москвіна С.М.
_______________________
"___”_____________2012р.
Розробив студент гр.3СІ-11
Жук О. С.
_______________________"___”_____________2012р.
ТЕХНІЧНЕ ЗАВДАННЯ
на курсову роботу на тему:
" Розробка програмного забезпечення
комп’ютерної системи управління процесом випалювання будівельних матеріалів з
використанням принципів об’єктно-орієнтованого програмування. ”
. Призначення та галузь застосування розробки.
.1 Призначення - контроль процесів випалювання
будівельних матеріалів.
.2 Галузь застосування - промисловість
будівельних матеріалів.
. Основа розробки - робочий навчальний план
дисципліни.
. Мета розробки.
.1 Мета курсової роботи - розробка програми для
контролю теплових параметрів згідно технологічних процесів при випалюванні
будівельних матеріалів.
.2 Перелік головних функцій. Програмне
забезпечення комп’ютерної системи управління повинне працювати в 2-х режимах:
- режим адміністратора;
- режим користувача;
режим адміністратора включає наступні функції:
- робота з базою даних;
- створення бази даних;
- перегляд бази даних;
- редагування бази даних;
- видалення бази даних.
режим користувача включає наступні функції:
- пошук інформації;
- пошук інформації в базі
даних за заданими критеріями;
- статистична обробка даних
(мінімальне, максимальне, середньо квадратичне відхилення, коефіцієнт кореляції
тощо);
- програма виведення
інформації в вигляді таблиць та графіків.
·
4. Вхідні дані представлені в індивідуальному завданні в вигляді
таблиці.
·
5. Вихідні дані відповідають задачам, що розв’язує система.
·
6. Джерела розробки - індивідуальне завдання на курсовий робота з
дисципліни, літературні та інші технічні матеріли з об’єктно-орієнтованого
програмування:
- Лаура Томсон и Люк
Веллинг,: Москва, 2003. - 672 c.
- Гради Буч.
Объектно-ориентированный анализ и проектирование с примерами применения. - М.:
Конкорд, 1992 - 519 с.
- Леоненков А.В. Розробка UML-діаграм
[Електронний ресурс] /Електронний посібник - [режим доступу] http://khpi-iip.
mipk. kharkiv.edu/library/case/
<http://khpi-iip.mipk.kharkiv.edu/library/case/>
7. Технічні вимоги.
7.1 Вимоги до програмної
платформи
7.1.1 Наявність програмного середовища PHP.
.1.2 Операційна система - WINDOWS.
5.1.3 ПЗ необхідно протестувати та зробити
висновки щодо придатності його до використання.
Все програмне забезпечення та супроводжуюча
технічна документація повинні задовольняти наступним ГОСТам:
ГОСТ 19.701-90
ИСО 5807-85 - ГОСТ на розробку програмних
документів, схеми алгоритмів програм, даних та системи.
ГОСТ 19.781-74 - Вимоги до розробки програмного
забезпечення
ГОСТ 19.101-77 (СТ СЭВ 1626-79) - держстандарт на
розробку програмної документації, видів програм та програмних документів.
ГОСТ 19.401-78 - Текст програми. Вимоги до змісту
та оформлення.
ГОСТ 19.106-78 - Вимоги до програмної
документації.
ГОСТ 7.1 - 84 та ДСТУ 3008-95 - Розробка
технічної документації.
. Стадії та етапи розробки.
.1 Граничні терміни виконання.
- постановка задачі;
- аналіз сучасних методів
проектування - 10.09.2012
- розробка алгоритмічного
забезпечення - 01.11.2012
- розробка UML-діаграм
проекту - 10.11.2012
- програмна реалізація
модулів - 01.12.2012
- тестування та аналіз результатів
- 05.12.2012
- розробка документів на
супроводження програмного забезпечення 05.12.2012
. Вимоги до надійності.
- надійність даного проекту
забезпечується використанням структурного програмування;
- програма працює під
керівництвом єдиного меню;
- в ній передбачені
переривання, тобто програма реагує на невірні дії користувача, вказує на дії,
які необхідно виконати.
10. Порядок контролю і приймання.
Отримання завдання на виконання курсового проекту
- 10.09.2012 р.
Термін здачі курсового проекту на перевірку - до
05.12.2012 р.
Термін захисту курсового проекту - до 15.12.2012
р.
. Коректування технічного завдання допускається з
дозволу керівника проекту.
Лістинг "DB. CPP"
Додаток
Б
#include <stdio. h>
#include <string. h>
#include <stdlib. h>
#include <limits. h>
#include <conio. h>
#include <graphics. h>
#define FALSE 0
#define TRUE 1struct record{info; /* кількість
записів у файлі */tem_fire; /* Температура зони випалювання */tem_heat; /*
Температура зони підігріву */tem_cool; /* Температура зони охолодження
*/pressure_fire; /* Тиск зони випалювання */pressure_heat; /* Тиск зони
підігріву */pressure_cool; /* Тиск зони охолодження */fuel_gas; /* кількість
подачі газу */fuel_air; /* кількість подачі повітря */moisture_res; /*
вологість сирцю */moisture_air; /* вологість повітря */lim_compres_str [5]; /*
границя на стиск 5 цеглин*/mark; /* марка цегли */
}Record;struct
standartparam{Tfire_min;Tfire_max;Theat_min;Theat_max;Tcool_min;Tcool_max;Pfire_min;Pfire_max;Pheat_min;Pheat_max;Pcool_min;Pcool_max;Mres_min;Mres_max;Mair_min;Mair_max;
}RecSTDP;
#define MAXREC (LONG_MAX / sizeof (Record))
// Create new DB with name path. Returned FILE or
NULLCreateDB (const char *path);
// Opened DB with name path. Returned FILE or
NULL end header*OpenDB (const char *path, Record *header);
// Readed record with namber recnum in to rec.
Returned TRUE/FALSEReadRecord (FILE *f, long recnum, Record *recp);
// Writen record with namber recnum and rec.
Returned TRUE/FALSEWriteRecord (FILE *f, long recnum, Record *recp);
// Added Record into end of file. Returned
TRUE/FALSEAppendRecord (FILE *f, long recnum, Record *recp);
// Delete Record from file. Returned
TRUE/FALSEDeleteRecord (const char *f_name, long recnum);CreateSTPF (const char
*path);SetRecSTDP (RecSTDP *rec);ReadSTPF (const char *path, RecSTDP
*recp);GetMarka (const int *arrey);GetMin (const int *arrey);SerArufm (const
int *arrey);InitGraphika ();Grafik (float *y, float min, float max, int kilk,
char *name);MAX (float *y, int kilk);MIN (float *y, int kilk);* setycoord
(float *mas, float min, float max, int num);gety (float cur, float min, float
max);drawLine (float x1, float y1, float x2, float y2, float ymin, float ymax);
// *********************** // CreateDB (const
char *path)
{*f;rec;result;=fopen (path,"wb"); //
creater new file db(! f) return FALSE;(&rec,0,sizeof (Record));. info=0; //
started param numrec=0, as db is empty=WriteRecord (f,0,&rec);(f);result;
}*OpenDB (const char *path, Record *header)
{*f=fopen (path,"r+b"); // opened file
f(f) ReadRecord (f,0, header); // reading info record, get numrecf;
}
// reading record with recnum from file f in
Record, thet are point *recp.ReadRecord (FILE *f, long recnum, Record *recp) //
{(recnum>MAXREC) return FALSE;(fseek (f,recnum
* sizeof (Record),SEEK_SET)! =0) return FALSE;(fread (recp, sizeof (Record), 1,
f) ==1);
}WriteRecord (FILE *f, long recnum, Record *recp)
{(recnum > MAXREC) return FALSE;
// позиціювання покажчика(fseek (f,recnum* sizeof
(Record),SEEK_SET)! =0) return FALSE;(fwrite (recp,sizeof (Record),1,f) ==1);
}AppendRecord (FILE *f, long *recnum, Record
*recp)
{
// установка файлового покажчика в кінець
файлу(fseek (f,0, SEEK_END)! =0) return FALSE;
// ftell (f) повертає значення покажчика у файлі
// визначення номера запису, що додається
*recnum = ftell (f) / sizeof (Record);>info =
*recnum;WriteRecord (f, *recnum, recp); // дозапис у кінець файлу
}DeleteRecord (const char *f_name, long recnum)
{*f;*bf;header, buf;curnum, wnum, size;= OpenDB (f_name,&header);=header.
info;(! f) return 0;(! CreateDB ("buferfile")) return - 1;(!
ReadRecord (f, 0, &buf)) return - 2;(curnum=1, wnum=1; curnum<=size;
curnum++) {(! ReadRecord (f, curnum, &buf)) return - 3;= OpenDB
("buferfile",&header);(! bf) return - 4;(recnum! =curnum) {(!
AppendRecord (bf, &wnum, &buf)) return - 5;. info=wnum;(! WriteRecord
(bf, 0, &header)) return - 6;(fclose (bf)! =0) return - 7;++;
}
}(fclose (f)! =0) return - 8;= OpenDB
("oldata",&header);(bf) {(bf);(remove ("oldata")! =0)
return - 9;
}fclose (bf);(rename (f_name,"oldata")!
=0) return - 10;(rename ("buferfile",f_name)! =0) return - 11;1;
}
// *********************** // CreateSTPF (const
char *path)
{*f;rec;result;=fopen (path,"wb");(! f)
return FALSE;(&rec);= (fwrite (&rec,sizeof (RecSTDP),1,f)
==1);(f);result;
}ReadSTPF (const char *path, RecSTDP *recp) //
{*f;=fopen (path,"rb");(! f) return
FALSE;rez= (fread (recp, sizeof (RecSTDP), 1, f) ==1);(f);rez;
}SetRecSTDP (RecSTDP *rec)
{>Tfire_min=960;>Tfire_max=1135;>Theat_min=580;>Theat_max=600;>Tcool_min=620;>Tcool_max=640;>Pfire_min=1.4;>Pfire_max=1.9;>Pheat_min=-3.5;>Pheat_max=1.4;>Pcool_min=2;>Pcool_max=2.7;>Mres_min=10;>Mres_max=15;>Mair_min=3;>Mair_max=5;
}GetMarka (const int *arrey) {min = GetMin
(arrey);ser = SerArufm (arrey);(ser<min) return ser;return min;
}GetMin (const int *arrey) {min=arrey [0];(int
i=1; i<5; ++i) {(min>arrey [i]) min=arrey [i];
}/=25;*=25;(min<50) return 0;min;
}SerArufm (const int *arrey) {rez=0;(int i=0;
i<5; ++i) rez+=arrey [i];/=125;*=25;(rez<75) return 0;rez;
}Grafik (float *y, float min, float max, int
kilk, char *name)
{minznach, maxznach;= MIN (y, kilk);= MAX (y,
kilk);(minznach>min) minznach=min;(maxznach<max) maxznach=max;delta =
maxznach-minznach;/=8;=delta;+=delta;*ycoord =setycoord
(y,minznach,maxznach,kilk);ymax=gety (max, minznach, maxznach);ymin=gety (min,
minznach,
maxznach);knum=1;();(3);();(15);(40,0,40,460);(40,460,640,460);i;(i=60;
i<640; i+=60) line (i,455, i,465);(i=0; i<460; i+=46) line (37, i,43,
i);mes [10] [10];kurzn=maxznach;(i=0; i<10; ++i) sprintf (mes [i],"%
-6.2f",kurzn-=delta);(i=0; i<10; ++i) outtextxy (0, i*46+40,mes
[i]);(i=0; i<10; ++i) {(mes [0],"%5d",knum+i);(i*60+25,470,mes
[0]);
}(160,8,name);=0;(kilk<11)
{(1);(40,ymin,640,ymin);(40,ymax,640,ymax);(i=0; i<kilk-1; ++i) drawLine
(i*60+60,ycoord [i], i*60+120,ycoord [i+1],ymin,ymax);();
}{chs;maxzn=kilk-10;=0;{(15);(1,3);(40,465,640,480);(45,0,640,455);(i=0;
i<10; ++i) {(mes [0],"%5d",knum+i+1);(i*60+25,470,mes [0]);
}(160,8,name);(160,16,"Use 'a' / 'd' to list
graph ENTER to exit");(1);(40,ymin,640,ymin);(40,ymax,640,ymax);(i=0;
i<9; ++i) DrawLine (i*60+60, ycoord [i+knum], i*60+120, ycoord [i+knum+1],
ymin,ymax);=getch ();(chs) {'a': if (knum>0) - -knum; break;'d': if
(knum<maxzn) ++knum; break;: break;
}
}while (chs! =13);
}();(ycoord);0;
}InitGraphika () {/* request auto detection
*/gdriver = DETECT, gmode, errorcode;
/* initialize graphics mode */(&gdriver,
&gmode,". \bgi");
/* read result of initialization */= graphresult
();(errorcode! = grOk) /* an error occurred */
{("Graphics error: %s\n", grapherrormsg
(errorcode));("Press any key to halt: ");();(1); /* return with error
code */
}
}MAX (float *m, int n) {z;=m [0];(int i=1;
i<n; i++) if (m [i] >z) z=m [i];z;
}MIN (float *m, int n) {z;=m [0];(int i=1;
i<n; i++) if (m [i] <z) z=m [i];z;
}* setycoord (float *mas, float min, float max,
int num) {*rez;= (float*) calloc (num,sizeof (float));(int i=0; i<num; ++i)
rez [i] = gety (mas [i], min, max);rez;
}gety (float cur, float min, float max)
{rez=460;*= (max-cur) / (max-min);rez;
}drawLine (float X1, float Y1, float X2, float
Y2, float ymin, float ymax) {x1=X1, y1=Y1, x2=X2, y2=Y2;int deltaX = abs (x2 -
x1);int deltaY = abs (y2 - y1);int signX = x1 < x2? 1: - 1;int signY = y1
< y2? 1: - 1;color;error = deltaX - deltaY;(y2>ymin||y2<ymax)
color=RED;color = YELLOW;(x2, y2, color);(x1! = x2 || y1! = y2)
{(y1>ymin||y1<ymax) color=RED;color = YELLOW;(x1, y1, color);int error2 =
error * 2;
// (error2 > - deltaY) {- = deltaY;+= signX;
}(error2 < deltaX) {+= deltaX;+= signY;
}
}
}
Лістинг "ZAST. CPP" Додаток В
#include <dos. h>
#include <stdlib. h>
#include <conio. h>
#include <graphics. h>
#include <stdio. h>CShape{:void Draw () {};
};CPoint: public CShape{:x;y;color;:(int X, int
Y, int Color) {x=X; y=Y; color=Color; }Draw () {putpixel (x,y,color); }
};CCircle: public CPoint{:r;:(int X, int Y, int
R, int Color): CPoint (X, Y, Color) {r=R; }Draw () {setcolor (color);
setfillstyle (1, color); fillellipse (x, y, r, r); }
};CRectangle: public CPoint{:x1;y1;:(int X, int
Y, int X1, int Y1, int Color): CPoint (X, Y, Color) {x1=X1; y1=Y1; }Draw ()
{setcolor (color); setfillstyle (1, color); bar (x, y, x1, y1); }
};CMoveblePoint: public
CPoint{:dx;xmodif;modcol;:(int X, int Y, int Dx, int Xm, int Mc, int col):
CPoint (X,Y,col) {dx=Dx; xmodif=Xm; modcol=Mc; }Draw () {x+=dx; if
(x>xmodif) color=modcol; putpixel (x,y,color); }
};CMCircle: public CMoveblePoint{:r;:(int X, int
Y, int R, int Dx, int Xm, int Mc, int Color): CMoveblePoint (X, Y, Dx, Xm, Mc,
Color) {r=R; }Draw () {x+=dx; if (x>xmodif) color=modcol; setcolor (color);
setfillstyle (1, color); fillellipse (x, y, r, r); }
};CMRectangle: public CMoveblePoint{:x1;y1;:(int
X, int Y, int X1, int Y1, int Dx, int Xm, int Mc, int Color): CMoveblePoint (X,
Y, Dx, Xm, Mc, Color) {x1=X1; y1=Y1; }Draw () {x+=dx; x1+=dx; if (x>xmodif)
color=modcol; setcolor (color); setfillstyle (1, color); bar (x, y, x1, y1); }
};CMLine: public CMRectangle{:(int X, int Y, int
X1, int Y1, int Dx, int Xm, int Mc, int Color): CMRectangle (X, Y, X1, Y1, Dx,
Xm, Mc, Color) {};Draw () {x+=dx; x1+=dx; if (x>xmodif) color=modcol;
setcolor (color); line (x, y, x1, y1); }
};InitGraph ();* CreateShape (); // створює масив
фігурDrawShape (CShape *ArrCShape); // виводить фігури на екранOutInfo (); //
виводить інформацію на екранCloseGraph (CShape *ArrCShape); // завершує
графічний режимZastavka ();Zastavka ()
{();*arr= CreateShape ();(arr);();(arr);0;
}InitGraph ()
{
/* request auto detection */gdriver = DETECT,
gmode, errorcode;
/* initialize graphics mode */(&gdriver,
&gmode,". \bgi");
/* read result of initialization */= graphresult
();(errorcode! = grOk) /* an error occurred */
{("Graphics error: %s\n", grapherrormsg
(errorcode));("Press any key to halt: ");();(1); /* return with error
code */
}
}* CreateShape () {i=0;*p [100];[i++] =new
CRectangle (0, 0, getmaxx (), getmaxy (),
);[i++] =new CCircle (0, 0, 80, 14);[i++] =new
CCircle (250, 50, 25, 15);[i++] =new CCircle (275, 35, 25, 15);[i++] =new
CCircle (285, 65, 25, 15);[i++] =new CCircle (310, 50, 25, 15);[i++] =new
CCircle (450, 50, 25, 15);[i++] =new CCircle (475, 45, 25, 15);[i++] =new
CCircle (485, 55, 25, 15);[i++] =new CCircle (510, 50, 25, 15);[i++] =new
CRectangle (0,399,getmaxx (),getmaxy (),BLACK);[i++] =new CRectangle
(275,299,300,399,BLUE);[i++] =new CRectangle (285,309,300,399,RED);
// telega[i++] =new CMRectangle (5,380,95,385,
20,600,0,DARKGRAY);[i++] =new CMCircle (25, 392, 7, 20,600,0, LIGHTGRAY);[i++]
=new CMCircle (75, 392, 7, 20,600,0, LIGHTGRAY);[i++] =new CMRectangle
(10,343,90,379, 20,300,RED,YELLOW);[i++] =new CMLine (10,352,90,352, 20,600,RED,DARKGRAY);[i++]
=new CMLine (10,361,90,361, 20,600,RED,DARKGRAY);[i++] =new CMLine
(10,370,90,370, 20,600,RED,DARKGRAY);j,k;=1;(j=20; j<90; j+=10) {(k>0)
{[i++] =new CMLine (j,343,j,352, 20,600,RED,DARKGRAY);[i++] =new CMLine
(j,361,j,370, 20,600,RED,DARKGRAY);
}{[i++] =new CMLine (j,352,j,361,
20,600,RED,DARKGRAY);[i++] =new CMLine (j,370,j,379, 20,600,RED,DARKGRAY);
}=k*-1;
}
// end telega[i++] =new CRectangle
(300,299,400,399,BLUE);p;
}DrawShape (CShape *ArrCShape) {t=0;
// Out rezult(t<25) {++;=0;( (i<100)
&& (ArrCShape [i]! =NULL)) {[i] - > Draw ();++;
}(50);
}
}OutInfo () {(LIGHTGREEN);style=7;size=3;(style,
HORIZ_DIR, size);(200, 100, "Kursova robota");(100, 150,
"Compuret system control proccec");(150, 200, "burning of
bricks");(250, 250, "ZHUK O. S.3si-11");();
}CloseGraph (CShape *ArrCShape) {( (i<100)
&& (ArrCShape [i]! =NULL)) {ArrCShape [i];++;
}
сlosegraph ();
}
Лістинг "MAIN. CPP" Додаток Д
#include "\. \ready\workbd\winow. cpp"
#include "\. \ready\workbd\ZAST.
CPP"main () {();();1;
}