自己编写的就当餐饮管理系统。组合框跟列表不知道怎么弄了痛苦中。。
代码如下#include "stdafx.h"
#include "酒店餐饮管理系统.h"
#include "kfdc.h"
#include "kfdc1.h"
#include "kfdc2.h"
#include "kfdc3.h"
#include "main.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif/////////////////////////////////////////////////////////////////////////////
// Ckfdc dialog
Ckfdc::Ckfdc(CWnd* pParent /*=NULL*/)
: CDialog(Ckfdc::IDD, pParent)
{
//{{AFX_DATA_INIT(Ckfdc)
m_date = 0;
m_kfcm = _T("");
m_kfdj = 0.0f;
m_kfsl = 0;
m_kfyd = _T("");
m_kfsj = _T("");
m_kfzj = 0.0f;
m_kfsg = 0.0f;
m_kfyz = 0.0f;
m_kfjf = 0.0f;
//}}AFX_DATA_INIT
}
void Ckfdc::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(Ckfdc)
DDX_Control(pDX, IDC_LIST1, m_list);
DDX_Control(pDX, IDC_COMBO2, m_code);
DDX_Control(pDX, IDC_COMBO1, m_kfbh);
DDX_Text(pDX, IDC_EDIT1, m_kfcm);
DDX_Text(pDX, IDC_EDIT2, m_kfdj);
DDX_Text(pDX, IDC_EDIT3, m_kfsl);
DDX_Text(pDX, IDC_EDIT4, m_kfyd);
DDX_Text(pDX, IDC_EDIT5, m_kfsj);
DDX_Text(pDX, IDC_EDIT6, m_kfzj);
DDX_Text(pDX, IDC_EDIT7, m_kfsg);
DDX_Text(pDX, IDC_EDIT8, m_kfyz);
DDX_Text(pDX, IDC_EDIT9, m_kfjf);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(Ckfdc, CDialog)
//{{AFX_MSG_MAP(Ckfdc)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
ON_BN_CLICKED(IDC_BUTTON6, OnButton6)
ON_BN_CLICKED(IDC_BUTTON8, OnButton8)
ON_BN_CLICKED(IDC_BUTTON9, OnButton9)
ON_BN_CLICKED(IDC_BUTTON10, OnButton10)
ON_BN_CLICKED(IDC_BUTTON7, OnButton7)
ON_WM_TIMER()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////
// Ckfdc message handlers
Ckfdc1 kfdc1;
Ckfdc2 kfdc2;
Ckfdc3 kfdc3;
BOOL Ckfdc::OnInitDialog() 
{
CDialog::OnInitDialog();

// TODO: Add extra initialization here
    kfdc1.Open();
    m_list.InsertColumn(0,"编号");
    m_list.InsertColumn(1,"类型");
m_list.InsertColumn(2,"菜名");
m_list.InsertColumn(3,"单位");
    m_list.InsertColumn(4,"单价");
    RECT  rect;
    m_list.GetWindowRect(&rect);
    int wid =rect.right-rect.left;
    m_list.SetColumnWidth(0,wid/5);
    m_list.SetColumnWidth(1,wid/5);
    m_list.SetColumnWidth(2,wid/5);
    m_list.SetColumnWidth(3,wid/5);
    m_list.SetColumnWidth(4,wid/5);
    refresh(); 
 UINT array[6];
for(int i=0;i<6;i++)
{
array[i] = 100+i;
}
m_StatusBar.Create(this); //创建状态栏窗口
m_StatusBar.SetIndicators(array,6); //添加面板
    m_StatusBar.SetPaneInfo(0,array[0],SBPS_NORMAL,75); //设置面板宽度
m_StatusBar.SetPaneInfo(1,array[1],SBPS_NORMAL,45);
m_StatusBar.SetPaneInfo(2,array[2],SBPS_NORMAL,65);
m_StatusBar.SetPaneInfo(3,array[3],SBPS_NORMAL,125);
m_StatusBar.SetPaneInfo(4,array[4],SBPS_NORMAL,70);
m_StatusBar.SetPaneInfo(5,array[5],SBPS_NORMAL,130); //设置面板文本
m_StatusBar.SetPaneText(0,"当前操作者:");
m_StatusBar.SetPaneText(1,admintor);
m_StatusBar.SetPaneText(2,"当前操作:");
m_StatusBar.SetPaneText(3,"客房订餐");
m_StatusBar.SetPaneText(4,"当前时间:"); CTime Time;
Time = CTime::GetCurrentTime();
m_StatusBar.SetPaneText(5,Time.Format("%Y-%m-%d %H:%M:%S"));
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
SetTimer(1,1000,NULL); 
return TRUE;  // return TRUE unless you set the focus to a control
              // EXCEPTION: OCX Property Pages should return FALSE
}
void Ckfdc::refresh()
{
UpdateData();
    m_list.DeleteAllItems();
    kfdc1.MoveFirst();
    int i=0;
    CString un;
while( !kfdc1.IsEOF())
{
    m_list.InsertItem(i,kfdc1.m_DishID);
m_list.SetItemText(i,1,kfdc1.m_DishType);
    m_list.SetItemText(i,2,kfdc1.m_DishName);
    m_list.SetItemText(i,3,kfdc1.m_Unit);
un.Format("%f",kfdc1.m_UnitPrice);
    m_list.SetItemText(i,4,un);
    kfdc1.MoveNext();
    i++;
}
     UpdateData(false);
     m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);
     kfdc1.Close();
}void Ckfdc::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
// TODO: Add your control notification handler code here
int i=m_list.GetSelectionMark();
m_kfcm=m_list.GetItemText(i,2);
        m_kfdj=atof(m_list.GetItemText(i,4));
UpdateData(false);
    *pResult = 0;
}void Ckfdc::OnButton3() 
{
// TODO: Add your control notification handler code here
kfdc2.Open();
    ruji("选择订餐的客房号");
kfdc2.MoveFirst();
while(!kfdc2.IsEOF())
{
m_kfbh.AddString(kfdc2.m_fjbh);
kfdc2.MoveNext();
}
m_kfbh.SetCurSel(0);
}void Ckfdc::OnButton4() 
{
// TODO: Add your control notification handler code here
CString x;
UpdateData();
ruji("刷新房号订餐的信息");
m_kfbh.GetWindowText(x);
if(kfdc2.IsOpen())
kfdc2.Close();
    kfdc2.m_strFilter.Format("fjbh='%s'",x);
    kfdc2.Open();
kfdc2.Edit();
m_kfyd=kfdc2.m_fjyd;
m_kfzj=kfdc2.m_fjzj;
m_kfsj=kfdc2.m_fjsj;
m_kfcm="";
m_kfdj=0.00;
    kfdc2.Update();
    kfdc2.Requery();
UpdateData(false);
MessageBox("刷新成功!");
}
void Ckfdc::OnButton2() 
{
// TODO: Add your control notification handler code here
ruji("退出系统");
OnOK();
}
void Ckfdc::OnButton1() 
{
// TODO: Add your control notification handler code here
Cmain main;
ruji("返回主菜单");
this->ShowWindow(SW_HIDE);
main.DoModal();
OnOK();
}void Ckfdc::OnButton5() 
{
// TODO: Add your control notification handler code here
ruji("房号订餐之点菜");
UpdateData();
    CString x,dc1,dc21,str1;
dc1="   ";
dc21="X";
m_kfbh.GetWindowText(x);
if(kfdc2.IsOpen())
kfdc2.Close();
    kfdc2.m_strFilter.Format("fjbh='%s'",x);
    kfdc2.Open();
kfdc2.Edit();
m_kfzj=m_kfdj*m_kfsl+kfdc2.m_fjzj;
kfdc2.m_fjzj=m_kfzj;
str1.Format("%d",m_kfsl);
kfdc2.m_fjyd=kfdc2.m_fjyd+m_kfcm+dc21+str1+dc1;
kfdc2.m_fjsj=m_kfsj;
m_kfyd=kfdc2.m_fjyd;
m_kfzj=kfdc2.m_fjzj;
    kfdc2.Update();
    kfdc2.Requery();
m_kfcm="";
m_kfdj=0.00;
m_kfsl=0;
UpdateData(false);
}void Ckfdc::OnButton6() 
{
// TODO: Add your control notification handler code here
ruji("房号订餐预定");
UpdateData();
    CString x,dc1,dc21,str1;
dc1="   ";
dc21="X";
m_kfbh.GetWindowText(x);
if(kfdc2.IsOpen())
kfdc2.Close();
    kfdc2.m_strFilter.Format("fjbh='%s'",x);
    kfdc2.Open();
kfdc2.Edit();
m_kfzj=kfdc2.m_fjzj;
m_kfyd=kfdc2.m_fjyd;
kfdc2.m_fjsj=m_kfsj;
m_kfcm="";
m_kfdj=0.00;
    kfdc2.Update();
    kfdc2.Requery();
m_kfdj=0.00;
m_kfsl=0;
MessageBox("预定成功!");
UpdateData(false);
}void Ckfdc::OnButton8() 
{
// TODO: Add your control notification handler code here
    ruji("选择房号订餐的会员编号");
kfdc3.Open();
kfdc3.MoveFirst();
while(!kfdc3.IsEOF())
{
m_code.AddString(kfdc3.m_vipcode);
kfdc3.MoveNext();
}
m_code.SetCurSel(0);
}void Ckfdc::OnButton9() 
{
// TODO: Add your control notification handler code here
ruji("刷新房号订餐的会员信息");
UpdateData();
    CString x;
m_code.GetWindowText(x);
if(kfdc3.IsOpen())
kfdc3.Close();
    kfdc3.m_strFilter.Format("vipcode='%s'",x);
    kfdc3.Open();
kfdc3.Edit();
m_kfjf=kfdc3.m_vipscore;
    kfdc3.Update();
    kfdc3.Requery();
    UpdateData(false);
MessageBox("刷新成功!");
}void Ckfdc::OnButton10() 
{
// TODO: Add your control notification handler code here
ruji("房号订餐的顾客结账");
UpdateData();
if(m_kfsg<m_kfzj)
{
MessageBox("尊敬的顾客,你没有给足钱");
}
else
{
m_kfyz=m_kfsg-m_kfzj;
    CString x1;
m_kfbh.GetWindowText(x1);
if(kfdc2.IsOpen())
{kfdc2.Close();
    kfdc2.m_strFilter.Format("fjbh='%s'",x1);
    kfdc2.Open();
kfdc2.Edit();
kfdc2.m_fjzj=0.00;
    kfdc2.m_fjsj=kfdc2.m_fjyd="";
m_kfcm=m_kfsj="";
    m_kfsl=0;
m_kfdj=0.00;
    kfdc2.Update();
    kfdc2.Requery();
}
MessageBox("已经成功结账,并且已清除该号桌的信息!");
    UpdateData(false);}
}void Ckfdc::OnButton7() 
{
// TODO: Add your control notification handler code here
    ruji("房号订餐的会员结账");
UpdateData();
if(m_kfsg<m_kfzj)
{
MessageBox("尊敬的会员,你没有给足钱");
}
else
{
m_kfyz=m_kfsg-m_kfzj*0.85;
    CString x,x1;
m_code.GetWindowText(x);
if(kfdc3.IsOpen())
{kfdc3.Close();
    kfdc3.m_strFilter.Format("vipcode='%s'",x);
    kfdc3.Open();
kfdc3.Edit();
kfdc3.m_vipscore=kfdc3.m_vipscore+m_kfzj*0.85;
m_kfjf=kfdc3.m_vipscore;
    kfdc3.Update();
    kfdc3.Requery();
}
m_kfbh.GetWindowText(x1);
if(kfdc2.IsOpen())
{kfdc2.Close();
    kfdc2.m_strFilter.Format("fjbh='%s'",x1);
    kfdc2.Open();
    kfdc2.Edit();
kfdc2.m_fjzj=0.00;
    kfdc2.m_fjsj=kfdc2.m_fjyd="";
m_kfcm=m_kfsj="";
    m_kfsl=0;
m_kfdj=0.00;
    kfdc2.Update();
    kfdc2.Requery();
}
MessageBox("您已成功结账和累加会员积分,并且已清除该号桌的信息!");
    UpdateData(false);}
}void Ckfdc::OnTimer(UINT nIDEvent) 
{
// TODO: Add your message handler code here and/or call default
CTime Time;
Time = CTime::GetCurrentTime();
m_StatusBar.SetPaneText(5,Time.Format("%Y-%m-%d %H:%M:%S"));
    CString sTitle,sleft,sright;
int len;
GetWindowText(sTitle);
len = sTitle.GetLength();
sright = sTitle.Left(2);
sleft = sTitle.Right(len-2);
sTitle = sleft + sright;
SetWindowText(sTitle);
CDialog::OnTimer(nIDEvent);
}