Вход

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

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 112762
Дата создания 2011
Страниц 45
Источников 5
Мы сможем обработать ваш заказ (!) 29 марта в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
2 770руб.
КУПИТЬ

Содержание

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

Фрагмент работы для ознакомления

GetPathName();

ifstream in(path,ios::in);
counter=0;
for ( i=0;i<n;i++)
{
in>>func[i];
if(func[i]>-10000000)counter++;
}
inp_str="";
CString buf;
for ( i=0;i<counter;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<xsize*ysize*3;i++)back_[i]=back[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<<buf;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/(-100000000000);
//CString m_string, result;
//result = "k = ";
//m_string.Format("%d", k);
//result += m_string;
char buffer[200];
int j;
//float fp = 1.7320534;
//j = sprintf( buffer, "\tReal: %f\n", 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 = %f\n", k );
j += sprintf( buffer + j, "\ n = %f\n", n );
j += sprintf( buffer + j, "\ r = %f\n", r );
j += sprintf( buffer + j, "\ d = %f\n", d );
AfxMessageBox(buffer);
}
 
Источники
Архангельский, А.Я. Программирование в C++Builder 6 и 2006: разработка программ для Windows: методические и справочные материалы по C++Builder] / А. Я. Архангельский, М. А. Тагин. – Москва: БИНОМ, 2007. – 1181 с.
Страуструп, Бьерн. Язык программирования C++ / Бьерн Страуструп; Пер. с англ. С. Анисимова, М. Кононова; Под ред. Ф. Андреева, А. Ушакова. – Спец. изд. – М.: Бином; СПб.: Нев. диалект, 2001. – 1098 с.
Подбельский, В.В. Язык СИ++ / В.В. Подбельский. – 5-е изд. – М.: Финансы и статистика, 2008. – 559 с.
Шилдт, Герберт. С++. Базовый курс / Герберт Шилдт; [пер. с англ. Н.М. Ручко]. – 3-е изд. – М.: Вильямс, 2008. – 620 с.
Иванова, Г.С. Объектно-ориентированное программирование / Г.С.Иванова, Т.Н. Ничушкина, Е.К. Пугачев; под ред. Г.С. Ивановой. – Изд. 3-е, стер. – М.: Изд-во МГТУ, 2007. – 366 с.

Список литературы [ всего 5]

ИСТОЧНИКИ
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 с.
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00504
© Рефератбанк, 2002 - 2024