📄 custominfodlg.cpp
字号:
// custominfodlg.cpp : implementation file
//
#include "stdafx.h"
#include "dbexe.h"
#include "custominfodlg.h"
#include "reserveset.h"
#include "flightset.h"
#include "carset.h"
#include "hotelset.h"
#include <vector>
using namespace std;
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// Ccustominfodlg dialog
Ccustominfodlg::Ccustominfodlg(CWnd* pParent /*=NULL*/)
: CDialog(Ccustominfodlg::IDD, pParent)
{
//{{AFX_DATA_INIT(Ccustominfodlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void Ccustominfodlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(Ccustominfodlg)
DDX_Control(pDX, IDC_LIST3, m_hotelbasic);
DDX_Control(pDX, IDC_LIST2, m_carbasic);
DDX_Control(pDX, IDC_LIST1, m_flightbasic);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(Ccustominfodlg, CDialog)
//{{AFX_MSG_MAP(Ccustominfodlg)
ON_BN_CLICKED(IDC_CHECK, OnCheck)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Ccustominfodlg message handlers
struct line{
CString fromaddress;
CString arriveaddress;
};
line flightline;
vector<line> tour;
BOOL Ccustominfodlg::OnInitDialog(void){
CDialog::OnInitDialog();
m_flightbasic.InsertColumn(0,"航班号");
m_flightbasic.InsertColumn(1,"价格");
m_flightbasic.InsertColumn(2,"总座位数");
m_flightbasic.InsertColumn(3,"剩余座位数");
m_flightbasic.InsertColumn(4,"始发点");
m_flightbasic.InsertColumn(5,"终点");
RECT rectbasic;
m_flightbasic.GetWindowRect(&rectbasic);
int widbasic=rectbasic.right-rectbasic.left;
m_flightbasic.SetColumnWidth(0,widbasic/8);
m_flightbasic.SetColumnWidth(1,widbasic/8);
m_flightbasic.SetColumnWidth(2,widbasic/8);
m_flightbasic.SetColumnWidth(3,widbasic/8);
m_flightbasic.SetColumnWidth(4,widbasic/8);
m_flightbasic.SetColumnWidth(5,widbasic/8);
m_flightbasic.SetExtendedStyle(LVS_EX_FULLROWSELECT);
m_carbasic.InsertColumn(0,"地点");
m_carbasic.InsertColumn(1,"价格");
m_carbasic.InsertColumn(2,"汽车总数");
m_carbasic.InsertColumn(3,"剩余汽车数");
m_carbasic.GetWindowRect(&rectbasic);
widbasic=rectbasic.right-rectbasic.left;
m_carbasic.SetColumnWidth(0,widbasic/4);
m_carbasic.SetColumnWidth(1,widbasic/4);
m_carbasic.SetColumnWidth(2,widbasic/4);
m_carbasic.SetColumnWidth(3,widbasic/4);
m_carbasic.SetExtendedStyle(LVS_EX_FULLROWSELECT);
m_hotelbasic.InsertColumn(0,"地点");
m_hotelbasic.InsertColumn(1,"价格");
m_hotelbasic.InsertColumn(2,"总房间数");
m_hotelbasic.InsertColumn(3,"剩余房间数");
m_hotelbasic.GetWindowRect(&rectbasic);
widbasic=rectbasic.right-rectbasic.left;
m_hotelbasic.SetColumnWidth(0,widbasic/4);
m_hotelbasic.SetColumnWidth(1,widbasic/4);
m_hotelbasic.SetColumnWidth(2,widbasic/4);
m_hotelbasic.SetColumnWidth(3,widbasic/4);
m_hotelbasic.SetExtendedStyle(LVS_EX_FULLROWSELECT);
showdata();
return true;
}
void Ccustominfodlg::showdata()
{
if(!m_database.IsOpen()){
m_database.Open(_T("database1"));
}
//MessageBox("od");
Creserveset m_basicset(&m_database);
CString p_query;
p_query.Format("select * from reservations where custname='%s'",m_customname);
m_basicset.Open(AFX_DB_USE_DEFAULT_TYPE,p_query);
CDBVariant varValue;
if(m_basicset.GetRecordCount()!=0)
m_basicset.MoveFirst();
else MessageBox("没有您需要的内容");
// char buf[20];
while(!m_basicset.IsEOF())
{m_basicset.GetFieldValue(1,varValue);
if(varValue.m_lVal==1){
m_basicset.GetFieldValue(2,varValue);
p_query.Format("select * from flights where flightnum='%s'",varValue.m_pstring->GetBuffer(1));
Cflightset m_flightbasicset(&m_database);
m_flightbasicset.Open(AFX_DB_USE_DEFAULT_TYPE,p_query);
CDBVariant varValue1;
if(m_flightbasicset.GetRecordCount()!=0)
m_flightbasicset.MoveFirst();
char buf[20];
int i=0;
while(!m_flightbasicset.IsEOF())
{int temp=0;
m_flightbasicset.GetFieldValue(temp,varValue1);
m_flightbasic.InsertItem(i,varValue1.m_pstring->GetBuffer(1));//插入元组
m_flightbasicset.GetFieldValue(1,varValue1);
sprintf(buf,"%d",varValue1.m_lVal); m_flightbasic.SetItemText(i,1,buf);
m_flightbasicset.GetFieldValue(2,varValue1);
sprintf(buf,"%d",varValue1.m_lVal); m_flightbasic.SetItemText(i,2,buf);
m_flightbasicset.GetFieldValue(3,varValue1);
sprintf(buf,"%d",varValue1.m_lVal); m_flightbasic.SetItemText(i,3,buf);
m_flightbasicset.GetFieldValue(4,varValue1);
m_flightbasic.SetItemText(i,4,varValue1.m_pstring->GetBuffer(1));
flightline.fromaddress=varValue1.m_pstring->GetBuffer(1);
m_flightbasicset.GetFieldValue(5,varValue1);
m_flightbasic.SetItemText(i,5,varValue1.m_pstring->GetBuffer(1));
flightline.arriveaddress=varValue1.m_pstring->GetBuffer(1);
tour.push_back(flightline);
m_flightbasicset.MoveNext();
i++;
}
}
if(varValue.m_lVal==3){
m_basicset.GetFieldValue(2,varValue);
p_query.Format("select * from cars where location='%s'",varValue.m_pstring->GetBuffer(1));
Ccarset m_carbasicset(&m_database);
m_carbasicset.Open(AFX_DB_USE_DEFAULT_TYPE,p_query);
CDBVariant varValue1;
if(m_carbasicset.GetRecordCount()!=0)
m_carbasicset.MoveFirst();
char buf[20];
int i=0;
while(!m_carbasicset.IsEOF())
{int temp=0;
m_carbasicset.GetFieldValue(temp,varValue1);
m_carbasic.InsertItem(i,varValue1.m_pstring->GetBuffer(1));//插入元组
m_carbasicset.GetFieldValue(1,varValue1);
sprintf(buf,"%d",varValue1.m_lVal); m_carbasic.SetItemText(i,1,buf);
m_carbasicset.GetFieldValue(2,varValue1);
sprintf(buf,"%d",varValue1.m_lVal); m_carbasic.SetItemText(i,2,buf);
m_carbasicset.GetFieldValue(3,varValue1);
sprintf(buf,"%d",varValue1.m_lVal); m_carbasic.SetItemText(i,3,buf);
m_carbasicset.MoveNext();
i++;
}
}
if(varValue.m_lVal==2){
m_basicset.GetFieldValue(2,varValue);
p_query.Format("select * from hotels where location='%s'",varValue.m_pstring->GetBuffer(1));
Chotelset m_hotelbasicset(&m_database);
m_hotelbasicset.Open(AFX_DB_USE_DEFAULT_TYPE,p_query);
CDBVariant varValue1;
if(m_hotelbasicset.GetRecordCount()!=0)
m_hotelbasicset.MoveFirst();
char buf[20];
int i=0;
while(!m_hotelbasicset.IsEOF())
{int temp=0;
m_hotelbasicset.GetFieldValue(temp,varValue1);
m_hotelbasic.InsertItem(i,varValue1.m_pstring->GetBuffer(1));//插入元组
m_hotelbasicset.GetFieldValue(1,varValue1);
sprintf(buf,"%d",varValue1.m_lVal); m_hotelbasic.SetItemText(i,1,buf);
m_hotelbasicset.GetFieldValue(2,varValue1);
sprintf(buf,"%d",varValue1.m_lVal); m_hotelbasic.SetItemText(i,2,buf);
m_hotelbasicset.GetFieldValue(3,varValue1);
sprintf(buf,"%d",varValue1.m_lVal); m_hotelbasic.SetItemText(i,3,buf);
m_hotelbasicset.MoveNext();
i++;
}
}
m_basicset.MoveNext();
}
}
void Ccustominfodlg::OnCheck()
{
// TODO: Add your control notification handler code here
int flag=1;
for(int i=0;i<tour.size();i++)
{
for(int j=0;j<tour.size();j++)
{ if(j!=i){
if(tour[i].arriveaddress.Compare(tour[j].fromaddress))
break;
}
}
if(j==tour.size()){
flag=0;
break;
}
}
if(flag)
MessageBox("您的旅行航线是完备的");
else
MessageBox("您的旅行航线是不完备的");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -