• 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

Object Storage Arubacloud
0 głosów
266 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 (194,920 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 (194,920 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 (194,920 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ź 563 wizyt
pytanie zadane 24 stycznia 2018 w C i C++ przez niezalogowany
0 głosów
2 odpowiedzi 186 wizyt
pytanie zadane 15 listopada 2015 w C i C++ przez Lesiu Nowicjusz (140 p.)
0 głosów
2 odpowiedzi 1,114 wizyt
pytanie zadane 18 kwietnia 2015 w PHP przez makoso Mądrala (7,380 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...