C++ problem z programem funkcja nie wykonuje tego co powinna

Nie. Nie ruszyłeś dalej. Coraz głębiej toniesz we własnym bagnie niezrozumienia podstawowych rzeczy. Wszystko co do tej pory napisałem w tym wątku jest po to, żebyś zaczął poprawnie używać klas i obiektów, jednak ty mnie z uporem maniaka ignorujesz. Daj sobie pomóc.

Wiem, tylko jestem na poziomie podstawowym z programowanie obiektowego, i ten program piszemy z pomocą nauczyciela, który właśnie tak nam pokazał jak to robić. Wiem, że tak jakby to zrobić według was to by było o wiele lepiej tylko ten program musi być mniej więcej w stylu tego co już mam

To w takim razie pokaż co dał nauczyciel.

Nauczyciel właśnie dał to co w poprzednim poscie wstawiłęm, tylko, że ten kod się sypie i nawet nauczyciel nie wie co jest z nim nie tak

#include 

    #include 

    #include 

    #include 

    #include 

    using namespace std;

    int indexz = 0; //index nastepnego elementu w tablicy zbiorow

    int indexcz = 0; //i czytelnikow

    int licznik = 0;


    class zbiory

    {

          public:

          string tytul;

          string autor;

          int rok_wydania;

          float cena;

          public:


                           void dodaj()

                           {

                                system("cls");

                                cout << "Podaj tytul:" << endl;

                                cin >> this->tytul;

                                cout << "Podaj autora ksiazki:" << endl;

                                cin >> this->autor;

                                cout << "Podaj rok wydania:" << endl;

                                cin >> this->rok_wydania;

                                cout << "Podaj cene:" << endl;

                                cin >> this->cena;

                            }

                            void usun_opis()

                            {

                             }

                             void edytuj_opis()

                             {

                              }

                              void listowanie()

                              {

                                   cout << "Tytul: " << this->tytul << endl;

                                   cout << "Autor: " << this->autor << endl;

                                   cout << "Rok wydania: " << this->rok_wydania << endl;

                                   cout << "Cena: " << this->cena << endl;

                                   cout << "" << endl;

                               }

                               void lista_wypozyczen()

                               {

                                }

                                void lista_w_bibliotece()

                                {

                                 }

                                 void wypozyczenie()

                                 {

                                  }

                                  void zwrot()

                                  {

                                   }


                    };

    class czytelnicy

    {

          protected:

                    string imie;

                    string nazwisko;

                    int klasa;

                    public:

                           void dodajcz()

                           {

                                system("cls");


                                              cout << "Podaj imie: " << endl;

                                              cin >> this->imie;

                                              cout << "Podaj nazwisko: " << endl;

                                              cin >> this->nazwisko;

                                              cout << "Podaj klase: " << endl;

                                              cin >> this->klasa;

                                              }

                                              void listacz()

                                              {

                                                   cout << "Imie: " << this->imie << endl;

                                                   cout << "Nazwisko: " << this->nazwisko << endl;

                                                   cout << "Klasa: " << this->klasa << endl;

                                                   cout << " " << endl;

                                                   }



                                            };

    //int wielkosc;

    zbiory *z[1000];   

    czytelnicy *cz[1000]; 


    int main()

    {

        system("color 0a");

        menu:

        //Beep(3000,100);

        system("cls");

        cout << "Biblioteka" << endl;

        cout << "1. Zbiory" << endl;

        cout << "2. Czytelnicy" << endl;

        cout << "3. Wyjscie" << endl;

        int menu;

        int czytelnik;

        int zbior;

        int nrz;

        int nrcz;

        ofstream plik;

        ifstream plik2;

        cin >> menu;

        switch(menu)

        {

                     case 1:

                          zb:

                          system("cls");

                          cout << "Wybrales 'Zbiory'!" << endl;

                          cout << "1. Dodaj opis" << endl;

                          cout << "2. Usus opis" << endl;

                          cout << "3. Edytuj opis" << endl;

                          cout << "4. Lista" << endl;

                          cout << "5. Lista wypozyczen" << endl;

                          cout << "6. Lista w bibliotece" << endl;

                          cout << "7. Wypozyczenie" << endl;

                          cout << "8. Zwrot" << endl;

                          cout << "9. Eksport do pliku" << endl;

                          cout << "10. Import do pliku" << endl;

                          cout << "11. Powrot" << endl;

                          //Beep(3000,100);

                          cin >> zbior;

                          switch(zbior)

                          {

                                        case 1:

                                             //dodaj opis

                                             z[indexz] = new zbiory;

                                             z[indexz]->dodaj();

                                             indexz ++;

                                             goto zb;

                                             break;

                                             case 2:

                                                  do

                                                  {

                                                  cout << "Podaj numer zbioru: " << endl;

                                                  cin >> nrz;

                                                  }

                                                  while(nrz>indexz);

                                                  delete z[nrz-1];

                                                  z[nrz-1]=z[indexz-1];

                                                  indexz--;

                                                  goto zb;

                                                  //usun opis

                                                  break;

                                                  case 3:

                                                       do

                                                       {

                                                       cout << "Podaj numer zbioru: " << endl;

                                                       cin >> nrz;

                                                       }

                                                       while(nrz>indexz);

                                                       delete z[nrz-1];

                                                       z[nrz-1]= new zbiory;

                                                       z[nrz-1]->dodaj();

                                                       goto zb;

                                                       //edytuj opis

                                                       break;

                                                       case 4:

                                                            //lista

                                                            system("cls");

                                                            for(int i = 0; i < indexz; i ++)

                                                            {

                                                                    z[i]->listowanie();

                                                                    }

                                                                    getch();

                                                                    goto zb;

                                                            break;

                                                            case 5:

                                                                 //lista wypozyczen

                                                                 break;

                                                                 case 6:

                                                                      //lista w bibliotece

                                                                      break;

                                                                      case 7:

                                                                           //wypozyczenie

                                                                           break;

                                                                           case 8:

                                                                                //zwrot

                                                                                break;

                                                                                case 9:

                                                                                     //eksport do pliku


                                                                                     plik.open("zbior.txt");

                                                                                     for(int i = 0; i < indexz; i ++)

                                                                                     {


                                                                                             plik << z[i]->tytul << endl;


                                                                                             plik << z[i]->autor << endl;


                                                                                             plik << z[i]->rok_wydania << endl;


                                                                                             plik << z[i]->cena << endl;

                                                                                             cout << endl;


                                                                                             }


                                                                                             goto zb;

                                                                                     break;

                                                                                     case 10:

                                                                                          //import do pliku

                                                                                          indexz=0;

                                                                                          plik2.open("zbior.txt");

                                                                                          if(plik2.good())

                                                                                          {

                                                                                                           do {

                                                                                                                    z[indexz] = new zbiory;

                                                                                                                    plik2 >> z[indexz] ->tytul;

                                                                                                                    plik2 >> z[indexz] ->autor;

                                                                                                                    plik2 >> z[indexz] ->rok_wydania;

                                                                                                                    plik2 >> z[indexz] ->cena;

                                                                                                                    indexz++;   


                                                                                                                    }

                                                                                                                    while(!plik2.eof());


                                                                                                          }

                                                                                                          else

                                                                                                          {

                                                                                                              cout <<"Error";

                                                                                                          }

                                                                                                          goto zb;

                                                                                          break;

                                        case 11:

                                        system("cls");

                                             goto menu;

                                             break;

                                             default:

                                                  system("cls");

                                                  cout << "Wybrales nieodpowiedna opcje." << endl;

                                                  getch();

                                                  goto menu;

                                                  break;

                                             }

                          break;

                          case 2:

                               cz:

                               system("cls");

                               cout << "Wybrales 'Czytelnicy'!" << endl;

                          cout << "1. Dodaj opis" << endl;

                          cout << "2. Usus opis" << endl;

                          cout << "3. Edytuj opis" << endl;

                          cout << "4. Lista" << endl;

                          cout << "5. Lista wypozyczen" << endl;

                          cout << "6. Lista w bibliotece" << endl;

                          cout << "7. Eksport do pliku" << endl;

                          cout << "8. Import do pliku" << endl;

                          cout << "9. Powrot" << endl;

                          //Beep(3000,100);

                          cin >> czytelnik;

                          switch(czytelnik)

                          {

                                            case 1:

                                             //dodaj opis

                                             cz[indexcz] = new czytelnicy;

                                             cz[indexcz]->dodajcz();

                                             indexcz ++;

                                             goto cz;

                                             break;

                                             case 2:

                                                  do

                                                  {

                                                  cout << "Podaj numer zbioru: " << endl;

                                                  cin >> nrcz;

                                                  }

                                                  while(nrcz>indexcz);

                                                  delete cz[nrcz-1];

                                                  cz[nrcz-1]=cz[indexcz-1];

                                                  indexcz--;

                                                  goto cz;

                                                  //usun opis

                                                  break;

                                                  case 3:

                                                       do

                                                       {

                                                       cout << "Podaj numer czytelnika: " << endl;

                                                       cin >> nrcz;

                                                       }

                                                       while(nrcz>indexcz);

                                                       delete cz[nrcz-1];

                                                       cz[nrcz-1]= new czytelnicy;

                                                       cz[nrcz-1]->dodajcz();

                                                       goto cz;

                                                       //edytuj opis

                                                       break;

                                                       case 4:

                                                            //lista

                                                            system("cls");

                                                            for(int i = 0; i < indexcz; i ++)

                                                            {

                                                                    cz[i]->listacz();

                                                                    }

                                                                    getch();

                                                                    goto cz;

                                                            break;

                                                            case 5:

                                                                 //lista wypozyczen

                                                                 break;

                                                                 case 6:

                                                                      //lista w bibliotece

                                                                      break;

                                                                      case 7:

                                                                           //eksport do pliku

                                                                           break;

                                                                           case 8:

                                                                                //import do pliku

                                                                                break;

                                            case 9:

                                                 system("cls");

                                                 goto menu;

                                                 break;

                                                 default:

                                                  system("cls");

                                                  cout << "Wybrales nieodpowiedna opcje." << endl;

                                                  getch();

                                                  goto menu;

                                                  break;

                                                 }


                               break;

                               case 3:

                                    system("cls");

                                    cout << "Wybrales 'Wyjscie'!" << endl;

                                    //Beep(3000,100);

                                    getch();

                                    return 0;

                                    break;

                                    default:

                                                  system("cls");

                                                  cout << "Wybrales nieodpowiedna opcje." << endl;

                                                  getch();

                                                  goto menu;

                                    }

                                    getch();

                                    return 0;

                                    }

masz 2x nagłówek fstream a nie masz string :stuck_out_tongue:

To w takim razie posłuchaj naszych rad, zrób to poprawnie i pokaż mu jak to się robi. Brnięcie w bagno “bo tak” jest najgorszym ze wszystkich rozwiązań.

Tak to jest jak za uczenie innych się biorą osoby nie mające z czymś doczynienia :slight_smile:

Macie rację jego nie warto słuchać, bo w życiu tego programu nie skończymy