Zoeken naar een tekenreeks in een structuur

Oké, ik heb een probleem om dit te laten werken, dus kan iemand me hier alstublieft mee helpen. Ik probeer een gebruiker te vragen om naar een stationsnaam te zoeken en als deze gevonden is, uitvoer hem dan als hij niet meer naar buiten gaat ..

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: " <> 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: "<<< " 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 !"<<<" 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! "<<< " 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! "<<< " 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!"<<< " 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!"<< N_TRAIN ;n++)
        {       

            cout << " Enter the Name of Departure Station: " ;
            cin >> origin;

            origin = searchfs();
            if (origin = myArray[n].Station_Origin )
               cout << "Trains Departs " << " " <<< "at" << " " << myArray[n].Departure_Time << " " << " Hours " <<< "Trains Departs " << " " <<< "at" << " " << myArray[n].Departure_Time << " " << " Hours " <<< "Trains Departs " << " " <<  myArray1[a].intermediate_station1<< "at" << " " << myArray1[a].Arrival_time1 << " " << " Hours " <<< "Trains Departs " << " " <<  myArray1[a].intermediate_station2 << "at" << " " << myArray1[a].Arrival_time2 << " " << " Hours " <<< "Trains Departs " << " " <<  myArray1[a].intermediate_station3<< "at" << " " << myArray1[a].Arrival_time3 << " " << " Hours " <<< " Train doesnt not Depart at "<< " " << origin << endl;
    }
}
7
wat is de fout.
toegevoegd de auteur rerun, de bron
Wat zijn de originele vereisten? Wordt er verondersteld dat de structuur 3 stations bevat?
toegevoegd de auteur Thomas Matthews, de bron
plaats ook cout s niet in loops-omstandigheden, dat is gewoon verwarrend.
toegevoegd de auteur Mooing Duck, de bron
Dat is veel te veel code om ons te dumpen, en veel te weinig details over wat niet werkte aan jouw aanpak.
toegevoegd de auteur wkl, de bron
@Thilo - sorry, dat was eigenlijk een van mijn originele bewerkingen - gebruikte de verkeerde opmaakopties.
toegevoegd de auteur wkl, de bron
Bovendien zou je de HTML-entiteiten kunnen vervangen door het eigenlijke teken - dit zou je code veel leesbaarder maken. Bijv. in plaats van & lt; schrijft u eenvoudig <
toegevoegd de auteur Thilo, de bron
Ja, het is de bedoeling dat er een Origin-station en een bestemmingsstation zijn om dit gemakkelijk te maken in het programma. Elke record heeft 3 tussenliggende stations.
toegevoegd de auteur David, de bron

2 antwoord

Op verschillende plaatsen lijkt het alsof je opdracht hebt (single = ) waar je wilde testen op gelijkheid (dubbele == ) zoals in het volgende voorbeeld:

if (origin = myArray[n].Station_Origin)

Bovendien zijn Station_Origin en intermediate_station1/2/3 gedefinieerd als std :: string terwijl origin is gedefinieerd als een int . U probeert een tekenreeks toe te wijzen of te vergelijken met een int .

2
toegevoegd
@David: alleen gebaseerd op de code die u hebt weergegeven, gebruik de operator == in plaats van = op de plaatsen waar u twee waarden wilt vergelijken. Bovendien wilt u waarschijnlijk origin wijzigen in een stringvariabele. Dat betekent ook dat je de functie searchfs() moet veranderen om een ​​string terug te geven.
toegevoegd de auteur Blastfurnace, de bron
Wat moet ik doen om die zoekbewerking te repareren om te kunnen werken, want ik heb alles anders, maar niet dat gedeelte. Wat ik zou willen dat het programma doet, is de gebruiker de keuze geven om een ​​stationsnaam in te voeren als het station zijn of haar mening is, zo niet naar de volgende reeks gaan en een zoekopdracht uitvoeren op die string als die er niet is ga naar de volgende string totdat het station wordt gevonden als het niet wordt gevonden Afsluiten ..
toegevoegd de auteur David, de bron

U hebt ons nog niet verteld wat er gebeurt met , dus we kunnen alleen maar raden door de code te scannen. Een ding dat me opvalt is:

for(n=0; n < N_TRAIN; n++)
{
    ...
}      
else if (choice == 3)
{
}

en keuze is undefined.
Wat dacht je van het oplossen van zoveel mogelijk foutmeldingen en vertel ons dan welke specifieke fouten je raken.

0
toegevoegd
OK, ik verander Oorsprong van int in String .. Wat ik niet kan achterhalen is met "origin = Searchfs ()" ik weet niet wat ik moet plaatsen binnen de ()
toegevoegd de auteur David, de bron