Графічне відображення графіка роботи водорегулюючого вузла
Завдання
Розробити програму для графічного відображення схеми та хвильових діаграм струму, напруги та потужності в колі змінного струму з ємністю.
(найменування вищого учбового закладу)
Кафедра
Дисципліна
Спеціальність
Курс _____________Група _____________Семестр
ЗАВДАННЯ
на курсову роботу студента
(прізвище, ім’я, по батькові)
1. Тема роботи
2. Термін здачі студентом закінченої роботи
3. Вихідні дані до роботи
4. Зміст розрахунково-пояснювальної записки (перелік питань, які належать розробці)
5. Перерахунок допоміжного матеріалу
6. Дата видачі завдання
КАЛЕНДАРНИЙ ПЛАН
№ п/пНайменування етапів курсової роботиТермін виконання етапів роботиПримітки
Студент
(підпис)
Керівник
(підпис) (прізвище, ім’я, по батькові)
“______” ___________________ 20 ___ р.
Вступ
Завдяки теперішньому комп'ютерному розвитку людство змогло полегшити собі роботу. Комп'ютеризація під-приємств, наукових, освітніх закладів змогла подолати ряд важких перешкод. Процеси, які раніше неможливо було виконати за десятки років, зараз задопомогою комп'ютера можна виконати ту саму роботу за досить короткий час.
Деякі процеси в різних галузях науки і техніки можна описати і наочно зобразити на екрані комп'ютера,викори-
ставши певні програми.
Завдання цієї курсової роботи полягає в розробці програми, яка показувала б в середовищі BC режим роботи водорегулюю-чого вузла, в залежності від рівня грунтових вод.
Опис вузла
Вузол складається з таких частин:
6,11-трубопровод
1-магістральний канал,
2,4,12,13-шлюзи,
3-аванкамера,
5-колекторні канали,
7-насосна станція,
8,9,10-заслінки,
Шлюзи і заслінки мають електричний привід,яким управляють при допомозі типових шкафів управління. Іформаційне забезпечення вузла включає в себе електродні датчики рівнів грунтових вод, розміщених в вимірювальних колодцях на обох міліорованих масивах, датчики рівнів води в каналах, аванкамері і датчик опадів.
Принцип роботи
Принцип роботи водорегулюючого вузла заключається в слідуючому. При підніманні рівня грунтових вод до верхньої межі з датчика надходить електричний сигнал, в результаті чого відкриваються шлюзи 4,12 і заслінка 10 на напірному трубопроводі 11. Вода з колекторних каналів 5 потрапляє в аван-камеру 3. Коли рівень води в аванкамері досягає верхнього електрода, спрацьовують насосні установки, які перекачують воду по трубопроводі 11 в магістральний канал 1. При опусканні рівня грунтових вод до середнього значення відключаються насосні насосні установки, шлюзи 4,12 і заслінка 10 закриваються.
Якщо рівень грунтових вод знову піднімається до верхнього рівня, то водо-регулюючий вузол знову починає працювати на спад надлишкової води. При спаданні за рахунок сумарного випаровуван-ня рівня грунтових вод до нижнього межі з датчика надходить сигнал, який викликає відкриття шлюзів 2, 13 і заслінок 8, 9. Вода з магістрального каналу потрапляє в аванкамеру і звідти насосами подається в колекторні канали. При підніманні рівня води в каналах до верхньої межі насоси відключаються. Під дією інфільтрації рівень
води спадає, і коли досягає нижнього електрода, включаються насоси. Так за рахунок перiодичної роботи насосів піднімається рівень грунтових вод. Придосяганні ним середнього значення насоси відключаються, шлюзи 2, 13 і заслінки 8, 9 закриваються.
У випадку випадання визначеної кількості опадів з датчика опадів надходить сигнал, який переводить водорегулюючий вузол в режим спаду незалежно від положення рівня грунтових вод і рівнів в колекторних каналах.
Автоматичне регулювання водного режиму при допомозі водо-регулюючих вузлів зменшує технологічні викиди води, знижує експлуатаційні ресурси і збільшує урожайність. Один вузол може обслуговувати до 1000 га землі.
Текст програми:
#include
#include
#include
#include
#include
#include
void program(void);
void fon(void)
{int i;
setbkcolor(3);
setcolor(14);
for(i=1;i<=640;i+=20)
{ line(0-i,-10,100+i,480); }
setcolor(1);
settextstyle(1,0,5);
outtextxy(450,50,"Kursowa");
outtextxy(450,100,"pobota");
setfillstyle( 1,1);
settextstyle(0,0,1);
fillellipse(160,155,75,20);
outtextxy(165,155,"program");
fillellipse(340,240,75,20);
outtextxy(340,240,"Tytulka");
fillellipse(550,320,75,20);
outtextxy(550,320,"Exit");}
void menu(int t)
{ setcolor(14);
setfillstyle( 1,1);
fillellipse(160,155,75,20);
outtextxy(145,155,"program");
fillellipse(340,240,75,20);
outtextxy(330,240,"Tytulka");
fillellipse(550,320,75,20);
outtextxy(540,320,"Exit");
setcolor(15);
setfillstyle(1,4);
/*аyx ¬Ґо*/
if(t==1){ fillellipse(160,155,75,20);
outtextxy(160,155,"program");
}
if(t==2) { fillellipse(340,240,75,20);
outtextxy(340,240,"Tytulka");
}
if(t==3){
fillellipse(550,320,75,20);
outtextxy(550,320,"Exit");
}
}//---------------Фнкція виведення титульної сторінки-----------------
void Titul ()
{
restorecrtmode();
clrscr();
textmode(BW80);
textcolor(7);
cprintf(" Міністерство освіти і науки України");
printf("\n");
cprintf(" Рівненський державний технічний університет");
printf("\n");
cprintf(" Кафедра електротехніки і автоматики");
printf("\n\n\n\n\n");
textcolor(4 + BLINK);
printf(" ");
cprintf("КУКРСОВА РОБОТА);
printf("\n");
textcolor(7);
printf("\t\t");
cprintf(" з курсу:\"Програмування та алгоритмічні мови\"");
printf("\n");
textcolor(7);
printf("\t\t");
cprintf("на тему:\"Графічне відображення режиму роботи\"");
printf("\n");
printf("\t\t\t ");
cprintf("водорегулюючого вузла");
printf("\n\n\n\n\n\n");
textcolor(2);
printf("\t\t\t\t\t\t");
cprintf("Виконав студент ");
printf("\n");
printf("\t\t\t\t\t\t");
cprintf("першого курсу ФПМ і КІС");
printf("\n");
printf("\t\t\t\t\t\t");
cprintf("групи АУТП-2");
printf("\n");
printf("\t\t\t\t\t\t");
cprintf("Шимків Михайло ");
printf("\n\n\n\n");
printf("\t\t\t ");
textcolor(58);
cprintf("РІВНЕ-2002");
textcolor(WHITE + BLINK );
printf("\n\t\t\t");
cprintf(" натисніть будьяку клавішу");
getch();
setgraphmode(getgraphmode());
fon();
menu(2);
}
int main(void)
{
int i=1,q=1;
int j,iii,iiii;
int r=1,re=2,ch;
int gdriver = DETECT, gmode;
initgraph(&gdriver, &gmode, "c:\\bcpp\\bgi");
fon();
menu(1);
n:
z:
a:
g:
while(i>0)
{
ch=getch();
/*Переміщення*/
if(ch==27||(ch==13&&q==3)) goto m;
if(ch==13&&q==2)
{ Titul();
goto n;
}
if(ch==13&&q==1)
{ program();
goto z; }
if(ch==72)
{
if (q==1) q=3;
else q=q-1;
}
else
{if(ch==77)
{
if (q==3) q=1;
else q=q+1; }
else
{if(ch==80)
{
if (q==3) q=1;
else q=q+1;}
else
{if(ch==75)
{
if (q==1) q=3;
else q=q-1;}}
} }
menu(q);
}
m:
closegraph();
}
void povin(void)
{cleardevice();
setfillstyle(1,15);
bar(120,360,140,370);
bar(490,360,510,370);
setfillstyle(1,15);
bar(120,250,140,260);
bar(490,250,510,260);
line(90,410,550,410);
rectangle(120,360,140,370);
line(124,370,124,390);
line(136,370,136,390);
rectangle(490,360,510,370);
line(494,370,494,390);
line(506,370,506,390);
line(136,390,476,390);
line(90,390,124,390);
line(506,390,550,390);
line(486,390,494,390);
line(476,190,476,200);
line(476,220,476,390);
line(486,182,486,200);
line(486,200,476,200);
line(486,220,476,220);
line(486,220,486,390);
line(476,200,486,220);
line(476,220,486,200);
line(124,260,124,360);
line(136,325,136,360);
line(150,355,466,355);
line(150,325,150,355);
line(466,324,466,355);
line(136,325,150,325);
line(136,313,150,313);
line(136,260,136,313);
line(150,285,150,313);
line(150,285,281,285);
line(289,285,466,285);
line(466,285,466,313);
line(466,313,476,313);
line(466,323,476,323);
line(486,313,494,313);
line(486,323,494,323);
rectangle(494,260,506,360);
rectangle(120,250,140,260);
rectangle(490,250,510,260);
rectangle(260,200,310,240);
rectangle(281,240,289,292);
rectangle(278,292,292,297);
line(281,170,281,200);
line(289,170,289,200);
line(136,170,166,170);
line(166,162,186,170);
line(166,170,186,162);
line(166,170,166,162);
line(186,170,186,162);
line(136,162,166,162);
line(186,170,281,170);
line(289,170,325,170);
line(333,170,454,170);
line(474,170,494,170);
line(186,162,454,162);
line(454,162,454,170);
line(474,162,474,170);
line(476,220,476,390);
line(454,170,474,162);
line(454,162,474,170);
line(474,162,494,162);
line(136,170,136,250);
line(325,170,325,190);
line(333,170,333,182);
line(325,190,476,190);
line(333,182,486,182);
line(494,170,494,250);
setfillstyle(1,9);
bar(90,409,550,391);
bar(125,371,135,392);
bar(495,371,505,392);
float c1=0;
while(c1<250)
{setfillstyle(1,9);
bar(0,60-c1/9,640,60-c1/9);
delay(30);c1+=2.6;
setfillstyle(1,9);
bar(0,60,640,110);
line(0,60,640,60);
line(494,60,494,162);
line(506,60,506,250);
line(124,60,124,250);
line(136,60,136,162);
delay(30);c1+=2.6;}
int k=0;
while(k<300)
{
setfillstyle(1,4);
bar(120,250,140,260);
bar(490,250,510,260);
setfillstyle(1,9);
bar(495,k+60,505,k+60);
bar(125,k+60,135,k+60);
delay(25);k++;}
float q=0;
while(q<200)
{rectangle(278,292,292,297);
line(281,282,281,292);
line(289,282,289,292);
setfillstyle(1,9);
bar(135+q,314,150+q,324);
bar(500-q,314,467-q,322);
bar(151+q,286,160+q,354);
bar(465-q,286,450-q,354);
delay(15);q+=0.9;}
float w=0;
while(w<37)
{setfillstyle(1,9);bar(282,293-w,288,278-w);
delay(15);w+=0.8;}
float e=0;
while(e<37)
{ setfillstyle(1,9);
bar(261,239-e,309,238-e);
delay(15);e+=0.8;}
float t=0;
while(t<67)
{setfillstyle(1,9);
bar(282,230-t,288,239-t);
delay(15);t+=0.8;}
float y=0,u=0;
while(y<177)
{setfillstyle(1,9);
bar(276-y/2,163,277+y,169);
delay(10);y+=1.2;
bar(326,170+u/9,332,168+u/9);
delay(15);u+=1.1; }
float z=0;
while(z<96)
{
setfillstyle(1,9);
bar(390+z,183,326+z,189);
delay(15);
z+=0.9;}
float i=0;
while(i<192)
{line(476,200,476,220);
line(486,200,486,220);
line(476,220,476,390);
line(486,220,486,390);
setfillstyle(1,9);
bar(477,i+189,485,i+200);
delay(15);
i+=1;}
float o=0;
while(o<27)
{setfillstyle(1,0);
bar(0,30+o,640,33+o);
delay(20);o+=0.8;}
int x=0;
while(x<300)
{
setfillstyle(1,4);
bar(120,250,140,260);
bar(490,250,510,260);
setfillstyle(1,0);
bar(495,x+60,505,x+60);
bar(125,x+60,135,x+60);
delay(25);x++;}
float a=0;
while(a<200)
{setfillstyle(1,15);
bar(120,250,140,260);
bar(490,250,510,260);
rectangle(278,292,292,297);
line(281,282,281,292);
line(289,282,289,292);
setfillstyle(1,0);
bar(135+a,314,150+a,324);
bar(500-a,314,467-a,322);
bar(151+a,286,160+a,354);
bar(465-a,286,450-a,354);
delay(15);a+=0.9;}
float s=0;
while(s<37)
{setfillstyle(1,0);
bar(282,293-s,288,278-s);
delay(15);s+=0.8;}
float d=0;
while(d<37)
{ setfillstyle(1,0);
bar(261,239-d,309,238-d);
delay(15);d+=0.8;}
float f=0;
while(f<67)
{setfillstyle(1,0);
bar(282,230-f,288,239-f);
delay(15);f+=0.8;}
float g=0;
while(g<177)
{setfillstyle(1,0);
bar(276-g/2,163,277+g,169);
delay(10);g+=1.2;
}
float h=0;
while(h<177)
{setfillstyle(1,0);
bar(326,170+h/9,332,168+h/9);
delay(15);h+=1.1; }
float j=0;
while(j<96)
{
setfillstyle(1,0);
bar(390+j,183,326+j,189);
delay(15);j+=0.9;}
float l=0;
while(l<192)
{line(476,200,476,220);
line(486,200,486,220);
line(476,220,476,390);
line(486,220,486,390);
setfillstyle(1,0);
bar(477,l+189,485,l+200);
delay(15);
l+=1;}
getch(); }
void posuha(void)
{cleardevice();
line(90,410,550,410);
rectangle(120,360,140,370);
line(124,370,124,390);
line(136,370,136,390);
rectangle(490,360,510,370);
line(494,370,494,390);
line(506,370,506,390);
line(136,390,476,390);
line(90,390,124,390);
line(506,390,550,390);
line(486,390,494,390);
line(476,190,476,200);
line(476,220,476,390);
line(486,182,486,200);
line(486,200,476,200);
line(486,220,476,220);
line(486,220,486,390);
line(476,200,486,220);
line(476,220,486,200);
line(124,260,124,360);
line(136,325,136,360);
line(150,355,466,355);
line(150,325,150,355);
line(466,324,466,355);
line(136,325,150,325);
line(136,313,150,313);
line(136,260,136,313);
line(150,285,150,313);
line(150,285,281,285);
line(289,285,466,285);
line(466,285,466,313);
line(466,313,476,313);
line(466,323,476,323);
line(486,313,494,313);
line(486,323,494,323);
rectangle(494,260,506,360);
rectangle(120,250,140,260);
rectangle(490,250,510,260);
rectangle(260,200,310,240);
rectangle(281,240,289,292);
rectangle(278,292,292,297);
line(281,170,281,200);
line(289,170,289,200);
line(136,170,166,170);
line(166,162,186,170);
line(166,170,186,162);
line(166,170,166,162);
line(186,170,186,162);
line(136,162,166,162);
line(186,170,281,170);
line(289,170,325,170);
line(333,170,454,170);
line(474,170,494,170);
line(186,162,454,162);
line(454,162,454,170);
line(474,162,474,170);
line(476,220,476,390);
line(454,170,474,162);
line(454,162,474,170);
line(474,162,494,162);
line(136,170,136,250);
line(325,170,325,190);
line(333,170,333,182);
line(325,190,476,190);
line(333,182,486,182);
line(494,170,494,250);
setfillstyle(1,9);
bar(90,409,550,391);
bar(125,371,135,392);
bar(495,371,505,392);
setfillstyle(1,15);
bar(120,360,140,370);
bar(490,360,510,370);
setfillstyle(1,15);
bar(120,250,140,260);
bar(490,250,510,260);
setfillstyle(1,9);
bar(0,90,640,110);
line(0,60,640,60);
line(494,60,494,162);
line(506,60,506,250);
line(124,60,124,250);
line(136,60,136,162);
setfillstyle(1,4);
bar(120,360,140,370);
bar(490,360,510,370);
int c=0,v=0;
while(c<96)
{
setfillstyle(1,9);
bar(495,359-c,505,356-c);
bar(125,359-c,135,356-c);
delay(25);c++;
bar(135+v/2,314,150+v/2,324);
bar(500-v,314,467-v,322);
bar(151+v/1.3,286,160+v/1.3,354);
bar(465-v,286,450-v,354);
delay(15);v+=2.9;}
float w=0;
while(w<37)
{setfillstyle(1,9);
bar(282,293-w,288,278-w);
delay(15);w+=0.8;}
float e=0;
while(e<37)
{ setfillstyle(1,9);
bar(261,239-e,309,238-e);delay(15);e+=0.8;}
float t=0;
while(t<67)
{
setfillstyle(1,9);
bar(282,230-t,288,239-t);
delay(15);t+=0.8;}
float y=0;
while(y<229)
{setfillstyle(1,9);
line(166,170,186,170);
line(166,162,186,162);
line(454,170,474,170);
line(454,162,474,162);
bar(276-y/1.55,163,277+y,169);
delay(10);y+=1.2;}
float k1=0;
while(k1<187)
{
setfillstyle(1,9);
bar(495,248-k1,505,249-k1);
bar(125,248-k1,135,249-k1);
delay(25);k1+=1.3;}
float k2=0;
while(k2<28)
{
setfillstyle(1,9);
line(494,60,494,162);
line(506,60,506,250);
line(124,60,124,250);
line(136,60,136,162);
bar(0,89-k2,649,89-k2);
delay(10);k2+=0.7; }
int c1=0,v1=0;
while(c1<96)
{setfillstyle(1,15);
bar(120,360,140,370);
bar(490,360,510,370);
setfillstyle(1,0);
bar(495,359-c1,505,356-c1);
bar(125,359-c1,135,356-c1);
delay(25);c1++;
bar(135+v1/2,314,150+v1/2,324);
bar(500-v1,314,467-v1,322);
bar(151+v1/1.3,286,160+v1/1.3,354);
bar(465-v1,286,450-v1,354);
delay(15);v1+=2.9;}
float w1=0;
while(w1<37)
{setfillstyle(1,0);
bar(282,293-w1,288,278-w1);
delay(15);w1+=0.8;}
float e1=0;
while(e1<37)
{ setfillstyle(1,0);
bar(261,239-e1,309,238-e1);
delay(15);e1+=0.8;}
float t1=0;
while(t1<67)
{setfillstyle(1,0);
bar(282,230-t1,288,239-t1);
delay(15);t1+=0.8;}
float y1=0;
while(y1<229)
{setfillstyle(1,0);
line(166,170,186,170);
line(166,162,186,162);
line(454,170,474,170);
line(454,162,474,162);
bar(276-y1/1.55,163,277+y1,169);
delay(10);y1+=1.2;}
float k3=0;
while(k3<187)
{setfillstyle(1,0);
bar(495,248-k3,505,249-k3);
bar(125,248-k3,135,249-k3);
delay(25);k3+=1.3;}getch();}
void program(){
int x2,x1=0;
setbkcolor(0);
cleardevice();
printf("Введіть рівень води(-100...100)=",x2);
scanf("%d",&x2);
if (x1
{povin();}
else
{posuha();}
cleardevice();
fon();menu(1); }
Висновок
Зараз важко уявити будь-яку галузь математики без комп’ютерів.
Часто доводиться зустрічатись із складними завданнями і проце-
сами ,виконання яких потребує багато часу і зусиль.Для полегшен-ня цих завдань створюються програми такого типу,як дана курсова робота. Завдяки цій курсовій роботі я закріпив здобуті теоретичні знання з курсу “Програмування та алгоритмічні мови”,навчився застосувати їх при вирішенні питань виробничого характеру. Склав програму, яка графічно відображає режим роботи водорегулюючо- го вузла.
Література
1.Герберт Шілдт,” Самоучитель на С и С++”,
“Ирина”, BHV,Санкт-Пітербу