Tworzenie obiektów przez program
Ostatnio zmodyfikowano 2014-01-26 16:42
adik_114 Temat założony przez niniejszego użytkownika |
Tworzenie obiektów przez program » 2014-01-26 10:56:11 Witam, Mam pytanie, otóż robię sobie program tak jakby dla biblioteki w którym będzie można dodawać/usuwać pozycje, wypożyczać książki i wpisywać jej zwroty, i teraz moje pytanie, czy jest możliwość aby program sam tworzył obiekt o innej nazwie? Chodzi o to, że w kodzie: #include <iostream> #include <cstdlib> #include <windows.h> #include <fstream> using namespace std; class pozycja { public: string tytul; string autor_im; string autor_naz; string isbn; void wyswietl(); pozycja( string, string, string, string ); ~pozycja(); }; class klient { string imie, nazwisko; short int wiek; }; string login, haslo, tyt, im, naz, is; char wybor; void tworz_konto(); void tworz_pozycje(); int main() { tworz_pozycje(); return 0; } void pozycja::wyswietl() { cout << "Tytul pozycji: " << tytul << "\nNazwisko autora: " << autor_naz << " Imie autora: " << autor_im << "\nNumer ISBN: " << isbn; } pozycja::pozycja( string tyt, string im, string naz, string is ) { tytul = tyt; autor_im = im; autor_naz = naz; isbn = is; cout << "\nPozycje utworzono...\n"; } pozycja::~pozycja() { cout << "\nUsunieto pozycje...\n"; } void tworz_konto() { cout << "Podaj login: "; string a, b, b1; cin >> a; login = a; char c; do { cout << "\nPodaj haslo: "; cin >> b; cout << "\nPotwierdz haslo: "; cin >> b1; if( b == b1 ) { haslo = b; c = 't'; } else { cout << "\nHaslo nie prawidlowe..."; c = 'n'; } } while( c == 'n' ); cout << "\nKonto utworzone. Prosze czekaj..."; Sleep( 2500 ); system( "cls" ); } void tworz_pozycje() { do { system( "cls" ); cout << "Podaj tytul: "; cin >> tyt; cout << "\nPodaj imie autora: "; cin >> im; cout << "\nPodaj nazwisko autora: "; cin >> naz; cout << "\nPodaj ISBN: "; cin >> is; pozycja a000001( tyt, im, naz, is ); cout << "Dodac nastepna? t/n: "; cin >> wybor; } while( wybor == 't' ); } w funkcji tworz_pozycje na końcu tworzona jest pozycja a potem program pyta czy dodać następną, jeśli tak to funkcja działa od początku ale zgodnie z powyższym nowe dane będzie przypisywać dla pozycji a000001. Czy program może zmienić nazwę nowego obiektu np na a000002? |
|
anonim |
» 2014-01-26 11:04:06 Zrób to w wektorze, albo w tablicy, albo w mapie(wtedy możesz się odwoływać do książek po Twoich identyfikatorach) Poczytaj 0: std::vector std::map |
|
leon_w |
» 2014-01-26 16:42:48 Może by się dało dać ten index początkowo jako int, konstruktor by dodawał za każdym razem 1, ew, destruktor by odejmował. Później prze konwertować to do stringa i podstawić. |
|
« 1 » |