Помощь в написании студенческих работ
Антистрессовый сервис

Объектная реализация контейнера на основе комбинированной структуры Двунаправленный список массивов-очередей

Курсовая Купить готовую Узнать стоимостьмоей работы

Подбельский, В. В. Язык СИ++ / В. В. Подбельский. — 5-е изд. — М.: Финансы и статистика, 2008. — 559 с. Шилдт, Герберт. С++. Базовый курс / Герберт Шилдт;. — 3-е изд. — М.: Вильямс, 2008. — 620 с. SendMessage (hWnd, WM_PRINT, (WPARAM) hDCMem, PRF_CHILDREN — PRF_CLIENT — PRF_ERASEBKGND — PRF_NONCLIENT — PRF_OWNED); HBITMAP bmp = CreateCompatibleBitmap (newDC, rect. right — rect. left, rect… Читать ещё >

Объектная реализация контейнера на основе комбинированной структуры Двунаправленный список массивов-очередей (реферат, курсовая, диплом, контрольная)

Содержание

  • ВВЕДЕНИЕ
  • КОНТЕЙНЕРЫ. МАССИВЫ ОПИСАНИЕ ПРОГРАММЫ. АРХИТЕКТУРА. РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММНЫЙ КОД ИСТОЧНИКИ

GetPathName ();

ifstream in (path, ios: in);

counter=0;

for (i=0;i

{

in>>func[i];

if (func[i]>-10 000 000)counter++;

}

inp_str="" ;

CString buf;

for (i=0;i

{

buf.Format («%d», (int)func[i]);

inp_str=inp_str+" «+buf;

}

CClientDC cl (this);

int R_=130;

int G_=120;

int B_=140;

CBrush* pr=new CBrush (RGB (R_, G_, B_));

CRect gt (-GetScrollPosition ().x,-GetScrollPosition ().y, 3000,5000);

cl.FillRect (gt, pr);

delete pr;

cl.TextOut (100+GetScrollPosition ().x, 20+GetScrollPosition ().y," «);

in.close ();

opened=true;

routine=1;

Invalidate (true);

}//if (filedialog.DoModal ()==IDOK)

}// if ((routine==0)—(routine==3)){

}

void CRestanglesView: OnToolsRenew ()

{

if (!(func==NULL)) delete[] func;

if (!(mahal==NULL)) delete[] mahal;

if (!(back==NULL)) delete[] back;

if (!(back_==NULL)) delete[] back_;

routine=0;

func=NULL;

mahal=NULL;

inp_str="" ;

summary="" ;

m_otstr="" ;

opened=false;

back=NULL;

back_=NULL;

Invalidate (true);

}

void CRestanglesView: On1(CDC* pDC)

{

CClientDC cl (this);

cl.TextOut (20-GetScrollPosition ().x,-GetScrollPosition ().y," Randomness test:");

imago im;

HWND hWnd=GetSafeHwnd ();

//:GetWindow (m_hWnd, GW_HWNDFIRST);//;

HDC hDCMem = CreateCompatibleDC (NULL);

RECT rect;

:GetWindowRect (hWnd, & rect);

HBITMAP hBmp = NULL;

HDC hDC = :GetDC (0);

// HDC hDC = pDC->GetSafeHdc ();

hBmp = CreateCompatibleBitmap (hDC, rect. right — rect. left, rect. bottom — rect. top);

:ReleaseDC (hWnd, hDC);

HGDIOBJ hOld = SelectObject (hDCMem, hBmp);

:SendMessage (hWnd, WM_PRINT, (WPARAM) hDCMem, PRF_CHILDREN — PRF_CLIENT — PRF_ERASEBKGND — PRF_NONCLIENT — PRF_OWNED);

SelectObject (hDCMem, hOld);

DeleteObject (hDCMem);

dir_plot="./plot" ;

//CString

im.SaveBitmap (dir_plot+" /qqq1.bmp", hBmp) ;

BYTE* IMM;

WORD *pwWidth;

WORD *pwHeight;

pwWidth=new WORD;

pwHeight=new WORD;

IMM=im.Get24BitPixels (hBmp, pwWidth, pwHeight);

int xx, yy;

xx=*pwWidth;yy=*pwHeight;

im.SaveBMP (IMM, xx, yy, dir_plot+" /qqq2.bmp");

HDC hdcScreen = CreateDC («DISPLAY», NULL, NULL, NULL);

HDC hdcCompatible = CreateCompatibleDC (hdcScreen);

//HDC hdcScreen = :GetDC (0);

//HDC newDC = CreateCompatibleDC (hdcScreen);

//HBITMAP bmp = CreateCompatibleBitmap (newDC, rect. right — rect. left, rect. bottom — rect. top);

HBITMAP bmp = CreateCompatibleBitmap (

hdcCompatible, // äåñêðèïòîð DC

rect.right — rect. left, // øèðèíà ðèñóíêà, â ïèêñåëÿõ

rect.bottom — rect. top // âûñîòà ðèñóíêà, â ïèêñåëÿõ

);

PBITMAPINFO pbi= im. CreateBitmapInfoStruct (hWnd, bmp);

im.CreateBMPFile (hWnd, dir_plot+" /qqq3.bmp", pbi,

hBmp, pDC->GetSafeHdc ()) ;

HDC DC = :GetDC (0);

//HBITMAP hNewBitmap = CreateDIBSection (DC,(LPBITMAPINFO) m_lpBMIH, DIB_RGB_COLORS, Bits, 0,0);

HBITMAP bmp1=im.CreateDIB (hdcCompatible, rect. right — rect. left, rect. bottom — rect. top);

if (bmp1==NULL) AfxMessageBox («NULL»);

//PBITMAPINFO pbi= im. CreateBitmapInfoStruct (hWnd, m_pBackBit);

im.CreateBMPFile (hWnd, dir_plot+" /qqq4.bmp", pbi,

bmp1, hdcCompatible) ;

HBITMAP m_hBmp;

BITMAPINFO m_strBmpInfo;

LPSTR m_ptrBMPBits;

ZeroMemory (&m_strBmpInfo, sizeof (BITMAPINFO));

m_strBmpInfo.bmiHeader.biBitCount=16;

m_strBmpInfo.bmiHeader.biClrImportant=0;

m_strBmpInfo.bmiHeader.biClrUsed=0;

m_strBmpInfo.bmiHeader.biCompression=BI_RGB;

m_strBmpInfo.bmiHeader.biHeight=40;

m_strBmpInfo.bmiHeader.biPlanes=1;

m_strBmpInfo.bmiHeader.biSize=sizeof (BITMAPINFOHEADER);

m_strBmpInfo.bmiHeader.biSizeImage=0;

m_strBmpInfo.bmiHeader.biWidth=40;

m_strBmpInfo.bmiHeader.biXPelsPerMeter=0;

m_strBmpInfo.bmiHeader.biYPelsPerMeter=0;

m_hBmp = :CreateDIBSection (pDC->m_hDC, &m_strBmpInfo, DIB_PAL_COLORS,

(void **) &m_ptrBMPBits, NULL, NULL);

if (m_hBmp==NULL) AfxMessageBox («NULL»);

im.CreateBMPFile (hWnd, dir_plot+" /qqq5.bmp", pbi,

m_hBmp, pDC->GetSafeHdc ()) ;

/*

HDC hdcTemp=:GetDC (NULL);

imago im;

CClientDC dc (this);

//pDC->MoveTo (50, 50);

//pDC->TextOut (100-GetScrollPosition ().x, 100-GetScrollPosition ().y," The Plot");

dc.TextOut (100-GetScrollPosition ().x, 100-GetScrollPosition ().y," The Plot");

CDC dcMem;

dcMem.CreateCompatibleDC (&dc);

//BYTE* SCREEN=im.print_screen (hdcTemp);

int x=700;

int y=500;

HBITMAP m_hDrawingSurface;

m_hDrawingSurface=CreateCompatibleBitmap (hdcTemp, x, y);

//ASSERT (m_hDrawingSurface);

//hMemDC = CreateCompatibleDC (hdcTemp); /* Create a DC */

// SelectObject (hMemDC, m_hDrawingSurface);

//HDC hdcScreen = :GetDC (0);

//bool k=CreateCompatibleBitmap (hdcScreen, x, y);

////HDC newDC = CreateCompatibleDC (hdcScreen);

//HBITMAP bmp = CreateCompatibleBitmap (newDC, x, y);

//BITMAP bmpBmp;

//GetObject (bmp, sizeof (bmpBmp),&bmpBmp);

//HANDLE hProcess=OpenProcess (PROCESS_QUERY_INFORMATION-PROCESS_VM_READ, false, 3516);

//HBITMAP hbit=im.GetShot (hProcess);

/*

dir_plot="./plot" ;

CreateDirectory (dir_plot, NULL);

im.SaveBMP (pPixels, x, y, dir_plot+" /qqq.bmp");

HBITMAP FFF=im.CreateBitmap (pDC);

BYTE* IMM;

WORD *pwWidth;

WORD *pwHeight;

pwWidth=new WORD;

pwHeight=new WORD;

IMM=im.Get24BitPixels (FFF, pwWidth, pwHeight);

im.SaveBMP (IMM, 700, 500, dir_plot+" /qqq1.bmp");

*/

}

void CRestanglesView: OnInput ()

{

routine=11;

int i;

PARAFORMAT paraFormat;

paraFormat.cbSize = sizeof (PARAFORMAT);

paraFormat.dwMask = PFM_ALIGNMENT;

paraFormat.wAlignment = PFA_LEFT;

m_richEdit.SetParaFormat (paraFormat);

m_richEdit.SetFocus ();

char* buf=new char[500];

char* buf1=new char[500];

float pa, pb, pn, s1, s2, s3, s4, s5, s6, k, n, r, d, t, cc;

CString m_check;

m_richEdit_CA.GetLine (0,buf);

pa = atof (buf)*10;

m_richEdit_CB.GetLine (0,buf);

pb = atof (buf)*10;

m_richEdit_N.GetLine (0,buf);

pn = atof (buf);

float* CC=new float[6];

memset (CC, 0, sizeof (float)*6);

float* tt=new float[6];

memset (tt, 0, sizeof (float)*6);

float* y =new float[6];

memset (y, 0, sizeof (float)*6);

float* x =new float[6];

memset (x, 0, sizeof (float)*6);

float* CA =new float[6];

memset (CA, 0, sizeof (float)*6);

float* CB =new float[6];

memset (CA, 0, sizeof (float)*6);

for (i = 0; i < pn; i++)

{

m_richEdit.GetLine (i, buf);

//AfxMessageBox (buf);

CC[i]=atof (buf)*10;

m_richEdit_.GetLine (i, buf1);

//AfxMessageBox (buf1);

tt[i]=atof (buf1)*10;

}

//int qqq=CC[1];

//m_check.Format («%d», qqq);

//AfxMessageBox (m_check);

delete[] buf1;

delete[] buf;

s2=s3=s4=s5=s6=0;

for (i = 0; i < pn-2; i++)

{

y[i] = log (abs (CC[i+2] - CC[i+1])/(tt[i+2]-tt[i+1]));

x[i] = log ((tt[i+1])/10);

s1 = pn — 1;

s2 +=x[i];

s3 +=y[i];

s4 +=x[i]*x[i];

s5 +=x[i]*y[i];

s6 +=y[i]*y[i];

}

k = exp ((s3*s4 — s2*s5)/(s1*s4 — s2*s2));

n = (s1*s5 — s2*s3)/(s1*s4 — s2*s2);

r = (s1*s5 — s2*s3)/ sqrt ((s1*s4 — s2*s2)*(s1*s6 — s3*s3));

n = n* (-1);

d=0;

for (i = 0; i < pn; i++)

{

t = (tt[i+1]-tt[i])/10;

cc = CC[i]/10 — k * pow (CC[i]/10, n)*t;

CA[i] = pa/10 + k* 2* pow (CC[i]/10, n)*t;

CB[i] = pb/10 + k* 4 * pow (CC[i]/10, n)* t;

d += (CC[i]/10 — cc)*(CC[i]/10 — cc);

}

imago im;

if (!(back==NULL))delete[]back;

if (!(back_==NULL))delete[]back_;

xsize=600;ysize=400;

back=new float[xsize*ysize*3];

back_=new BYTE[xsize*ysize*3];

memset (back, 0, sizeof (float)*xsize*ysize*3);

Mm FF=ones (1,6);for (i=1;i<=FF.size (2);i++) FF. r (1,i)=CA[i-1];

Mm FF1=ones (1,6);for (i=1;i<=FF1.size (2);i++) FF1. r (1,i)=CB[i-1];

Mm FF2=ones (1,6);for (i=1;i<=FF1.size (2);i++) FF1. r (1,i)=CC[i-1];

Mm HH=vertcat (vertcat (FF, FF1), FF2) ;

im.drow_matrix (back, xsize, ysize, HH);

float gg=back[0];

for (i=0;i

Invalidate (false);

ofstream out («output.txt», ios: out);

buf=new char[200];

int j;

out<<" b1″ ;out<<'n';

for (i=1;i<=FF.size (1);i++){

for (j=1;j<=FF.size (2);j++) {

sprintf (buf," %.3f", FF. r (i, j));

out<<<' ';}

out<<'n';

}

}

void CRestanglesView: OnMenuitem32782()

{

if ((routine==10)—(routine==11)){

bb_inp h=new bb_inp ();

if (h.DoModal ()==IDOK)

{

p1=h.m_p1;

p2=h.m_p2;

Invalidate ();

}

}

}

void CRestanglesView: OnInputResults ()

{

routine=11;

int i;

PARAFORMAT paraFormat;

paraFormat.cbSize = sizeof (PARAFORMAT);

paraFormat.dwMask = PFM_ALIGNMENT;

paraFormat.wAlignment = PFA_LEFT;

m_richEdit.SetParaFormat (paraFormat);

m_richEdit.SetFocus ();

char* buf=new char[500];

char* buf1=new char[500];

float pa, pb, pn, s1, s2, s3, s4, s5, s6, k, n, r, d, t, cc;

CString m_check;

m_richEdit_CA.GetLine (0,buf);

pa = atof (buf)*10;

m_richEdit_CB.GetLine (0,buf);

pb = atof (buf)*10;

m_richEdit_N.GetLine (0,buf);

pn = atof (buf);

float* CC=new float[6];

memset (CC, 0, sizeof (float)*6);

float* tt=new float[6];

memset (tt, 0, sizeof (float)*6);

float* y =new float[6];

memset (y, 0, sizeof (float)*6);

float* x =new float[6];

memset (x, 0, sizeof (float)*6);

float* CA =new float[6];

memset (CA, 0, sizeof (float)*6);

float* CB =new float[6];

memset (CA, 0, sizeof (float)*6);

for (i = 0; i < pn; i++)

{

m_richEdit.GetLine (i, buf);

//AfxMessageBox (buf);

CC[i]=atof (buf)*10;

m_richEdit_.GetLine (i, buf1);

//AfxMessageBox (buf1);

tt[i]=atof (buf1)*10;

}

//int qqq=CC[1];

//m_check.Format («%d», qqq);

//AfxMessageBox (m_check);

delete[] buf1;

delete[] buf;

d = s2=s3=s4=s5=s6=0;

for (i = 0; i < pn-2; i++)

{

y[i] = log (abs (CC[i+2] - CC[i+1])/(tt[i+2]-tt[i+1]));

x[i] = log ((tt[i+1])/10);

s1 = pn — 1;

s2 +=x[i];

s3 +=y[i];

s4 +=x[i]*x[i];

s5 +=x[i]*y[i];

s6 +=y[i]*y[i];

}

k = exp ((s3*s4 — s2*s5)/(s1*s4 — s2*s2));

n = (s1*s5 — s2*s3)/(s1*s4 — s2*s2);

r = (s1*s5 — s2*s3)/ sqrt ((s1*s4 — s2*s2)*(s1*s6 — s3*s3));

n = n* (-1);

for (i = 0; i < pn; i++)

{

t = (tt[i+1]-tt[i])/10;

cc = CC[i]/10 — k * pow (CC[i]/10, n)*t;

CA[i] = pa/10 + k* 2* pow (CC[i]/10, n)*t;

CB[i] = pb/10 + k* 4 * pow (CC[i]/10, n)* t;

d += (CC[i]/10 — cc)*(CC[i]/10 — cc);

}

//d = d/(-100 000 000 000);

//CString m_string, result;

//result = «k = «;

//m_string.Format («%d», k);

//result += m_string;

char buffer[200];

int j;

//float fp = 1.7 320 534;

//j = sprintf (buffer, «tReal: %fn», fp);

//AfxMessageBox (buffer);

//AfxMessageBox (m_string);

//m_string.Format («%d», n);

//result += «, n = «+ m_string;

//m_string.Format («%d», r);

//result += «, r = «+ m_string;

//m_string.Format («%d», d);

//result += «, d = «+ m_string;

j = sprintf (buffer, «k = %fn», k);

j += sprintf (buffer + j, «n = %fn», n);

j += sprintf (buffer + j, «r = %fn», r);

j += sprintf (buffer + j, «d = %fn», d);

AfxMessageBox (buffer);

}

Источники

Архангельский, А. Я. Программирование в C++Builder 6 и 2006: разработка программ для Windows: методические и справочные материалы по C++Builder] / А. Я. Архангельский, М. А. Тагин. — Москва: БИНОМ, 2007. — 1181 с.

Страуструп, Бьерн. Язык программирования C++ / Бьерн Страуструп; Пер. с англ. С. Анисимова, М. Кононова; Под ред.

Ф. Андреева, А. Ушакова. -

Спец. изд. — М.: Бином; СПб.: Нев. диалект, 2001. — 1098 с.

Подбельский, В. В. Язык СИ++ / В. В. Подбельский. — 5-е изд. — М.: Финансы и статистика, 2008. — 559 с.

Шилдт, Герберт. С++. Базовый курс / Герберт Шилдт; [пер. с англ. Н.М. Ручко]. — 3-е изд. — М.: Вильямс, 2008. — 620 с.

Иванова, Г. С. Объектно-ориентированное программирование / Г. С. Иванова, Т. Н. Ничушкина, Е. К. Пугачев; под ред. Г. С. Ивановой. — Изд. 3-е, стер. — М.: Изд-во МГТУ, 2007. — 366 с.

Показать весь текст

Список литературы

  1. , А.Я. Программирование в C++Builder 6 и 2006: разработка программ для Windows: методические и справочные материалы по C++Builder] / А. Я. Архангельский, М. А. Тагин. — Москва: БИНОМ, 2007. — 1181 с.
  2. Страуструп, Бьерн. Язык программирования C++ / Бьерн Страуструп; Пер. с англ. С. Анисимова, М. Кононова; Под ред. Ф. Андреева, А. Ушакова. — Спец. изд. — М.: Бином; СПб.: Нев. диалект, 2001. — 1098 с.
  3. , В.В. Язык СИ++ / В. В. Подбельский. — 5-е изд. — М.: Финансы и статистика, 2008. — 559 с.
  4. Шилдт, Герберт. С++. Базовый курс / Герберт Шилдт; [пер. с англ. Н.М. Ручко]. — 3-е изд. — М.: Вильямс, 2008. — 620 с.
  5. , Г. С. Объектно-ориентированное программирование / Г. С. Иванова, Т. Н. Ничушкина, Е. К. Пугачев; под ред. Г. С. Ивановой. — Изд. 3-е, стер. — М.: Изд-во МГТУ, 2007. — 366 с.
Заполнить форму текущей работой
Купить готовую работу

ИЛИ