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

📄 order.cpp

📁 餐厅点菜系统
💻 CPP
字号:
// Order.cpp : implementation file
//

#include "stdafx.h"
#include "OrderDishsSys.h"
#include "Order.h"
//
#include"Dish.h"
#include"afxtempl.h"
//
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// COrder dialog
//
/*-------------------------------------*/
CList<Dish,Dish&> MList,MList2;
Dish d;
/*-------------------------------------*/

COrder::COrder(CWnd* pParent /*=NULL*/)
	: CDialog(COrder::IDD, pParent)
{
	//{{AFX_DATA_INIT(COrder)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void COrder::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(COrder)
	DDX_Control(pDX, IDC_LIST2, m_list2);
	DDX_Control(pDX, IDC_LIST1, m_list);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(COrder, CDialog)
	//{{AFX_MSG_MAP(COrder)
	ON_BN_CLICKED(IDC_ORDERDISH, OnOrderdish)
	ON_BN_CLICKED(IDC_WITHDRAW, OnWithdraw)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// COrder message handlers

BOOL COrder::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_list.SetExtendedStyle(0x21);

	m_list.SetBkColor(RGB(247,247,255));
	m_list.SetTextColor(RGB(0,0,255));
	m_list.SetTextBkColor(RGB(247,247,255));
	
	m_list.InsertColumn(0,"       菜名",LVCFMT_CENTER,95);
	m_list.InsertColumn(1,"价格",LVCFMT_CENTER,60);
	m_list.InsertColumn(2,"数量",LVCFMT_CENTER,45);
	/*-----------------------------------------------------*/
	/*test
	CString s="tad";
	if(1)
	{
		int nItem=m_list.InsertItem(0xffff,(LPCTSTR)(s),1);
		m_list.SetItemText(nItem,1,(LPCTSTR)("23"));
	}
	*/
	List1();

	/*-----------------------------------------------------*/
	m_list2.SetExtendedStyle(0x21);

	m_list2.SetBkColor(RGB(247,247,255));
	m_list2.SetTextColor(RGB(0,0,255));
	m_list2.SetTextBkColor(RGB(247,247,255));
	
	m_list2.InsertColumn(0,"       菜名",LVCFMT_CENTER,95);
	m_list2.InsertColumn(1,"价格",LVCFMT_CENTER,60);
	m_list2.InsertColumn(2,"数量",LVCFMT_CENTER,45);
	//
	MList2.RemoveAll();
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void COrder::List1()
{
	m_list.DeleteAllItems();
	int k=0;
	int nItem=0;
	CString str;
	POSITION pos = MList.GetHeadPosition();
	for(int i=0;i<MList.GetCount();i++)
	{
		nItem=m_list.InsertItem(0xffff,(LPCTSTR)(MList.GetAt(pos).GetName()),1);
		str.Format(_T("%d"),MList.GetAt(pos).GetPrice());
		m_list.SetItemText(nItem,1,(LPCTSTR)(str));
		str.Format(_T("%d"),MList.GetAt(pos).GetQuantity());
		m_list.SetItemText(nItem,2,(LPCTSTR)(str));
		MList.GetNext(pos);
	}

}

void COrder::List2()
{
	m_list2.DeleteAllItems();
	int k=0;
	int nItem=0;
	CString str;
	POSITION pos = MList2.GetHeadPosition();
	//
	/*-----------------------------------------------------*/
	/*test
	for(int i1=0;i1<MList2.GetCount();i1++)
	{
		AfxMessageBox(MList2.GetAt(pos).GetName());
		MList2.GetNext(pos);
	}
	pos = MList2.GetHeadPosition();
	*/
	/*-----------------------------------------------------*/
	for(int i=0;i<MList2.GetCount();i++)
	{
		nItem=m_list2.InsertItem(0xffff,(LPCTSTR)(MList2.GetAt(pos).GetName()),1);
		str.Format(_T("%d"),MList2.GetAt(pos).GetPrice());
		m_list2.SetItemText(nItem,1,(LPCTSTR)(str));
		str.Format(_T("%d"),MList2.GetAt(pos).GetQuantity());
		m_list2.SetItemText(nItem,2,(LPCTSTR)(str));
		MList2.GetNext(pos);
	}
	nItem=m_list2.InsertItem(0xffff,(LPCTSTR)("总价"),1);
	int sum=0,shu=0;
	pos = MList2.GetHeadPosition();
	for(int i=0;i<MList2.GetCount();i++)
	{
		sum=sum+MList2.GetAt(pos).GetPrice();
		shu=shu+MList2.GetAt(pos).GetQuantity();
		MList2.GetNext(pos);
	}
	str.Format(_T("%d"),sum);
	m_list2.SetItemText(nItem,1,(LPCTSTR)(str));
	str.Format(_T("%d"),shu);
	m_list2.SetItemText(nItem,2,(LPCTSTR)(str));

}
//
#include "OrderCtrl.h"
void COrder::OnOrderdish() 
{
	// TODO: Add your control notification handler code here
	POSITION pos = m_list.GetFirstSelectedItemPosition();
	if(pos)
	{
		int nItem = m_list.GetNextSelectedItem(pos);
		CString str1 =m_list.GetItemText(nItem,0);
		COrderCtrl ctrl;
		ctrl.OrderDish(str1,MList,MList2,d);
		
		List1();
		List2();
		//

	}
	else
		AfxMessageBox("请选择要点的菜!");
	
}
//
#include "OrderCtrl.h"
void COrder::OnWithdraw() 
{
	// TODO: Add your control notification handler code here
	POSITION pos = m_list2.GetFirstSelectedItemPosition();
	if(pos)
	{
		int nItem = m_list2.GetNextSelectedItem(pos);
		CString str1 =m_list2.GetItemText(nItem,0);
		CString str2 =m_list2.GetItemText(nItem,1);
		CString str3 =m_list2.GetItemText(nItem,2);
		COrderCtrl ctrl;
		ctrl.Withdraw(str1,str2,str3,MList,MList2,d);
		List1();
		List2();
	}
	else
		AfxMessageBox("请选择要撤消的菜!");
}

⌨️ 快捷键说明

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