• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pętla w pętli wyświetlanie danych z obu

0 głosów
616 wizyt
pytanie zadane 5 stycznia 2018 w C i C++ przez zpawlo00 Początkujący (310 p.)
Nie mam żadnego pomysłu na wyświetlenie liczby wolnych miejsc po wyswietleniu lotu, najlepiej żeby wyświetlało się w tej samej linijce co nazwa lotu, ostatecznie linijka niżej 

  for(list<string>::iterator i=lista_lotow.begin(); i!=lista_lotow.end(); ++i) //petla wypisujaca loty
            {



                cout<<"***********************************"<<endl;
                    cout<<id_lotu[+1]<<" "<<*i<<" "<<endl;

                    id_lotu[+1]+=1;
            for(list<string>::iterator j=lista_miejsc_wolnych.begin(); j!=lista_miejsc_wolnych.end(); ++j)
                {
                cout<<"Wolnych miejsc: "<<*j<<endl;
                }
            }

komentarz 6 stycznia 2018 przez j23 Mędrzec (195,220 p.)
Z kodu, który podałeś, kompletnie nic nie wynika.
komentarz 6 stycznia 2018 przez zpawlo00 Początkujący (310 p.)

#include <iostream>
#include <list>
#include <windows.h>
#include <string>
#include <fstream>
#include <cstdlib>
#include <sstream>



using namespace std;

int id_lotu[60];
int wybor_menu,wyjscie,wybor_wyswietl_loty,wstecz_wyswietlanie_lotow=0;

list <string> lista_lotow;
list <string> lista_miejsc_wolnych;
string nazwa_lotu;
string ile_miejsc;






    //Menu
void wyswietl_menu()
{
    cout<<"1.Wy\230wietl wszystkie loty."<<endl;
    cout<<"2.Wy\230wietl loty z wolnymi miejscami."<<endl;
    cout<<"3.Wyjscie."<<endl;
    cout<<"Wybierz opcj\251: ";
}
    //Dodawanie lotu
void dodaj_lot()
{
    cout<<"Podaj nazw\251 lotu: "<<endl;
    cout<<"Sk\245d-dok\245d mm.dd.rrrr"<<endl; //sk¹d dok¹d
    string nazwa_lotu;
    int ile_miejsc;
    cin.clear();
    cin.sync();
    getline(cin,nazwa_lotu);
    lista_lotow.push_front(nazwa_lotu);
    fstream plik_tekstowy_loty;            //Zapisywanie nazwy lotu
        plik_tekstowy_loty.open("lista_lotow.txt", ios::out | ios::app);
        plik_tekstowy_loty<<nazwa_lotu<<endl;
        plik_tekstowy_loty.close();


        //wprowadzanie maksymalnej ilosci osob
    cout<<"Podaj ile maksymalnie miejsc do zarezerowania: ";
    cin>>ile_miejsc;

    while(ile_miejsc<=0)
    {
        cout<<"Bl\245d, nie mo\276esz poda\206 mniej ni\276 jedno miejsce!"<<endl;
      cout<<"Podaj ile maksymalnie miejsc do zarezerowania: ";
    cin>>ile_miejsc;
    }
    string wynik;
    stringstream convert;
    convert << ile_miejsc;
    wynik = convert.str();

    lista_miejsc_wolnych.push_front(wynik);

    fstream plik_tekstowy_wolne_miejsca;            //Zapisywanie ilosci wolnych miejsc
        plik_tekstowy_wolne_miejsca.open("ilosc_wolnych_miejsc.txt", ios::out | ios::app);
        plik_tekstowy_wolne_miejsca<<nazwa_lotu<<endl;
        plik_tekstowy_wolne_miejsca.close();




}


void usuwanie_ostatniego_lotu()
{
   lista_lotow.pop_back();
    remove( "lista_lotow.txt" ); //usuwanie pliku z lotami zeby zapisac w nim loty bez usunietego

     for(list<string>::iterator i=lista_lotow.begin(); i!=lista_lotow.end(); ++i) //zapisywanie lotow
    {
        fstream plik_tekstowy_loty;
        plik_tekstowy_loty.open("lista_lotow.txt", ios::out | ios::app);
        plik_tekstowy_loty<<*i<<endl;
        plik_tekstowy_loty.close();

    }
    lista_miejsc_wolnych.pop_back();
    remove("ilosc_wolnych_miejsc.txt");

    for(list<string>::iterator j=lista_miejsc_wolnych.begin(); j!=lista_miejsc_wolnych.end(); ++j) //zapisywanie lotow
    {
        fstream plik_tekstowy_wolne_miejsca;
       plik_tekstowy_wolne_miejsca.open("ilosc_wolnych_miejsc.txt", ios::out | ios::app);
       plik_tekstowy_wolne_miejsca<<*j<<endl;
       plik_tekstowy_wolne_miejsca.close();

    }


}
void usuniecie_wszystkiego_wroc()
{
   lista_lotow.clear();
}

    //Wyswietlanie lotow
void wyswietl_loty()
{
    //wczytywanie lotow
    fstream plik_tekstowy_loty;
    plik_tekstowy_loty.open("lista_lotow.txt", ios::in);

           if(plik_tekstowy_loty.good()==true)
                {
            while(getline(plik_tekstowy_loty,nazwa_lotu))
                    {
                        lista_lotow.push_front(nazwa_lotu);
                    }
                }

    //wczytywanie ilosci wolnych miejsc do kazdego lotu
    fstream plik_tekstowy_wolne_miejsca;
    plik_tekstowy_wolne_miejsca.open("ilosc_wolnych_miejsc.txt", ios::in);

        if(plik_tekstowy_wolne_miejsca.good()==true)
        {
            while(getline(plik_tekstowy_wolne_miejsca,ile_miejsc))
            {

                lista_miejsc_wolnych.push_front(ile_miejsc);
            }
        }


    system("cls");
    if(lista_lotow.size()==0) //gdy nie ma lotow na liscie
    {

      cout<<"Lista z lotami jest pusta!"<<endl;
      Sleep(1500);
      system("cls");
      cout<<"1.Dodaj lot."<<endl;
      cout<<"2.Wro\206."<<endl;
      cout<<"Wybierz opcj\251: ";


    }
    else        //gdy sa loty na liscie
    {



             int id_lotu[60]={};

        cout<<"1.Dodaj lot."<<endl;
        cout<<"2.Wro\206."<<endl;
        cout<<"3.Usun ostatni."<<endl;
        cout<<"Wybierz opcj\251: ";
        cout<<endl;




            for(list<string>::iterator i=lista_lotow.begin(); i!=lista_lotow.end(); ++i) //petla wypisujaca loty
            {



                cout<<"***********************************"<<endl;
                    cout<<id_lotu[+1]<<" "<<*i<<" "<<endl;

                    id_lotu[+1]+=1;
            for(list<string>::iterator j=lista_miejsc_wolnych.begin(); j!=lista_miejsc_wolnych.end(); ++j)
                {
                cout<<"Wolnych miejsc: "<<*j<<endl;
                }
            }


                cout<<"***********************************"<<endl;



    }
}




int main()
{
    while(wyjscie!=1)
    {
        wyswietl_menu();
        cin>>wybor_menu;
                switch(wybor_menu)
                {
                case 1:
                    wstecz_wyswietlanie_lotow=0;
                    while(wstecz_wyswietlanie_lotow!=1)
                    {


                    wyswietl_loty();

                        cin>>wybor_wyswietl_loty;
                        system("cls");

                                  switch(wybor_wyswietl_loty)
                                  {
                                    case 1:
                                        dodaj_lot();
                                        lista_lotow.clear();
                                        system("cls");
                                        break;
                                    case 2:             //powrot do menu glownego
                                        usuniecie_wszystkiego_wroc();
                                        wstecz_wyswietlanie_lotow=1;
                                        break;
                                    case 3:

                                        usuwanie_ostatniego_lotu();
                                        lista_lotow.clear();
                                        break;

                                  }
                    }
                    break;                         //koniec1

                }
    }
}


 

komentarz 7 stycznia 2018 przez zpawlo00 Początkujący (310 p.)

@j23, wyżej wkleiłem cały kod

 

komentarz 7 stycznia 2018 przez j23 Mędrzec (195,220 p.)

A nie lepiej, żeby lot reprezentowała struktura np.:

struct Flight
{
	std::string name;
	std::string direction;
	size_t 	free_seats;
};

a całość trzymałbyś w std::list<Flight> flights; ???

komentarz 8 stycznia 2018 przez zpawlo00 Początkujący (310 p.)

Muszę zapoznać się ze strukturami (zapomniałem wspomnieć, że jestem początkujący)

Poradziłem sobie używając vectorow ale teraz program crashuje po dodaniu lotu jak wlaczy sie program wszystko jest od nowa w kodzie totalnie nie mogę znaleźć co jest przyczyną


#include <iostream>
#include <list>
#include <windows.h>
#include <string>
#include <fstream>
#include <cstdlib>
#include <sstream>
#include <vector>



using namespace std;

int id_lotu[60];

int wybor_menu,wyjscie,wybor_wyswietl_loty,wstecz_wyswietlanie_lotow=0;
string ile_miejsc_string;
vector <string> vector_lotow;
vector<int> ile_miejsc_vector;
string nazwa_lotu;





    //Menu
void wyswietl_menu()
{
    cout<<"1.Wy\230wietl wszystkie loty."<<endl;
    cout<<"2.Wy\230wietl loty z wolnymi miejscami."<<endl;
    cout<<"3.Wyjscie."<<endl;
    cout<<"Wybierz opcj\251: ";
}


    //Dodawanie lotu
void dodaj_lot()
{
    cout<<"Podaj nazw\251 lotu: "<<endl;
    cout<<"Sk\245d-dok\245d mm.dd.rrrr"<<endl; //sk¹d dok¹d
    string nazwa_lotu;
    int ile_miejsc;



    cin.clear();
    cin.sync();
    getline(cin,nazwa_lotu);
    vector_lotow.push_back(nazwa_lotu);
    fstream plik_tekstowy_loty;            //Zapisywanie nazwy lotu
        plik_tekstowy_loty.open("lista_lotow.txt", ios::out | ios::app);
        plik_tekstowy_loty<<nazwa_lotu<<endl;
        plik_tekstowy_loty.close();


        //wprowadzanie maksymalnej ilosci osob
    cout<<"Podaj ile maksymalnie miejsc do zarezerowania: ";
    cin>>ile_miejsc;

    while(ile_miejsc<=0)
    {
        cout<<"Bl\245d, nie mo\276esz poda\206 mniej ni\276 jedno miejsce!"<<endl;
      cout<<"Podaj ile maksymalnie miejsc do zarezerowania: ";

    cin.clear();
    cin.sync();
    cin>>ile_miejsc;
    }
    ile_miejsc_vector.push_back(ile_miejsc);
    //konwertowanie ilosci miejsc na tekst aby wpisac w program
    string wynik;
    stringstream convert;
    convert << ile_miejsc_string;
    wynik=convert.str();

    fstream plik_tekstowy_wolne_miejsca;            //Zapisywanie ilosci wolnych miejsc
        plik_tekstowy_wolne_miejsca.open("ilosc_wolnych_miejsc.txt", ios::out | ios::app);
        plik_tekstowy_wolne_miejsca<<wynik<<endl;
        plik_tekstowy_wolne_miejsca.close();




}


void usuwanie_ostatniego_lotu()
{

    vector_lotow.pop_back();
    remove( "lista_lotow.txt" ); //usuwanie pliku z lotami zeby zapisac w nim loty bez usunietego

     for(auto l : vector_lotow ) //zapisywanie lotow
    {
        fstream plik_tekstowy_loty;
        plik_tekstowy_loty.open("lista_lotow.txt", ios::out | ios::app);
        plik_tekstowy_loty<<l<<endl;
        plik_tekstowy_loty.close();

    }

    ile_miejsc_vector.pop_back();
    remove("ilosc_wolnych_miejsc.txt");

     for(auto k : ile_miejsc_vector) //zapisywanie lotow
    {
        fstream plik_tekstowy_wolne_miejsca;
       plik_tekstowy_wolne_miejsca.open("ilosc_wolnych_miejsc.txt", ios::out | ios::app);
       plik_tekstowy_wolne_miejsca<<k<<endl;
       plik_tekstowy_wolne_miejsca.close();

    }


}
void usuniecie_wszystkiego_wroc()
{
   vector_lotow.clear();
   ile_miejsc_vector.clear();
}

    //Wyswietlanie lotow
void wyswietl_loty()
{

    //wczytywanie lotow
    fstream plik_tekstowy_loty;
    plik_tekstowy_loty.open("lista_lotow.txt", ios::in);

           if(plik_tekstowy_loty.good()==true)
                {
            while(getline(plik_tekstowy_loty,nazwa_lotu))
                    {
                        vector_lotow.push_back(nazwa_lotu);
                    }
                }

    //wczytywanie ilosci wolnych miejsc do kazdego lotu
    fstream plik_tekstowy_wolne_miejsca;
    plik_tekstowy_wolne_miejsca.open("ilosc_wolnych_miejsc.txt", ios::in);

        if(plik_tekstowy_wolne_miejsca.good()==true)
        {

            while(getline(plik_tekstowy_wolne_miejsca,ile_miejsc_string))
            {

                stringstream convert(ile_miejsc_string);
                int miejsca_wolne;
                miejsca_wolne = atoi(ile_miejsc_string.c_str());
                ile_miejsc_vector.push_back(miejsca_wolne);
            }
        }


    system("cls");
    if(vector_lotow.size()==0) //gdy nie ma lotow na liscie
    {

      cout<<"Lista z lotami jest pusta!"<<endl;
      Sleep(1500);
      system("cls");
      cout<<"1.Dodaj lot."<<endl;
      cout<<"2.Wro\206."<<endl;
      cout<<"Wybierz opcj\251: ";


    }
    else    //gdy sa loty na liscie
    {



             int id_lotu[60]={};

        cout<<"1.Dodaj lot."<<endl;
        cout<<"2.Wro\206."<<endl;
        cout<<"3.Usun ostatni."<<endl;
        cout<<"Wybierz opcj\251: ";
        cout<<endl;








             for(int i=0;i<ile_miejsc_vector.size();i++) //petla wypisujaca loty
            {

                cout<<"***********************************************************"<<endl;
                cout<<"Nr "<<id_lotu[+1]<<" "<<vector_lotow[i]<<" "<<"Wolnych miejsc: "<<ile_miejsc_vector[i]<<endl;





                id_lotu[+1]+=1;
            }
                cout<<"***********************************************************"<<endl;


    }
}




int main()
{
    while(wyjscie!=1)
    {
        wyswietl_menu();
        cin>>wybor_menu;
                switch(wybor_menu)
                {
                case 1:
                    wstecz_wyswietlanie_lotow=0;
                    while(wstecz_wyswietlanie_lotow!=1)
                    {


                    wyswietl_loty();

                        cin>>wybor_wyswietl_loty;
                        system("cls");

                                  switch(wybor_wyswietl_loty)
                                  {
                                    case 1:
                                        dodaj_lot();
                                        vector_lotow.clear();
                                        system("cls");
                                        break;
                                    case 2:             //powrot do menu glownego
                                        usuniecie_wszystkiego_wroc();
                                        wstecz_wyswietlanie_lotow=1;
                                        break;
                                    case 3:

                                        usuwanie_ostatniego_lotu();

                                        break;

                                  }
                    }
                    break;                         //koniec1

                }
    }
}


 

komentarz 8 stycznia 2018 przez zpawlo00 Początkujący (310 p.)

@j23, Jednak poradziłem juz sobie z problemem dziękuję!

komentarz 8 stycznia 2018 przez j23 Mędrzec (195,220 p.)

Muszę zapoznać się ze strukturami (zapomniałem wspomnieć, że jestem początkujący)

Jeśli byłeś w stanie ogarnąć używanie vectora, to i struktury też. Zobaczysz, że ich użycie uporządkuje program, przez co będzie łatwiejszy w analizie.

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 647 wizyt
pytanie zadane 24 stycznia 2018 w C i C++ przez niezalogowany
0 głosów
2 odpowiedzi 382 wizyt
pytanie zadane 15 listopada 2015 w C i C++ przez Lesiu Nowicjusz (140 p.)
0 głosów
2 odpowiedzi 1,739 wizyt
pytanie zadane 18 kwietnia 2015 w PHP przez makoso Mądrala (7,380 p.)

93,600 zapytań

142,524 odpowiedzi

322,993 komentarzy

63,085 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...