Розробка програмного забезпечення комп'ютерної системи управління процесом випалювання будівельних матеріалів з використанням об'єктно-орієнтованого програмування

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 25.04.2015
Размер файла 1,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

if (fclose (bf)! =0) return - 7;

wnum++;

}

}

if (fclose (f)! =0) return - 8;

bf = OpenDB ("oldata",&header);

if (bf) {

fclose (bf);

if (remove ("oldata")! =0) return - 9;

}

else fclose (bf);

if (rename (f_name,"oldata")! =0) return - 10;

if (rename ("buferfile",f_name)! =0) return - 11;

return 1;

}

// *********************** //

int CreateSTPF (const char *path)

{

FILE *f;

RecSTDP rec;

int result;

f=fopen (path,"wb");

if (! f) return FALSE;

SetRecSTDP (&rec);

result = (fwrite (&rec,sizeof (RecSTDP),1,f) ==1);

fclose (f);

return result;

}

int ReadSTPF (const char *path, RecSTDP *recp) //

{

FILE *f;

f=fopen (path,"rb");

if (! f) return FALSE;

int rez= (fread (recp, sizeof (RecSTDP), 1, f) ==1);

fclose (f);

return rez;

}

void SetRecSTDP (RecSTDP *rec) {

rec->Tfire_min=960;

rec->Tfire_max=1135;

rec->Theat_min=580;

rec->Theat_max=600;

rec->Tcool_min=620;

rec->Tcool_max=640;

rec->Pfire_min=1.4;

rec->Pfire_max=1.9;

rec->Pheat_min=-3.5;

rec->Pheat_max=1.4;

rec->Pcool_min=2;

rec->Pcool_max=2.7;

rec->Mres_min=10;

rec->Mres_max=15;

rec->Mair_min=3;

rec->Mair_max=5;

}

int GetMarka (const int *arrey) {

int min = GetMin (arrey);

int ser = SerArufm (arrey);

if (ser<min) return ser;

else return min;

}

int GetMin (const int *arrey) {

int min=arrey [0];

for (int i=1; i<5; ++i) {

if (min>arrey [i]) min=arrey [i];

}

min/=25;

min*=25;

if (min<50) return 0;

return min;

}

int SerArufm (const int *arrey) {

int rez=0;

for (int i=0; i<5; ++i) rez+=arrey [i];

rez/=125;

rez*=25;

if (rez<75) return 0;

return rez;

}

int Grafik (float *y, float min, float max, int kilk, char *name)

{

float minznach, maxznach;

minznach= MIN (y, kilk);

maxznach= MAX (y, kilk);

if (minznach>min) minznach=min;

if (maxznach<max) maxznach=max;

float delta = maxznach-minznach;

delta/=8;

minznach-=delta;

maxznach+=delta;

float *ycoord =setycoord (y,minznach,maxznach,kilk);

float ymax=gety (max, minznach, maxznach);

float ymin=gety (min, minznach, maxznach);

int knum=1;

InitGraphika ();

setbkcolor (3);

cleardevice ();

setcolor (15);

line (40,0,40,460);

line (40,460,640,460);

int i;

for (i=60; i<640; i+=60) line (i,455, i,465);

for (i=0; i<460; i+=46) line (37, i,43, i);

char mes [10] [10];

float kurzn=maxznach;

for (i=0; i<10; ++i) sprintf (mes [i],"% -6.2f",kurzn-=delta);

for (i=0; i<10; ++i) outtextxy (0, i*46+40,mes [i]);

for (i=0; i<10; ++i) {

sprintf (mes [0],"%5d",knum+i);

outtextxy (i*60+25,470,mes [0]);

}

outtextxy (160,8,name);

kurzn=0;

if (kilk<11) {

setcolor (1);

line (40,ymin,640,ymin);

line (40,ymax,640,ymax);

for (i=0; i<kilk-1; ++i) drawLine (i*60+60,ycoord [i], i*60+120,ycoord [i+1],ymin,ymax);

getch ();

}

else{

char chs;

int maxzn=kilk-10;

knum=0;

do{

setcolor (15);

setfillstyle (1,3);

bar (40,465,640,480);

bar (45,0,640,455);

for (i=0; i<10; ++i) {

sprintf (mes [0],"%5d",knum+i+1);

outtextxy (i*60+25,470,mes [0]);

}

outtextxy (160,8,name);

outtextxy (160,16,"Use 'a' / 'd' to list graph ENTER to exit");

setcolor (1);

line (40,ymin,640,ymin);

line (40,ymax,640,ymax);

for (i=0; i<9; ++i) DrawLine (i*60+60, ycoord [i+knum], i*60+120, ycoord [i+knum+1], ymin,ymax);

chs=getch ();

switch (chs) {

case 'a': if (knum>0) - -knum; break;

case 'd': if (knum<maxzn) ++knum; break;

default: break;

}

}while (chs! =13);

}

closegraph ();

free (ycoord);

return 0;

}

void InitGraphika () {/* request auto detection */

int gdriver = DETECT, gmode, errorcode;

/* initialize graphics mode */

initgraph (&gdriver, &gmode,". \bgi");

/* read result of initialization */

errorcode = graphresult ();

if (errorcode! = grOk) /* an error occurred */

{

printf ("Graphics error: %s\n", grapherrormsg (errorcode));

printf ("Press any key to halt: ");

getch ();

exit (1); /* return with error code */

}

}

float MAX (float *m, int n) {

float z;

z=m [0];

for (int i=1; i<n; i++) if (m [i] >z) z=m [i];

return z;

}

float MIN (float *m, int n) {

float z;

z=m [0];

for (int i=1; i<n; i++) if (m [i] <z) z=m [i];

return z;

}

float* setycoord (float *mas, float min, float max, int num) {

float *rez;

rez= (float*) calloc (num,sizeof (float));

for (int i=0; i<num; ++i) rez [i] = gety (mas [i], min, max);

return rez;

}

float gety (float cur, float min, float max) {

float rez=460;

rez*= (max-cur) / (max-min);

return rez;

}

void drawLine (float X1, float Y1, float X2, float Y2, float ymin, float ymax) {

int x1=X1, y1=Y1, x2=X2, y2=Y2;

const int deltaX = abs (x2 - x1);

const int deltaY = abs (y2 - y1);

const int signX = x1 < x2? 1: - 1;

const int signY = y1 < y2? 1: - 1;

int color;

int error = deltaX - deltaY;

if (y2>ymin||y2<ymax) color=RED;

else color = YELLOW;

putpixel (x2, y2, color);

while (x1! = x2 || y1! = y2) {

if (y1>ymin||y1<ymax) color=RED;

else color = YELLOW;

putpixel (x1, y1, color);

const int error2 = error * 2;

//

if (error2 > - deltaY) {

error - = deltaY;

x1 += signX;

}

if (error2 < deltaX) {

error += deltaX;

y1 += signY;

}

}

}

Лістинг "ZAST. CPP" Додаток В

#include <dos. h>

#include <stdlib. h>

#include <conio. h>

#include <graphics. h>

#include <stdio. h>

class CShape{

public:

virtual void Draw () {};

};

class CPoint: public CShape{

protected:

int x;

int y;

int color;

public:

CPoint (int X, int Y, int Color) {x=X; y=Y; color=Color; }

void Draw () {putpixel (x,y,color); }

};

class CCircle: public CPoint{

protected:

int r;

public:

CCircle (int X, int Y, int R, int Color): CPoint (X, Y, Color) {r=R; }

void Draw () {setcolor (color); setfillstyle (1, color); fillellipse (x, y, r, r); }

};

class CRectangle: public CPoint{

protected:

int x1;

int y1;

public:

CRectangle (int X, int Y, int X1, int Y1, int Color): CPoint (X, Y, Color) {x1=X1; y1=Y1; }

void Draw () {setcolor (color); setfillstyle (1, color); bar (x, y, x1, y1); }

};

class CMoveblePoint: public CPoint{

protected:

int dx;

int xmodif;

int modcol;

public:

CMoveblePoint (int X, int Y, int Dx, int Xm, int Mc, int col): CPoint (X,Y,col) {dx=Dx; xmodif=Xm; modcol=Mc; }

void Draw () {x+=dx; if (x>xmodif) color=modcol; putpixel (x,y,color); }

};

class CMCircle: public CMoveblePoint{

protected:

int r;

public:

CMCircle (int X, int Y, int R, int Dx, int Xm, int Mc, int Color): CMoveblePoint (X, Y, Dx, Xm, Mc, Color) {r=R; }

void Draw () {x+=dx; if (x>xmodif) color=modcol; setcolor (color); setfillstyle (1, color); fillellipse (x, y, r, r); }

};

class CMRectangle: public CMoveblePoint{

protected:

int x1;

int y1;

public:

CMRectangle (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; }

void Draw () {x+=dx; x1+=dx; if (x>xmodif) color=modcol; setcolor (color); setfillstyle (1, color); bar (x, y, x1, y1); }

};

class CMLine: public CMRectangle{

public:

CMLine (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) {};

void Draw () {x+=dx; x1+=dx; if (x>xmodif) color=modcol; setcolor (color); line (x, y, x1, y1); }

};

void InitGraph ();

CShape* CreateShape (); // створює масив фігур

void DrawShape (CShape *ArrCShape); // виводить фігури на екран

void OutInfo (); // виводить інформацію на екран

void CloseGraph (CShape *ArrCShape); // завершує графічний режим

int Zastavka ();

int Zastavka ()

{

InitGraph ();

CShape *arr= CreateShape ();

DrawShape (arr);

OutInfo ();

CloseGraph (arr);

return 0;

}

void InitGraph ()

{

/* request auto detection */

int gdriver = DETECT, gmode, errorcode;

/* initialize graphics mode */

initgraph (&gdriver, &gmode,". \bgi");

/* read result of initialization */

errorcode = graphresult ();

if (errorcode! = grOk) /* an error occurred */

{

printf ("Graphics error: %s\n", grapherrormsg (errorcode));

printf ("Press any key to halt: ");

getch ();

exit (1); /* return with error code */

}

}

CShape* CreateShape () {

int i=0;

CShape *p [100];

p [i++] =new CRectangle (0, 0, getmaxx (), getmaxy (),

9);

p [i++] =new CCircle (0, 0, 80, 14);

p [i++] =new CCircle (250, 50, 25, 15);

p [i++] =new CCircle (275, 35, 25, 15);

p [i++] =new CCircle (285, 65, 25, 15);

p [i++] =new CCircle (310, 50, 25, 15);

p [i++] =new CCircle (450, 50, 25, 15);

p [i++] =new CCircle (475, 45, 25, 15);

p [i++] =new CCircle (485, 55, 25, 15);

p [i++] =new CCircle (510, 50, 25, 15);

p [i++] =new CRectangle (0,399,getmaxx (),getmaxy (),BLACK);

p [i++] =new CRectangle (275,299,300,399,BLUE);

p [i++] =new CRectangle (285,309,300,399,RED);

// telega

p [i++] =new CMRectangle (5,380,95,385, 20,600,0,DARKGRAY);

p [i++] =new CMCircle (25, 392, 7, 20,600,0, LIGHTGRAY);

p [i++] =new CMCircle (75, 392, 7, 20,600,0, LIGHTGRAY);

p [i++] =new CMRectangle (10,343,90,379, 20,300,RED,YELLOW);

p [i++] =new CMLine (10,352,90,352, 20,600,RED,DARKGRAY);

p [i++] =new CMLine (10,361,90,361, 20,600,RED,DARKGRAY);

p [i++] =new CMLine (10,370,90,370, 20,600,RED,DARKGRAY);

int j,k;

k=1;

for (j=20; j<90; j+=10) {

if (k>0) {

p [i++] =new CMLine (j,343,j,352, 20,600,RED,DARKGRAY);

p [i++] =new CMLine (j,361,j,370, 20,600,RED,DARKGRAY);

}

else{

p [i++] =new CMLine (j,352,j,361, 20,600,RED,DARKGRAY);

p [i++] =new CMLine (j,370,j,379, 20,600,RED,DARKGRAY);

}

k=k*-1;

}

// end telega

p [i++] =new CRectangle (300,299,400,399,BLUE);

return p;

}

void DrawShape (CShape *ArrCShape) {

int t=0;

// Out rezult

while (t<25) {

t++;

i=0;

while ( (i<100) && (ArrCShape [i]! =NULL)) {

ArrCShape [i] - > Draw ();

i++;

}

delay (50);

}

}

void OutInfo () {

setcolor (LIGHTGREEN);

int style=7;

int size=3;

settextstyle (style, HORIZ_DIR, size);

outtextxy (200, 100, "Kursova robota");

outtextxy (100, 150, "Compuret system control proccec");

outtextxy (150, 200, "burning of bricks");

outtextxy (250, 250, "ZHUK O. S.3si-11");

getch ();

}

void CloseGraph (CShape *ArrCShape) {

while ( (i<100) && (ArrCShape [i]! =NULL)) {

delete ArrCShape [i];

i++;

}

сlosegraph ();

}

Лістинг "MAIN. CPP" Додаток Д

#include "\. \ready\workbd\winow. cpp"

#include "\. \ready\workbd\ZAST. CPP"

int main () {

Zastavka ();

menu ();

return 1;

}

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.