📄 carbarn.cpp
字号:
// Carbarn.cpp: implementation of the CCarbarn class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "garage.h"
#include "Carbarn.h"
#include "SeatsSearchDia.h"
#include "SearchAllDia.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
void CCarbarn::adjust(int a,int b,int c){
charge[0]=a;
charge[1]=b;
charge[2]=c;
}
void CCarbarn::park(CCar* a){
if(a->size==0){
if(a->parkPlace=findSmallSeat()){
a->unitPrice=charge[0];
cars.push_back(a);
CString b;
b.Format("%d",a->parkPlace);
}
else
AfxMessageBox("There is no more seats for small car.");
}
else if(a->size==1){
if(a->parkPlace=findMiddleSeat()){
a->unitPrice=charge[1];
cars.push_back(a);
CString b;
b.Format("%d",a->parkPlace);
}
else
AfxMessageBox("There is no more seats for middle car.");
}
else if(a->size==2)
{
if(a->parkPlace=findBigSeat()){
a->unitPrice=charge[2];
cars.push_back(a);
CString b;
b.Format("%d",a->parkPlace);
}
else
AfxMessageBox("There is no more seats for big car.");
}
else
{
if(a->parkPlace=findBigSeat()){
a->unitPrice=charge[2];
a->keepFee=keepCharge;
cars.push_back(a);
CString b;
b.Format("%d",a->parkPlace);
}
else
AfxMessageBox("There is no more seats for big car.");
}
}
int CCarbarn::findSmallSeat()
{
for(int i=0;i<seat_num_for_smallcar;i++){
if(seats[i]==false){
seats[i]=true;
return i+1;
}
}
return 0;
}
int CCarbarn::findMiddleSeat()
{
for(int i=seat_num_for_smallcar;i<(seat_num_for_smallcar+seat_num_for_middlecar);i++)
{
if(seats[i]==false){
seats[i]=true;
return i+1;
}
}
return 0;
}
int CCarbarn::findBigSeat()
{
for(int i=seat_num_for_smallcar+seat_num_for_middlecar;i<(seat_num_for_smallcar+seat_num_for_middlecar+seat_num_for_bigcar);i++){
if(seats[i]==false){
seats[i]=true;
return i+1;
}
}
return 1;
}
//------------------------------------------------------------------------------------------
int CCarbarn::exit(CString m){
for(list<CCar*>::iterator it=cars.begin();it!=cars.end();++it)
if((*it)->numberPlate==m)
{
seats[(*it)->parkPlace-1]=false;
CString b;
b.Format("%d",(*it)->parkPlace);
if((*it)->parkPlace<10)
b="0"+b;
CString time=COleDateTime::GetCurrentTime().Format("20%y年%m月%d日 %H:%M");
CString d;
if((*it)->size==0)
d=" 小型车 ";
else if((*it)->size==1)
d=" 中型车 ";
else if((*it)->size==2)
d=" 大型车 ";
else
d=" 大货车 ";
f.SeekToEnd();
f.WriteString((*it)->enterTime+d+" 车号为:"+(*it)->numberPlate+" 进入 "+b+"号车位 "+time+" 离开.\n");
int a=(*it)->getCharge();
CString c;
c.Format("%d",a);
AfxMessageBox(c);
cars.erase(it);
return a;
}
AfxMessageBox("no this car");
return 0;
}
//------------------------------------------------------
void CCarbarn::findEmptySeats(){
CSeatsSearchDia dlg;
int j=0;
dlg.m_sSmallSeats+="小型车";
dlg.m_sMiddleSeats+="中型车";
dlg.m_sBigSeats+="大型车";
for(int i=0;i<30;i++){
if(!seats[i]){
j++;
CString b;
if(i+1<10)
dlg.m_sSmallSeats+=" 0";
else
dlg.m_sSmallSeats+=" ";
b.Format("%d ",i+1);
dlg.m_sSmallSeats+=b;
}
}
for(i=0;i<30;i++){
if(!seats[30+i]){
j++;
CString b;
dlg.m_sMiddleSeats+=" ";
b.Format("%d ",i+31);
dlg.m_sMiddleSeats+=b;
}
}
for(i=0;i<30;i++){
if(!seats[60+i]){
j++;
CString b;
dlg.m_sBigSeats+=" ";
b.Format("%d ",i+61);
dlg.m_sBigSeats+=b;
}
}
dlg.m_totalNum=j;
dlg.DoModal();
}
//--------------------------------------------------------------------
void CCarbarn::findCurrentCar(){
CSearchCarDia dlg;
if(dlg.DoModal()==IDOK){
for(list<CCar*>::iterator it=cars.begin();it!=cars.end();++it){
if((*it)->numberPlate==dlg.m_sCarNo)
{
CSearchCarDia dlg1;
dlg1.m_sEnterTime=(*it)->enterTime;
dlg1.m_sCarNo=(*it)->numberPlate;
dlg1.m_seatNo=(*it)->parkPlace;
if((*it)->size==0)
dlg1.m_sCarSize="小车型";
else if((*it)->size==1)
dlg1.m_sCarSize="中车型";
else if((*it)->size==2)
dlg1.m_sCarSize="大车型";
else
dlg1.m_sCarSize="大货车";
dlg1.DoModal();
return;
}
}
AfxMessageBox("没有找到你想要查找的车辆的信息");
}
}
//-----------------------------------------------------------------------------
void CCarbarn::findAllInfo(){
CSearchAllDia dlg;
dlg.m_sAllCar+=" 车牌号码 所在车位 ";
for(list<CCar*>::iterator it=cars.begin();it!=cars.end();++it){
dlg.m_sAllCar+=" ";
dlg.m_sAllCar+=(*it)->numberPlate;
CString a;
if((*it)->parkPlace<10)
dlg.m_sAllCar+=" 0";
else dlg.m_sAllCar+=" ";
a.Format("%d号车位 ",(*it)->parkPlace);
dlg.m_sAllCar+=a;
}
dlg.DoModal();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -