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
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
Macie rację jego nie warto słuchać, bo w życiu tego programu nie skończymy