-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtraveller.cpp
141 lines (113 loc) · 2.58 KB
/
traveller.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include "traveller.h"
Traveller::Traveller()
{
CreateNewCustomer newCustomer;
newCustomer.exec();
newCustomer.create_Customer(this);
this->ID=travellerID++;
}
//Traveller::~Traveller()
//{
//}
void Traveller::inputDemmand()
{
}
//设置开始城市
bool Traveller::setStartPlace(Traveller::CityName startCity)
{
if(startCity<0)
{
return false;
}
this->startPlace=startCity;
return true;
}
//设置终点城市
bool Traveller::setEndPlace(Traveller::CityName endCity)
{
if(endCity<0)
{
return false;
}
this->endPlace=endCity;
return true;
}
//设置当前城市
bool Traveller::setCurrentCity(Traveller::CityName curCity)
{
if(curCity<0)
{
return false;
}
this->currentCity=curCity;
return true;
}
//设置途经城市
void Traveller::setPassCities(map<Traveller::CityName,int>& pass)
{
this->passCities=pass;
}
//设置所选策略
void Traveller::setStrategy(STRATEGY_TYPE selectedStrategy)
{
this->myStrategy=selectedStrategy;
}
//获取开始城市
Traveller::CityName Traveller::getStartPlace()
{
return this->startPlace;
}
//获取终点城市
Traveller::CityName Traveller::getEndPlace()
{
return this->endPlace;
}
//获取当前城市
Traveller::CityName Traveller::getCurrentCity()
{
return this->currentCity;
}
//获取途经城市
map<Traveller::CityName,int>& Traveller::getpassCities()
{
return passCities;
}
//获取所选策略
STRATEGY_TYPE Traveller::getStrategy()
{
return this->myStrategy;
}
/*辅助打印函数 ---- 打印途经城市*/
void Traveller::printPassCities()
{
for(auto i=passCities.begin();i!=passCities.end();++i)
{
qDebug()<<"Pass City: "<<cities[i->first]<<" Stay Time: "<<i->second<<endl;
}
}
/*设置旅游路线*/
void Traveller::setTravelRoad(vector<int> &myTravelRoad)
{
myRoad=myTravelRoad;
}
//获取当前路线
vector<int>& Traveller::getTravelRoad()
{
return this->myRoad;
}
void Traveller::initTimeForward()
{
// currentPosition=make_pair(myRoad[0],passCities[myRoad[0]]);
}
void Traveller::timeForward(int day,int hour)
{
--currentPosition.second;
if(!currentPosition.second)
{
}
}
const vector<QString> Traveller::cities={"Beijing","Tianjin","Haerbin","Wulumuqi","Chendu","Luan","Jinan","Xian","Dalian","Yinchuan","Huhehaote","Weihai","Taibei"};\
const map<QString,int> Traveller::cities_map={
{"Beijing",0},{"Tianjin",1},{"Haerbin",2},{"Wulumuqi",3}
,{"Chendu",4},{"Luan",5},{"Jinan",6},{"Xian",7}
,{"Dalian",8},{"Yinchuan",9},{"Huhehaote",10},{"Weihai",11},{"Taibei",12}};