pcmax Opublikowano 12 Grudnia 2009 Zgłoś Opublikowano 12 Grudnia 2009 Witam możecie pomoc? Nie wiem dlaczego nie idzie poprawnie skompilować: # include <iostream> # include <conio.h> using namespace std; class Konto { private: string numerKonta; string typKonta; double saldo; int pin; public: int getpin(); void setpin (int p); string getnumerKonta (); void setnumerKonta (string nk); string gettypKonta(); void settypKonta (string tk); double getsaldo(); void setsaldo (double s); void wplata (double kwota); void wyplata (double kwota); }; int Konto::getpin() { return this->pin; } void Konto::setpin (int p) { this->pin = p; } void Konto::wplata (double kwota) { if (kwota >0) this->saldo+= kwota; } void Konto::wyplata (double kwota) { if(kwota<=this->saldo && kwota >0) { this->saldo -= kwota; } } string Konto::getnumerKonta() { return this ->numerKonta; } string Konto::gettypKonta() { return this ->typKonta; } double Konto::getsaldo() { return this -> saldo; } void Konto::setnumerKonta (string nk) { this ->numerKonta = nk; } void Konto::settypKonta(string tk) { this->typKonta = tk; } void Konto::setsaldo (double s) { this->saldo = s; } int main () { Konto k1[3]; k1[0].setnumerKonta("1345464575454"); k1[0].settypKonta("Rachunek oszczedzam"); k1[0].setsaldo(1000); k1[0].setpin(1234); k1[1].setnumerKonta("23408766"); k1[1].settypKonta("Rachunek"); k1[1].setsaldo(34400); k1[1].setpin(8888); k1[2].setnumerKonta("7999134546668"); k1[2].settypKonta("Lokata"); k1[2].setsaldo(100643); k1[2].setpin(6432); int idKlienta = -1; int iloscProb = 3; do{ int pinUzytkownika; cout << "Podaj pin do konta: "; cin >> pinUzytkownika; for (int i=0;i<sizeof(k1);i++) { if(k1.getpin() == pinUzytkownika) { idKlienta = i; break; } if (idKlienta >= 0)break; iloscProb--; }while(iloscProb>0); cout << "Id klineta to: " << idKlienta << endl; cout << "Numer konta: " << k1[idKlienta].getnumerKonta() << endl; /*cout << "Numer rachunku: " << k1.getnumerKonta() << endl; cout << "Typ konta: " << k1.gettypKonta() << endl; cout << "Saldo rachunku: " << k1.getsaldo() << endl; cout <<"Ile wplacic? "; double kwota; cin >> kwota; k1.wplata(kwota); cout<<"Saldo rachunku: "<< k1.getsaldo() << endl; cout <<"Ile wyplacic? "; cin >> kwota; k1.wyplata(kwota); cout << "Saldo rachunku: " << k1.getsaldo() << endl; */ getch(); return 0; } Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
shoq Opublikowano 12 Grudnia 2009 Zgłoś Opublikowano 12 Grudnia 2009 (edytowane) Zapomniałeś sobie zamknąć fora w tej pętli do-while: do { int pinUzytkownika; cout << "Podaj pin do konta: "; cin >> pinUzytkownika; for (int i=0;i<sizeof(k1);i++) { if(k1[i].getpin() == pinUzytkownika) { idKlienta = i; break; } if (idKlienta >= 0)break; iloscProb--;} while(iloscProb>0); Edytowane 12 Grudnia 2009 przez luqash Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
pcmax Opublikowano 12 Grudnia 2009 Zgłoś Opublikowano 12 Grudnia 2009 Nom rzeczywiście, dziękuję. Kurcze ale coś ten programik nie działa :( Chyba będzie trzeba rozwinąć ten programik: Tylko tak, aby działała wpłata i wyplata. Ktoś ma pomysł? #include <iostream> #include <stdlib.h> #include <math.h> using namespace std; class Bankomat // definicja klasy Zesolone { public: void wpisz () { cout <<"Witamy w bankomacie firmy 'SS'. Proszę podać 4 cyfrowy kod PIN."<< endl; cout << "Podaj a: "; cin >> a; system("cls"); } float pin (); void nazwisko (); void nazw (); private: float a, b, c, d,e; // pola klasy }; void Bankomat::nazwisko() { if (a==1234) d=1000; cout <<"Witamy Panie: Kowalski. Aktualny stan konta to: "<<d<<"PLN \nCo planujesz zrobic? \n (1) - Wyplata \n (2) - Wplata \n (3) - Stan konta \n (4) - Wyjdz"<<endl; } void Bankomat::nazw() { if (a==1234) cout <<"Witamy Panie: Kowalski. Aktualny stan konta to: 1000PLN \nCo planujesz zrobic? \n (1) - Wyplata \n (2) - Wplata \n (3) - Stan konta \n (4) - Wyjdz"<<endl; d=1000; } float Bankomat::pin() { cin>>b; if (b==1) { cout<<" Wybrales opcje Wyplata"<<endl; cout<<" Podaj kwote jaka chcesz wyplacic"<<endl; cin>>c; d=d-c; } if (b==2) { cout<<" wybrales opcje Wplata"<<endl; cout<<" Podaj kwote jaka chcesz wyplacic"<<endl; cin>>e; d=d+e; } if (b==3) { cout<<" wybrales opcje 'Stan Konta'"<<endl; cout<<d; } if (b==4) { cout<<" wybrales opcje 'Wyjdz'"<<endl; } } int main () { int wybor; Bankomat bank; bank.wpisz(); bank.nazwisko(); bank.pin(); cout<<"Chcesz wrocic do menu czy wyjsc? \n (1) - Powrot \n (2) - Wyjscie"<<endl; cin>>wybor; if (wybor==1) { cout <<"Witamy Panie: Kowalski. Aktualny stan konta to: \nCo planujesz zrobic? \n (1) - Wyplata \n (2) - Wplata \n (3) - Stan konta \n (4) - Wyjdz"<<endl; } if (wybor==2) { system ("pause"); return 1; } } Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Drainer Opublikowano 13 Grudnia 2009 Zgłoś Opublikowano 13 Grudnia 2009 pcmax napisał(a): Nom rzeczywiście, dziękuję. Kurcze ale coś ten programik nie działa :( Chyba będzie trzeba rozwinąć ten programik: Tylko tak, aby działała wpłata i wyplata. Ktoś ma pomysł? przeciez dziala? zapewne chodzi ci o obsluge menu, o petlach slyszal? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Hubis Opublikowano 13 Grudnia 2009 Zgłoś Opublikowano 13 Grudnia 2009 (edytowane) Jestem na podobnym poziomie nauczania. Mam parę pytań: 1. Dlaczego metoda(?) wpisz jest zadeklarowane wewnątrz klasy, a pozostałe poza nią. Tak dla sprawdzenia obu sposobów deklaracji? 2. Dlaczego pola klasy są prywatne? 3. Bankomat nazw to poprzednia wersja metody nazwisko? 4. wybor=1, jego efekt nie jest widoczny bo brakuje na koncu system (\"pause\");. cin>>wybor;if (wybor==1){cout <<\"Witamy Panie: Kowalski. Aktualny stan konta to: \\nCo planujesz zrobic? \\n (1) - Wyplata \\n (2) - Wplata \\n (3) - Stan konta \\n (4) - Wyjdz\"<<endl;}if (wybor==2){system (\"pause\");return 1;}system (\"pause\");} 5. Na pętle dobrym rozwiązaniem będzie do{całość} while(wybor!=2); ? edit: zrobiłem main tak: int main (){ int wybor=0;Bankomat bank;do{ bank.wpisz();bank.nazwisko();bank.pin();cout<<\"Chcesz wrocic do menu czy wyjsc? \\n (1) - Powrot \\n (2) - Wyjscie\"<<endl;cin>>wybor;}while(wybor!=2);system (\"pause\");} edit2: zrobiłem pętle na całość #include <iostream>#include <stdlib.h>#include <math.h>using namespace std;class Bankomat // definicja klasy Zesolone{public:float d;void wpisz (){cout <<"Witamy w bankomacie firmy 'SS'. Proszę podać 4 cyfrowy kod PIN."<< endl;cout << "Podaj a: ";cin >> a;system("cls");}float pin ();void nazwisko ();void nazw ();private:float a, b, c, e; // pola klasy};void Bankomat::nazwisko(){if (a==1234)cout <<"Witamy Panie: Kowalski. Aktualny stan konta to: "<<d<<"PLN \nCo planujesz zrobic? \n (1) - Wyplata \n (2) - Wplata \n (3) - Stan konta \n (4) - Wyjdz"<<endl;}void Bankomat::nazw(){if (a==1234)cout <<"Witamy Panie: Kowalski. Aktualny stan konta to: 1000PLN \nCo planujesz zrobic? \n (1) - Wyplata \n (2) - Wplata \n (3) - Stan konta \n (4) - Wyjdz"<<endl;d=1000;}float Bankomat::pin(){cin>>b;if (b==1){cout<<" Wybrales opcje Wyplata"<<endl;cout<<" Podaj kwote jaka chcesz wyplacic"<<endl;cin>>c;d=d-c;}if (b==2){cout<<" wybrales opcje Wplata"<<endl;cout<<" Podaj kwote jaka chcesz wyplacic"<<endl;cin>>e;d=d+e;}if (b==3){cout<<" wybrales opcje 'Stan Konta'"<<endl;cout<<"Stan konta= "<<d<<endl;}if (b==4){cout<<" wybrales opcje 'Wyjdz'"<<endl;}}int main (){ int wybor=0;Bankomat bank;bank.d=0;bank.wpisz();do{ bank.nazwisko();bank.pin();cout<<"Chcesz wrocic do menu czy wyjsc? \n (1) - Powrot \n (2) - Wyjscie"<<endl;cin>>wybor;}while(wybor!=2);system ("pause");} Przepraszam, że tak wkleiłem się w kod. Już więcej nie ruszam. Edytowane 13 Grudnia 2009 przez Hubis Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...