⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 topten.cpp

📁 书店销售管理系统 用c++写的
💻 CPP
字号:
// Topten.cpp : implementation file
//

#include "stdafx.h"
#include "resource.h"
#include "Topten.h"

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

/////////////////////////////////////////////////////////////////////////////
// CTopten dialog


CTopten::CTopten(CWnd* pParent /*=NULL*/)
	: CDialog(CTopten::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTopten)
	//}}AFX_DATA_INIT
}


void CTopten::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTopten)
	DDX_Control(pDX, IDC_TOPTENLIST, m_ToptenList);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CTopten, CDialog)
	//{{AFX_MSG_MAP(CTopten)
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTopten message handlers
BOOL CTopten::OnInitDialog()
{
	CDialog::OnInitDialog();
	for(int i = 0; i < 10; i++)
	{
		Topten[i].sn = 0;
		Topten[i].name = "";
	}
	OnRefreshData();
	return TRUE;
}

void CTopten::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	CBrush brush;
	brush.CreateSolidBrush(RGB(240,240,240));
	CBrush *pOldBrush = dc.SelectObject(&brush);
	dc.SetBkColor(RGB(214,215,206));
	//绘制坐标系
	dc.MoveTo(50,20);
	dc.LineTo(50,350);
	dc.MoveTo(50,350);
	dc.LineTo(575,350);
	//绘制两个箭头
	dc.MoveTo(40,40);
	dc.LineTo(50,20);
	dc.MoveTo(60,40);
	dc.LineTo(50,20);
	dc.MoveTo(560,340);
	dc.LineTo(575,350);
	dc.MoveTo(560,360);
	dc.LineTo(575,350);
	//绘制刻度线
	for(int i = 0; i< 10; i++)
	{
		dc.MoveTo(100+i*50,350);
		dc.LineTo(100+i*50,345);
	}
	//输出坐标参数
	/*dc.TextOut(75,355,"1");
	dc.TextOut(125,355,"2");
	dc.TextOut(175,355,"3");
	dc.TextOut(225,355,"4");
	dc.TextOut(275,355,"5");
	dc.TextOut(325,355,"6");
	dc.TextOut(375,355,"7");
	dc.TextOut(425,355,"8");
	dc.TextOut(475,355,"9");
	dc.TextOut(525,355,"10");
	
	dc.TextOut(25,30,"N");
	dc.TextOut(500,30,"单位: (套)");
*/
	//////////////////////////
	if(Topten[0].sn)
	{
		for(i = 0; i < 10; i++)
		{
			CString strnum;
			strnum.Format("%d",Topten[i].sn);
			dc.Rectangle(50+i*50,350-300*Topten[i].sn/Topten[0].sn,100+i*50,350);
			dc.TextOut(65+i*50,330-300*Topten[i].sn/Topten[0].sn,strnum);
			
		}
	}
	CDialog::OnPaint();
}

void CTopten::OnRefreshData()
{
	BOOL FLAGS = FALSE;
	int check;
	CString _sql;
	SHOP::_RecordsetPtr	pRst;
	_sql = "select * from SELL";
	_bstr_t sql = _sql;
	
	try
	{
		pRst = pConn->Execute(sql,NULL,SHOP::adCmdText);
		while(!pRst->End)
		{
			_variant_t vNum = pRst->Fields->GetItem("NUM")->Value;
			_variant_t vName = pRst->Fields->GetItem(long(2))->Value; 
			int num = vNum.iVal;
			CString sellname = vName.bstrVal;
			CString strcheck;
			for(check = 0; check < 10; check++)
			{
				if(Topten[check].name == sellname)
				{
					Topten[check].sn += num;
					sellname = "";
					FLAGS = TRUE;
					break;
				}
			}
			if(FLAGS == FALSE)
			{
				for(int i = 0;i < 10;i++)
				{
					if(num > Topten[i].sn)
					{
						for(int j = 9;j > i;j--)
						{
							Topten[j].sn = Topten[j-1].sn;
							Topten[j].name = Topten[j-1].name;
						}
						Topten[i].sn = num;
						Topten[i].name = sellname;
						sellname = "";
						break;
					}
					else
						continue;
				}
			}
			/////重新排大小
			for(int i = 0; i< 9; i++)
				for(int j = i+1; j < 10; j++)
					if(Topten[i].sn <= Topten[j].sn)
					{
						check = Topten[i].sn;
						Topten[i].sn = Topten[j].sn;
						Topten[j].sn = check;

						strcheck = Topten[i].name;
						Topten[i].name = Topten[j].name;
						Topten[j].name = strcheck;
					}
			/////
			FLAGS = FALSE;
			pRst->MoveNext();	
		}
	}
	catch(_com_error& e)
	{
		AfxMessageBox(e.Description());
	}
	pRst->Close();
	pRst.Release();
	for(int i = 0;i < 10;i++)
	{
		if(Topten[i].sn != 0)
			m_ToptenList.AddString(Topten[i].name);
		m_ToptenList.SetHorizontalExtent(300);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -