亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bsortview.cpp

?? 一個(gè)排序過(guò)程的演示
?? CPP
字號(hào):
// bsortView.cpp : implementation of the CBsortView class
//

#include "stdafx.h"
#include "bsort.h"

#include "bsortDoc.h"
#include "bsortView.h"
#include "bardlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CBsortView

IMPLEMENT_DYNCREATE(CBsortView, CView)

BEGIN_MESSAGE_MAP(CBsortView, CView)
	//{{AFX_MSG_MAP(CBsortView)
	ON_COMMAND(ID_BSORT, OnBsort)
	ON_COMMAND(ID_REDRAW, OnRedraw)
	ON_COMMAND(ID_NEWBAR, OnNewbar)
	ON_COMMAND(ID_SHUA, OnShua)
	ON_COMMAND(ID_QUICK_SORT, OnQuickSort)
	ON_WM_LBUTTONDOWN()
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBsortView construction/destruction

CBsortView::CBsortView()
{
	// TODO: add construction code here

}

CBsortView::~CBsortView()
{
}

BOOL CBsortView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CBsortView drawing

void CBsortView::OnDraw(CDC* pDC)
{
	CBsortDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	int *A = pDoc->A;
	CString sznum;
	CRect extent;
	GetClientRect(&extent);
	extent.DeflateRect(10,10);
	int barhei = extent.Height() / (2*pDoc->barnum);
	int barinc = extent.Height() / pDoc->barnum;
	int winc = extent.Width() / 20;
	extent.left+=20;
	CRect rect = extent;
	for( int i = 0; i<pDoc->barnum; i++ ) {
		rect.top = extent.top + i * barinc;
		rect.bottom = rect.top + barhei;
		rect.right = rect.left + A[i] * winc;
		CBrush brush;
		brush.CreateSolidBrush(RGB(rand()%255,rand()%255,rand()%255));//PALETTEINDEX(A[i]));
		CBrush *oldbrush = pDC->SelectObject(&brush);
		sznum.Format("%2d",i);
		pDC->TextOut(0,rect.top,sznum);
		pDC->Rectangle(rect);
		pDC->SelectObject(oldbrush);
	}
}

/////////////////////////////////////////////////////////////////////////////
// CBsortView printing

BOOL CBsortView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CBsortView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CBsortView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CBsortView diagnostics

#ifdef _DEBUG
void CBsortView::AssertValid() const
{
	CView::AssertValid();
}

void CBsortView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CBsortDoc* CBsortView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CBsortDoc)));
	return (CBsortDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CBsortView message handlers

void CBsortView::OnBsort() 
{
	// TODO: Add your command handler code here
	CBsortDoc* pDoc = GetDocument();
	int i, j, flag, *A = pDoc->A, B;
	for( i = 1; i < pDoc->barnum; i ++ ) {
		flag = 0;
		for( j = 0; j < pDoc->barnum-i; j ++ ) {
			if( A[j] > A[j+1] ) {
				flag = 1;
				B = A[j], A[j] = A[j+1], A[j+1] = B;
			}
		}
		if( flag = 0 ) break;
	}
	pDoc->UpdateAllViews(0);//this);
}

void CBsortView::OnRedraw() 
{
	// TODO: Add your command handler code here
	CBsortDoc* pDoc = GetDocument();
	CWaitCursor wait;
	int i, j, flag, *A = pDoc->A, B;
	for( i = 1; i < pDoc->barnum; i ++ ) {
		flag = 0;
		for( j = 0; j < pDoc->barnum-i; j ++ ) {
			if( A[j] > A[j+1] ) {
				flag = 1;
				B = A[j], A[j] = A[j+1], A[j+1] = B;
				Redraw();
				for( int k = 0; k < 5000000; k ++ ) ;
			}
		}
		if( flag = 0 ) break;
	}
	pDoc->UpdateAllViews(this);
}

void CBsortView::Redraw()
{
		CDC *pDC = GetDC();
		CRect extent;
		GetClientRect(&extent);
		CBrush brush;
		brush.CreateSolidBrush(RGB(255,255,255));
		CBrush *oldbrush = pDC->SelectObject(&brush);
		pDC->Rectangle(extent);
		pDC->SelectObject(oldbrush);
		OnDraw(pDC);
		ReleaseDC(pDC);

}

void CBsortView::OnNewbar() 
{
	// TODO: Add your command handler code here
	
}

void CBsortView::OnShua() 
{
	// TODO: Add your command handler code here
	CBsortDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	CWaitCursor wait;
	int *A = pDoc->A;
	for( int i=1; i<pDoc->barnum; i++ )
		DrawBar(i, A);
}

void CBsortView::DrawBar(int index, int *A)
{
	CBsortDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	CClientDC dc(this);
	int B;
	CString szText,sznum1,sznum2;
	CRect extent;
	GetClientRect(&extent);
	extent.DeflateRect(10,10);
	int barhei = extent.Height() / (2*pDoc->barnum);
	int barinc = extent.Height() / pDoc->barnum;
	int winc = extent.Width() / 20;
	extent.left+=20;
	CRect rect = extent;
	int flag = 0;
	for( int j = 0; j < pDoc->barnum-index; j ++ ) {
		if( A[j] > A[j+1] ) {
			flag = 1;
			rect.top = extent.top + j * barinc;
			rect.bottom = rect.top + barhei;
			rect.right = rect.left + A[j] * winc;
			dc.FillSolidRect(&rect,RGB(255,255,255));

			rect.right = rect.left + A[j+1] * winc;
			CBrush brush2;
			brush2.CreateSolidBrush(RGB(rand()%255,rand()%255,rand()%255));//PALETTEINDEX(A[i]));
			CBrush *oldbrush = dc.SelectObject(&brush2);
			sznum1.Format("%2d",j+1);
			dc.TextOut(0,rect.top,sznum1);
			dc.Rectangle(rect);
			dc.SelectObject(oldbrush);
			rect.top = extent.top + (j+1) * barinc;
			rect.bottom = rect.top + barhei;
			rect.right = rect.left + A[j+1] * winc;
			dc.FillSolidRect(&rect,RGB(255,255,255));

			rect.right = rect.left + A[j] * winc;
			CBrush brush4;
			brush4.CreateSolidBrush(RGB(rand()%255,rand()%255,rand()%255));//PALETTEINDEX(A[i]));
			oldbrush = dc.SelectObject(&brush4);
			sznum2.Format("%2d",j);
			dc.TextOut(0,rect.top,sznum2);
			dc.Rectangle(rect);
			dc.SelectObject(oldbrush);
			B = A[j], A[j] = A[j+1], A[j+1] = B;
			szText.Format("交換%d<->%d      ",j,j+1);
			dc.TextOut(extent.right-100,10,szText);
			for( int k = 0; k < 5000000; k ++ ) ;
		}
	if( flag = 0 ) return;
	}
}

void CBsortView::QuickSort(int * A, int l, int r)
{
	int i,j;
	int swap;
	i = l;
	j = r;
	swap = A[l];//A[r]
	while(i < j)
	{
		while(i < j && swap < A[j]) j--;
		if(i < j)
		{
			A[i] = A[j];
			i++;
		}
		while(i < j && A[i] < swap) i++;
		if(i < j)
		{
			A[j] = A[i];
			j--;
		}
	}
	A[i] = swap;
	if(l < i - 1) QuickSort(A,l,i - 1);
	if(j + 1 < r) QuickSort(A,j + 1,r);
}



void CBsortView::OnQuickSort() 
{
	// TODO: Add your command handler code here
	CBsortDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	QuickSort(pDoc->A,0,pDoc->barnum-1);
	CDC *pDC = GetDC();
	CRect extent;
	GetClientRect(&extent);
	CBrush brush;
	brush.CreateSolidBrush(RGB(255,255,255));
	CBrush *oldbrush = pDC->SelectObject(&brush);
	pDC->Rectangle(extent);
	pDC->SelectObject(oldbrush);
	OnDraw(pDC);
	ReleaseDC(pDC);	
}

void CBsortView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	CBsortDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	int *A;
	BOOL flag=FALSE;
	CRect extent;
	GetClientRect(&extent);
	extent.DeflateRect(10,10);
	A=pDoc->A;
	int barhei = extent.Height() / (2*pDoc->barnum);
	int barinc = extent.Height() / pDoc->barnum;
	int winc = extent.Width() / 20;
	extent.left+=20;
	CRect rect = extent;
	for( int j = 0; j < pDoc->barnum; j ++ ) {
			rect.top = extent.top + j * barinc;
			rect.bottom = rect.top + barhei;
			rect.right = rect.left + A[j] * winc;
			if(rect.PtInRect(point)) 
			{
				flag=TRUE;
				break;
			}
	}
	if(flag)
	{
		bardlg dlg;
		dlg.a=A[j];
		dlg.index=j;
		if(dlg.DoModal()==IDOK)
		{
			CClientDC dc(this);
			A[j]=dlg.a;
			dc.FillSolidRect(&rect,RGB(255,255,255));
			rect.right = rect.left + dlg.a * winc;
			CBrush brush;
			brush.CreateSolidBrush(RGB(rand()%255,rand()%255,rand()%255));//PALETTEINDEX(A[i]));
			CBrush *oldbrush = dc.SelectObject(&brush);
			dc.Rectangle(rect);
			dc.SelectObject(oldbrush);
		}
	}
//	CView::OnLButtonDown(nFlags, point);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲伊人伊色伊影伊综合网| 亚洲欧洲另类国产综合| 国产精品66部| 一区二区三区国产豹纹内裤在线| 26uuu久久天堂性欧美| 色爱区综合激月婷婷| 国产精品综合网| 日本中文字幕一区二区视频 | 国产午夜亚洲精品羞羞网站| 欧洲一区在线观看| 成人免费观看男女羞羞视频| 人妖欧美一区二区| 亚洲综合一区二区三区| 久久久久久久电影| 日韩欧美电影一区| 欧美日韩电影一区| 色成人在线视频| 成人动漫一区二区三区| 精品一区二区影视| 日韩激情中文字幕| 亚洲va国产va欧美va观看| 国产精品久久久久久久久晋中| 精品欧美黑人一区二区三区| 欧美日韩国产中文| 欧美日韩视频在线一区二区| 91在线播放网址| 99riav久久精品riav| 国产成人免费视频网站 | 亚洲欧洲美洲综合色网| 久久久噜噜噜久久人人看 | 亚洲图片另类小说| 国产欧美一区二区三区在线看蜜臀 | 欧美精品在线观看播放| 欧美在线一二三| 色婷婷国产精品久久包臀| jlzzjlzz亚洲日本少妇| 成人av一区二区三区| 国产成人亚洲综合a∨婷婷| 狠狠色狠狠色综合日日91app| 日本亚洲电影天堂| 免费欧美在线视频| 麻豆成人综合网| 麻豆精品久久精品色综合| 蜜臀av一区二区在线观看| 奇米色一区二区三区四区| 日本欧美一区二区| 免费观看在线综合色| 久久er99精品| 国产伦理精品不卡| 成人国产精品免费| 91影院在线免费观看| 在线精品国精品国产尤物884a| 色综合天天做天天爱| 91高清视频免费看| 欧美美女一区二区三区| 日韩三级视频在线观看| 精品嫩草影院久久| 国产欧美日韩一区二区三区在线观看| 日本一区二区免费在线观看视频| 中文乱码免费一区二区| 一区二区三区日韩在线观看| 亚洲成人av电影在线| 欧美另类一区二区三区| 欧美一级搡bbbb搡bbbb| 久久久久久久综合| 亚洲欧美在线aaa| 亚洲图片欧美一区| 国产在线一区二区| av中文字幕在线不卡| 91成人在线观看喷潮| 日韩西西人体444www| 国产三级欧美三级日产三级99| 国产精品嫩草影院av蜜臀| 亚洲精品免费在线播放| 日韩和的一区二区| 高清国产午夜精品久久久久久| 色婷婷综合久久久中文一区二区| 欧美高清www午色夜在线视频| 日韩精品一区二区三区蜜臀 | 久久久久久久精| 一区二区成人在线观看| 蜜桃av噜噜一区二区三区小说| 国产成a人亚洲| 欧美日韩亚洲综合一区| 久久久国产精品麻豆 | 国产精品123| 色婷婷av一区二区三区gif| 日韩欧美一级在线播放| 亚洲品质自拍视频网站| 九九在线精品视频| 欧美少妇一区二区| 国产欧美精品一区二区三区四区| 亚洲尤物视频在线| 国产99久久久精品| 日韩小视频在线观看专区| 日韩美女精品在线| 国产精品一品视频| 7777精品伊人久久久大香线蕉| 中文字幕在线一区二区三区| 老司机一区二区| 欧美日韩免费不卡视频一区二区三区| 国产清纯在线一区二区www| 秋霞电影网一区二区| 91丨porny丨中文| 久久综合色综合88| 天天色 色综合| 色综合久久久久综合体桃花网| 26uuu精品一区二区| 午夜精品久久久| 色先锋资源久久综合| 国产日韩欧美制服另类| 紧缚奴在线一区二区三区| 欧美日韩一二三| 亚洲精品中文在线影院| www..com久久爱| 欧美国产国产综合| 国产尤物一区二区在线| 日韩欧美中文字幕公布| 亚洲va国产va欧美va观看| 在线一区二区三区四区五区| 亚洲天堂网中文字| 国产69精品久久久久毛片| 欧美不卡一区二区三区四区| 日韩精品亚洲专区| 精品视频1区2区3区| 一区二区三区毛片| 在线精品视频小说1| 亚洲卡通欧美制服中文| 91视频.com| 亚洲精品免费看| 一本到三区不卡视频| 亚洲人成网站色在线观看| 92精品国产成人观看免费| 国产精品国产三级国产| 成人av影院在线| 中文字幕字幕中文在线中不卡视频| 岛国精品在线播放| 亚洲国产精品av| av爱爱亚洲一区| 亚洲欧洲精品一区二区三区 | 色美美综合视频| 亚洲男女毛片无遮挡| 在线观看中文字幕不卡| 夜夜嗨av一区二区三区网页| 在线中文字幕不卡| 亚洲成人先锋电影| 91精品国产乱码| 国产一区二区三区视频在线播放| 精品福利视频一区二区三区| 国产精品一线二线三线| 日本一区二区成人| 一本色道a无线码一区v| 亚洲香肠在线观看| 欧美一级在线免费| 国产一区二区电影| 中文字幕乱码久久午夜不卡| 91免费看`日韩一区二区| 一二三区精品视频| 日韩手机在线导航| 国产激情视频一区二区在线观看| 中文字幕日本不卡| 欧美性色黄大片手机版| 另类中文字幕网| 国产精品人妖ts系列视频| 欧美吞精做爰啪啪高潮| 蜜桃视频免费观看一区| 欧美激情在线一区二区| 日本高清不卡在线观看| 美女精品自拍一二三四| 欧美国产丝袜视频| 欧美日韩精品三区| 精品一区二区三区免费| 综合色天天鬼久久鬼色| 欧美一区二区成人6969| 成人美女在线观看| 婷婷丁香激情综合| 国产精品无人区| 在线播放日韩导航| 99视频精品在线| 七七婷婷婷婷精品国产| 国产精品美女久久久久久| 91精品国模一区二区三区| 成人性生交大片免费看视频在线| 亚洲国产视频网站| 国产欧美1区2区3区| 欧美精品18+| 成人不卡免费av| 久久99热狠狠色一区二区| 亚洲男人都懂的| 久久久噜噜噜久噜久久综合| 欧美日韩一区不卡| 成人免费毛片片v| 久久www免费人成看片高清| 亚洲蜜臀av乱码久久精品| 精品国产成人在线影院 | 日韩va欧美va亚洲va久久| 国产精品短视频| 精品成人a区在线观看| 91高清视频免费看| 不卡影院免费观看|