WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

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

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

Міністерство освіти і науки УкраїниУкраїнський Державній Університет Водного господарства і природо ко-ристування
Кафедра електротехніки і автоматики
Курсова робота
з дисципліни "Програмування і алгоритмічні мови"
на тему:
13. " Розробка програми для графічного відображення схеми регулювання рівня води в каналі за верхнім б'єфом."
Виконав:
студент 1-го курсу
ФПМ і КІС
АУТП 12
Тимощук А.І.
Перевірив:
Пастушенко В.Й.
Рівне 2002
Завдання
Розробити програму для графічного відображення параметрів синусоїдногозмінного струму на хвильовій та векторній діаграмах.
Зміст
1. Вступ.....................................................................................................................................3
2. Задача і опис схеми...........................................................................................4
3. Текст програми.......................................................................................................5
4. Приклад............................................................................................................................12
5. Висновок......................................................................................................................... 13
6. Література......................................................................................................................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 ",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 ",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
Loading...

 
 

Цікаве