.

Розробка програми для графічного відображення схеми ре-гулювання рівня води в каналі за верхнім б’єфом(курсова робота)

Язык: украинский
Формат: реферат
Тип документа: Word Doc
0 1353
Скачать документ

Міністерство освіти і науки України

Український Державній Університет Водного господарства і природо
користування

Кафедра електротехніки і автоматики

Курсова робота

з дисципліни “Програмування і алгоритмічні мови”

на тему:

“ Розробка програми для графічного відображення схеми регулювання рівня
води в каналі за верхнім б’єфом.”

Виконав:

студент 1-го курсу

ФПМ і КІС

АУТП 12

Тимощук А.І.

Перевірив:

Пастушенко В.Й.

Рівне 2002

Зміст

Вступ………………………………………………………….
…………………………………………………………3

Задача і опис
схеми………………………………………………………….
……………………4

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

Приклад………………………………………………………..
…………………………………………………..12

Висновок……………………………………………………….
………………………………………………… 13

Література……………………………………………………..
………………………………………………..14

Вступ

Для закріплення здобутих теоретичних знань, застосування їх при
вирішенні питань виробничого характеру, а також з метою набуття навиків
по створенню програмного забезпечення , виконується курсова робота з
дисципліни “Програмування та алгоритмічні мови” . В курсовій роботі
необхідно розробити програму на мові програмування C++,яка б графічно
відображала схему регулювання рівня води в каналі за верхнім б’єфом.
Важливо також щоб програма мала системне меню, вводилися дані.

Задача і опис схеми

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

При регулюванні по верхньому б’єфу регулятори 2 забезпечують
стабільний рівень води в верхніх б’єфах перегородок (Рис.1). Для цієї
схеми регулювання лінія рівнів вільної поверхні потоку при максимальній
витраті Qмакс паралельна дну каналу(лінія 3,рис.1).

При витраті Q=0 встановлюється горизонтальний рівень води (лінія 4). Ці
лінії утворюють граничний трикутник , який показує границі зміни рівнів
вздовж б’єфа при витратах 0 ( Q ( Qмакс . Відстань між перегородками при
заданому розташуванні водоспусків знаходять з умов : рівень Hп при
мінімальній витраті Qмін (лінія 5) повинен забезпечувати гідравлічні
перепади dH більше мінімально допустимих для прийнятих типів водоспусків
;

на водоспусках з автоматичними регуляторами витрати перепади рівнів при
зміні витрати від Qмакс до Qмін повинні бути не більше допустимих для
нормальної роботи прийнятих типів регуляторів . Криві вільної
поверхності води розраховують відомими в гідравліці методами.

Рис.1. Схема регулювання по верхньому б’єфу.

Регулювання по верхньому б’єфу не економне , тому що
стабільність рівнів досягається не за рахунок витрати води , яка
поступила в б’єф , а за рахунок витрати , витікаючого з нього . Тому при
виключенні якого не будь користувача рівень води в б’єфі починає
збільшуватись , і для підтримки Hвб=const перегородки по сигналу датчика
рівня 1 відкривається для пропуска невикористаного об’єма води . Б’єф ,
який розташований нижче діє аналогічно і скидає поступивший об’єм води
вниз по течії каналу.

При збільшенні витрати проти нормативної в одному із б’єфів
всі нижче розташовані перегородки послідовно автоматично прикриваються ,
щоб забезпечити в своїх б’єфах Hвб=const . Це приводить до того ,що
збільшена витрата задовольняє за рахунок нижче розташованих б’єфів .

Таким чином зміна витрати в любому з б’єфів не впливає на вище
розташовані б’єфи , а впливає тільки на нижче розташовані б’єфи . Такий
зв’язок називається гідравлічною прямою .

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

#include

#include

#include

#include

#include

#define ESC 27

#define B 98

#define PIXEL_COUNT 10000

#define DELAY_TIME 0

int zasyvka (int x1,int y1,int y2)

{ rectangle(x1,y1,495,y2); //пiдпрограма для 1-контура

return 0;}

int lin(int y1)

{ //для 2-контура

line(490,205,490,y1);

return 0;

}

int zasyvka1(int x12,int y12,int y23)

{ rectangle(x12,y12,195,y23);

return 0;}

int lin1(int y12)

{

line(190,164,190,y12);

return 0;

}

void fischka(void);

void lma(void);

void *saucer;

int size;

void main(void)

{

int STEP=50;

char c;

int X,y,q=1,i;

int gdriver=DETECT,gmode,errorcode;

initgraph(&gdriver,&gmode,”c:\\bcpp\\bgi”);

errorcode=graphresult();

if(errorcode !=grOk)

{

printf(“Помилка графiчного режиму
типу:%s\n”,grapherrormsg(errorcode));

printf(“Натиснiть будь-яку клавiшу для виходу”);

getch();

exit(1);

}

setcolor(2);

settextstyle(0,0,3);

outtextxy(160,86,”КУРСОВА РОБОТА”);

settextstyle(0,0,1);

setcolor(4);

outtextxy(280,166,”на тему:”);

settextstyle(0,0,1);

setcolor (14);

// settextstyle(2,0,7);

outtextxy(160,190,”Графiчне вiдображення схеми регулювання”);

outtextxy(170,200,”рiвня води в каналi за верхнiм б’ефом”);

setcolor(4);

outtextxy(270,216,”Варiант №15″);

setcolor(8);

outtextxy(440,300,” Виконав:”);

setcolor(15);

outtextxy(440,320,” Тимощук А.I.”);

setcolor(2);

outtextxy(275,450,”РIВНЕ-2002″);

getch();

meny:

initgraph(&gdriver,&gmode,””);

errorcode=graphresult();

if(errorcode!=grOk)

{printf(“Graphics error:%s\n”,grapherrormsg(errorcode));

printf(“Press any key to halt:”);

getch();exit(1);}

q=1;

fischka();

setcolor(1);

X=160;

y=110;

rectangle(46,20,255,40);

setfillstyle(1,15);floodfill(51,21,1);

settextstyle(0,0,1);

//setcolor(6);

outtextxy(52,25, “Демонстрацiя роботи схеми”);

rectangle(46,70,105,90);

setfillstyle(1,15);floodfill(51,71,1);

//setcolor(6);

outtextxy(52,75,”Вихiд”);

do

{

putimage(X-155,y-100,saucer,XOR_PUT);

c=getch();

putimage(X-155,y-100,saucer,XOR_PUT);

switch(c)

{

case 80: y+=STEP;q++;if(y==210){y=110 ;q=1;}break;

case 72: y-=STEP;q–;if(y==60){y=160;q=2;}break;

case 13:if(q==2)closegraph();

if(q==1)

{

lma();

setfillstyle(0,16);

bar(0,0,640,480);

goto meny;

}

}

}

while(c!=27);

}

void fischka(void )

{

setcolor(7);

circle(100,100,8);

setfillstyle(1,4);floodfill(100,100,7);

size=imagesize(80,80,120,120);

saucer=malloc(size);

getimage(78,78,122,122,saucer);

putimage(78,78,saucer,XOR_PUT);

}

void lma(void)

{

float k1;

int I,j,iii,iiii,iiiii;

clrscr();

int gdriver = DETECT, gmode, errorcode;

initgraph(&gdriver, &gmode, “c:\\bcpp\\bgi”);

errorcode = graphresult();

if (errorcode != grOk)

{ printf(“Graphics error: %s\n”, grapherrormsg(errorcode));

printf(“Press any key to halt:”);

getch();

exit(1);}

clearviewport();

z:

printf(“Введiть Q в межах вiд 0 до 24”);

printf(“\n Вiд 0 до 7 -min”);

printf(“\n Вiд 7 до 9 -нормальне”);

printf(“\n Вiд 10 до 24 -max”);

printf(“\n Q=”,k1);

scanf(“%f”,&k1);

setgraphmode(getgraphmode());

int x1=485,e,y1=255,y2=380,x12=185,y12=225,y23=350;

if(k1>24)

{ restorecrtmode();

printf(“\n Введiть згiдно вказаних меж!!!”);

getch();

clrscr();

goto z;

}

while (!kbhit())

{

setbkcolor(0);

setcolor(12);

outtextxy(80,25,”Схема регулювання рiвня води в каналi за верхнiм
б’ефом.”);

setcolor(2);

line(10,335,620,399);

setcolor(2);

line(10,215,145,230);

line(10,238,145,238);

line(165,233,185,233);

line(465,275,485,275);

rectangle(145,228,165,240);//2-датчик

rectangle(445,268,465,280);//1-датчик

setcolor(4);

line(146,234,164,234);

line(446,274,464,274);

setcolor(10);

setlinestyle(0,4,3);

rectangle(175,148,205,162);

rectangle(475,188,505,202);

setlinestyle(0,4,1);

setcolor(2);

line(455,168,490,168);

line(490,168,490,186);

line(455,168,455,268);

line(155,125,190,125);

line(155,125,155,228);

line(190,125,190,146);

lin(y1);

lin1(y12);

setcolor(2);

line(495,288,620,300);

line(495,308,620,308);

setcolor(2);

zasyvka(x1,y1,y2);

zasyvka1(x12,y12,y23);

line(195,244,445,270);

line(195,278,445,278);

setcolor(2);

rectangle(10,50,620,450);

setfillstyle(1,1);floodfill(610,339,2);

setfillstyle(9,6);floodfill(610,439,2);

if(k1180;y12–,y23–)

{

setcolor(2);

zasyvka1(x12,y12,y23);

lin1(y12);

delay(100);

setcolor(0);

line(185,y12+1,195,y12+1);

line(185,y23+1,195,y23+1);

setcolor(1);

line(185,y23+1,195,y23+1);

}

setcolor(0);

setlinestyle(0,0,1);

for(I=13;I>0;I–)

{line(11,230-I,144-I*10.5,230-I);delay(100);}

setcolor(1);

setlinestyle(0,0,1);

for(I=k1;I212;y1–,y2–)

{

setcolor(2);

zasyvka(x1,y1,y2);

lin(y1);

delay(100);

setcolor(0);

line(485,y1+1,495,y1+1);

line(485,y2+1,495,y2+1);

setcolor(1);

line(485,y2+1,495,y2+1);

}

setcolor(0);

for(I=24;I>0;I–)

{line(196,270-I,444-I*10.5,270-I); //вода 2 стала

delay(100);}

setcolor(1);

setlinestyle(0,0,1);

for(I=k1;I9)

{

setcolor(1);

setlinestyle(0,0,1);

for(I=0;I212;y1–,y2–)

{

setcolor(2);

zasyvka(x1,y1,y2);

lin(y1);

delay(100);

setcolor(0);

line(485,y1+1,495,y1+1);

line(485,y2+1,495,y2+1);

setcolor(1);

line(485,y2+1,495,y2+1);

}

setcolor(0);

for(I=k1;I>0;I–)

{line(196,270-I,444-I*10.5,270-I); //вода 2 стала

delay(100);}

setcolor(1);

setlinestyle(0,0,1);

for(I=0;I7 && k1

Нашли опечатку? Выделите и нажмите CTRL+Enter

Похожие документы
Обсуждение

Ответить

Курсовые, Дипломы, Рефераты на заказ в кратчайшие сроки
Заказать реферат!
UkrReferat.com. Всі права захищені. 2000-2020