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

📄 sale.cpp

📁 复件 (3) 车站售票管理系统 复件 (3) 车站售票管理系统
💻 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 + -