【发布时间】:2011-12-16 17:51:32
【问题描述】:
好的,我在让它工作时遇到问题,所以有人可以帮我解决这个问题吗?我正在尝试让用户搜索站名,如果找到它,则输出它,如果没有则退出..
struct Trains
{
int Train_Id; //train ID
string Station_Origin; //Station of Origin
string Destination_Station; //Station of Destination
int Departure_Time ; //Departure Time
int Arrival_Time ; //Arrival Time
};
struct Trains myArray[10];
struct station
{
string intermediate_station1; //intermediate_station1
int Arrival_time1; // Arrival time to station1
string intermediate_station2; //intermediate_station2
int Arrival_time2; // Arrival time to station2
string intermediate_station3; // intermediate_station1
int Arrival_time3; // Arrival time to station3
};
struct station myArray1[3];
/*****************************************************************************/
int main ()
{
/* Setting up Train and Station Information */
int N_TRAIN;
int n;
int a;
do
{
cout << " Enter number of Trains on Track: " <<endl;
cin >> N_TRAIN;
cout << endl;
}while(N_TRAIN > 10 || N_TRAIN < 0);
for(n=0; n < N_TRAIN; n++)
{
while((cout<<" Enter Train ID: ")&&( (cin>>myArray[n].Train_Id)||myArray[n].Train_Id <0))
{
cout<<" Invalid Input! Please Enter Train ID: "<<endl;
cin.clear();
cin.ignore(1000,'\n');
}
cout << " Name of Station of Origin: ";
cin >> myArray[n].Station_Origin;
cout << " Name of Destination Station: ";
cin >> myArray[n].Destination_Station;
while((cout<<"Enter Departure Time: Please Enter 24hr!")&&(!(cin>>myArray[n].Departure_Time)||myArray[n].Departure_Time < 0))
{
cout<<" Invalid Input! Enter Departure Time: Please Enter 24hr !"<<endl;
cin.clear();
cin.ignore(1000,'\n');
}
while((cout<<" Enter Arrival Time: Please Enter 24hr! ")&&(!(cin>>myArray[n].Arrival_Time)||myArray[n].Arrival_Time < 0))
{
cout<<" Invalid Input! Enter Arrival Time: Please Enter 24hr! "<<endl;
cin.clear();
cin.ignore(1000,'\n');
}
cout << " Name of Station of intermediate station1: ";
cin >> myArray1[a].intermediate_station1;
while((cout<<" Enter Arrival Time For intermediate station1: Please Enter 24hr! ")&&(!(cin>>myArray1[a].Arrival_time1)||myArray1[a].Arrival_time1 < 0))
{
cout<<" Invalid Input! Enter Arrival Time: Please Enter 24hr! "<<endl;
cin.clear();
cin.ignore(1000,'\n');
}
cout << " Name of Station of intermediate station2: ";
cin >> myArray1[a].intermediate_station2;
while((cout<<" Enter Arrival Time For intermediate station2: Please Enter 24hr! ")&&(!(cin>>myArray1[a].Arrival_time2)||myArray1[a].Arrival_time2 < 0))
{
cout<<" Invalid Input! Enter Arrival Time For intermediate station2: Please Enter 24hr!"<<endl;
cin.clear();
cin.ignore(1000,'\n');
}
cout << " Name of Station of intermediate station3: ";
cin >> myArray1[a].intermediate_station3;
while((cout<<" Enter Arrival Time For intermediate station3: Please Enter 24hr!")&&(!(cin>>myArray1[a].Arrival_time3)||myArray1[a].Arrival_time3 < 0))
{
cout<<" Invalid Input! Enter Arrival Time For intermediate station3: Please Enter 24hr!"<<endl;
cin.clear();
cin.ignore(1000,'\n');
}
}
/* SEARCHING BY STATION NAME: */
else if (choice == 3)
{
int origin;
int result;
for (n=0; n < N_TRAIN ;n++)
{
cout << " Enter the Name of Departure Station: " ;
cin >> origin;
origin = searchfs();
if (origin = myArray[n].Station_Origin )
cout << "Trains Departs " << " " <<myArray[n].Station_Origin << "at" << " " << myArray[n].Departure_Time << " " << " Hours " <<endl;
else if (origin = myArray[n].Destination_Station )
cout << "Trains Departs " << " " <<myArray[n].Destination_Station << "at" << " " << myArray[n].Departure_Time << " " << " Hours " <<endl;
else if (origin = myArray1[a].intermediate_station1 )
cout << "Trains Departs " << " " << myArray1[a].intermediate_station1<< "at" << " " << myArray1[a].Arrival_time1 << " " << " Hours " <<endl;
else if (origin = myArray1[a].intermediate_station2 )
cout << "Trains Departs " << " " << myArray1[a].intermediate_station2 << "at" << " " << myArray1[a].Arrival_time2 << " " << " Hours " <<endl;
else if (origin = myArray1[a].intermediate_station3 )
cout << "Trains Departs " << " " << myArray1[a].intermediate_station3<< "at" << " " << myArray1[a].Arrival_time3 << " " << " Hours " <<endl;
else if (result == -1)
cout << " Train doesnt not Depart at "<< " " << origin << endl;
}
}
【问题讨论】:
-
这太多的代码无法交给我们,而关于您的方法不起作用的细节也太少了。
-
此外,您可以用实际字符替换 HTML 实体 - 这将使您的代码更具可读性。例如。而不是
&lt;只需写< -
@Thilo - 抱歉,这实际上是我最初的编辑之一 - 使用了错误的格式选项。
-
另外,不要将
couts 置于循环条件中,这只会造成混淆。 -
原始要求是什么?该结构真的假设包含 3 个站点吗?
标签: c++ arrays string struct while-loop