📄 sale.cpp
字号:
// sale.cpp : implementation file
//
#include "stdafx.h"
#include "车站售票管理系统.h"
#include "sale.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// sale dialog
sale::sale(CWnd* pParent /*=NULL*/)
: CDialog(sale::IDD, pParent)
{
//{{AFX_DATA_INIT(sale)
m_cid = _T("");
m_cpassword = _T("");
m_carscode = _T("");
m_carsamount = 0;
//}}AFX_DATA_INIT
}
void sale::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(sale)
DDX_Control(pDX, IDC_okBUTTON1, m_btn);
DDX_Control(pDX, IDC_LIST1, m_list);
DDX_Text(pDX, IDC_EDIT1, m_cid);
DDX_Text(pDX, IDC_EDIT2, m_cpassword);
DDX_Text(pDX, IDC_EDIT3, m_carscode);
DDX_Text(pDX, IDC_EDIT4, m_carsamount);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(sale, CDialog)
//{{AFX_MSG_MAP(sale)
ON_BN_CLICKED(IDC_okBUTTON1, OnokBUTTON1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// sale message handlers
void sale::OnokBUTTON1()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(!m_lcid.IsEmpty())//判断该对话框是否有用户登陆
{
CString Temp;
Temp.Format("用户%s正在使用该页面,请稍候……",m_lcname);
AfxMessageBox(Temp);
return;
}
//判断用户名和密码输入是否完整
if(m_cid.IsEmpty()||m_cpassword.IsEmpty())
{
AfxMessageBox("请输入完整信息");
return;
}
//查看用户登陆的帐号是否是存在的
//是否是注册好了的
CString str="cid='"+m_cid+"'";
client_set.m_strFilter=str;
client_set.Open();
int recount=0;
recount=client_set.GetRecordCount();
if(recount==0)//如果不是
{
AfxMessageBox("此ID不存在");
client_set.Close();
return;
}
//判断输入密码是否正确
client_set.m_cpassword.TrimLeft();
client_set.m_cpassword.TrimRight();
if(client_set.m_cpassword!=m_cpassword)
{
AfxMessageBox("密码错误");
client_set.Close();
return;
}
client_set.m_cflg.TrimLeft(); //判断标志位
client_set.m_cflg.TrimRight();
if(client_set.m_cflg=='1')//如果是1,表示本帐号正在使用
{
AfxMessageBox("登陆失败,该帐号正在使用");
client_set.Close();
return;
}
client_set.Edit(); //标志为赋为1,表示准备使用该帐号
client_set.m_cflg='1';
client_set.Update();
client_set.m_cname.TrimLeft(); //获取用户的登陆信息,用户ID、用户名、地址
client_set.m_cname.TrimRight();
client_set.m_cid.TrimLeft();
client_set.m_cid.TrimRight();
client_set.m_caddress.TrimLeft();
client_set.m_caddress.TrimRight();
m_lcid=client_set.m_cid; //用户ID
m_lcname=client_set.m_cname;//用户名
m_laddress=client_set.m_caddress;//地址
CString Temp; //按钮改名字变成欢迎词
Temp.Format("%s:欢迎光临订票系统,以下是订票总目录:",m_lcname);
m_btn.SetWindowText(Temp);
UpdateData(FALSE);
client_set.Close();//关闭记录集
//SALE::OnBookPrint();
}
void sale::OnOK()
{
// TODO: Add extra validation here
if(m_lcid.IsEmpty())//判断是否有登陆
{
return;
}
UpdateData(TRUE);
//确保车次和数量的输入不为空
if(m_carscode.IsEmpty())
{
return;
}
if(m_carsamount<=0)
{
AfxMessageBox("数量应该大于等于1");
return;
}
//判断输入的报刊编号是否存在
CString str="carscode='"+m_carscode+"'";
car_set.m_strFilter=str;
car_set.Open();
int recount=car_set.GetRecordCount();
if(recount==0)//如果不存在
{
AfxMessageBox("无此记录");
car_set.m_strFilter="";
UpdateData(FALSE);
car_set.Close();
return;
}
else//如果存在则找到该信息
{
if(car_set.m_carsamount<m_carsamount) //判断报刊余量是否满足要购买的报刊数
{
AfxMessageBox("余量不足");
car_set.m_strFilter="";
UpdateData(FALSE);
car_set.Close();
return;
}
//准备购买
m_lcarscode=car_set.m_carscode;
m_lamount=m_carsamount;
m_lallprice=m_carsamount*car_set.m_price;
CTime t=CTime::GetCurrentTime();
car_set.Edit();
car_set.m_carsamount=car_set.m_carsamount-m_carsamount;//把更新用户购买报刊的库存量
car_set.Update();
}
CString Temp;
Temp.Format("尊敬的用户:%s,你已经成功预定了%s的车票共%d张,需%f元\n\n接下来:继续预定:再次输入车次和数量,单击“确定”\n 结束预定:单击“退出返回”",m_lcname,m_lcarscode,m_lamount,m_lallprice);
MessageBox(Temp);
car_set.m_strFilter="";
UpdateData(FALSE);
car_set.Close();//关闭
log_set.Open(); //把购买信息记如流水表
log_set.AddNew();//添加语句
log_set.m_lcid=m_lcid;
log_set.m_lcname=m_lcname;
log_set.m_lcarscode=m_lcarscode;
log_set.m_allprice=m_lallprice;
log_set.m_lcarsamount=m_lamount;
log_set.Update();
log_set.Close();//关闭记录集
// SALE::OnBookPrint();
//CDialog::OnOK();
}
void sale::Onprint()
{
if(m_lcid.IsEmpty())//如果没有用户登陆
{
return;
}
m_list.ResetContent(); //列表清空
CString temp;
temp="车次 发车时间 车辆类型 车票数量 单价";
m_list.InsertString(-1,temp);//插入一行标题
car_set.Open();
while(!car_set.IsEOF())
{
car_set.m_carscode.TrimRight();//字符串左右空格清除
car_set.m_carscode.TrimLeft();
car_set.m_carstime.TrimRight();
car_set.m_carstime.TrimLeft();
car_set.m_carskind.TrimRight();
car_set.m_carskind.TrimLeft();
temp.Format("%4s %20s %10s %10s %4d %f",car_set.m_carscode,
car_set.m_carstime,car_set.m_carsamount,car_set.m_price);//拟合成一条字符串
m_list.InsertString(-1,temp); //插入到列表框
car_set.MoveNext();
UpdateData(FALSE);
}
car_set.Close(); //关闭记录集
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -