📄 pathdlg.cpp
字号:
// PATHDLG.cpp : 实现文件
//
#include "stdafx.h"
#include "travel.h"
#include "PATHDLG.h"
#include "RESERVATIONS.h"
#include "FLIGHTS.h"
#include "City.h"
#define MAX_COLUMN 10
// PATHDLG 对话框
IMPLEMENT_DYNAMIC(PATHDLG, CDialog)
PATHDLG::PATHDLG(CWnd* pParent /*=NULL*/)
: CDialog(PATHDLG::IDD, pParent)
, Name(_T(""))
, NumPath(0)
{
NumPath=0;
}
PATHDLG::~PATHDLG()
{
}
void PATHDLG::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//DDX_Control(pDX, IDC_LIST1, List);
DDX_Control(pDX, IDC_LIST2, List);
DDX_Text(pDX, IDC_EDIT1, Name);
List.ModifyStyle(0,LVS_REPORT|LVS_SHOWSELALWAYS|LVS_SORTASCENDING);
List.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE,0,LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);
List.DeleteAllItems();
for (int i = 0; i < MAX_COLUMN; i++)
{
if (!List.DeleteColumn(0)) break;
}
CDC* pDC=GetDC();
TEXTMETRIC tm;
pDC->GetTextMetrics(&tm);
List.InsertColumn(0,"ID",LVCFMT_LEFT,15*tm.tmAveCharWidth,0);
List.InsertColumn(1,"Custname",LVCFMT_LEFT,15*tm.tmAveCharWidth,1);
List.InsertColumn(2,"FromCity",LVCFMT_LEFT,15*tm.tmAveCharWidth,2);
List.InsertColumn(3,"AvailCity",LVCFMT_LEFT,15*tm.tmAveCharWidth,3);
// List.InsertColumn(4,"numAvail",LVCFMT_LEFT,15*tm.tmAveCharWidth,4);
}
BEGIN_MESSAGE_MAP(PATHDLG, CDialog)
ON_BN_CLICKED(IDOK, &PATHDLG::OnBnClickedClose)
ON_BN_CLICKED(IDCANCEL, &PATHDLG::OnBnClickedCancel)
ON_BN_CLICKED(IDC_BUTTON1, &PATHDLG::OnBnClickedButton1)
END_MESSAGE_MAP()
// PATHDLG 消息处理程序
void PATHDLG::OnBnClickedClose()
{
// TODO: 在此添加控件通知处理程序代码
OnOK();
}
void PATHDLG::OnBnClickedCancel()//4.查询某个客户的旅行线路。
{
// TODO: 在此添加控件通知处理程序代码
UpdateData();
CFlights Flights;
CReservations Reservations;
Flights.Open();
Reservations.Open();
int i=0;
while (!Reservations.IsEOF())
{
if (Reservations.m_custName==Name)
{
Flights.MoveFirst();
while(!Flights.IsEOF())
{
if (Flights.m_flightNum==Reservations.m_resvKey)
{
CString temp;
temp.Format(_T("%d"),i);
List.InsertItem(i,temp);
List.SetItemText(i,1,Reservations.m_custName);
//temp.Format(_T("%d"),Record.m_price);
List.SetItemText(i,2,Flights.m_FromCity);
//temp.Format(_T("%d"),Record.m_numRooms);
List.SetItemText(i,3,Flights.m_ArivCity);
//temp.Format(_T("%d"),Record.m_numAvail);
//List.SetItemText(i,4,temp);
i++;
}
Flights.MoveNext();
}
}
Reservations.MoveNext();
}
NumPath=i;
}
void PATHDLG::OnBnClickedButton1()//检查完整性
{
// TODO: 在此添加控件通知处理程序代码
if (NumPath>0)
{
// for (int i = -1; (i = List.GetNextItem(i, LVIS_SELECTED)) != -1;)
/* CString test;
test=List.GetItemText(0,0);
test=List.GetItemText(0,1);
test=List.GetItemText(1,1);
test=List.GetItemText(1,0);
*/
int i=List.GetItemCount();
City Location;
for (int j=0;j<i;j++)
{
Location.T[j]=1;
Location.From[j]=List.GetItemText(j,2);
Location.Avail[j]=List.GetItemText(j,3);
}
CString temp,start;
int k;
temp=Location.Avail[0];
start=Location.From[0];
k=Location.SearchFrom(temp,
i);
bool stop=0;
while (k!=-1&&!stop)
{
temp=Location.Avail[k];
if (temp==start)
{
stop=1;
}
else
{
k=Location.SearchFrom(temp,i);
}
}
if (stop==1)
{
AfxMessageBox("路线是完整的!");
}
else
AfxMessageBox("路线不是完整的!");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -