• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

nie wiem czemu nie dziala c++ konsola

Object Storage Arubacloud
0 głosów
492 wizyt
pytanie zadane 8 września 2015 w C i C++ przez veryhotshark Obywatel (1,620 p.)
edycja 8 września 2015 przez veryhotshark

witam mianowicie wszytko dziala jest to symulator banku tylko ,że kiedy się loguje to mam 3-krotną próbę do zalogowania się działa to jak wszytko pisze zle a kiedy pisze login i haslo dobrze a PIN źle to mi sie crashuje program a powinien wyswietlic ze "zostaly ci 2 proby sproboj ponownie" i jeszcze czy te wszytkie  biblioteki są potrzebne w tym kodzie?

 


#include <iostream>
#include <windows.h>
#include <time.h>
#include <stdio.h>

using namespace std;

string PIN, login, haslo;
int liczba_prob=3,proby=4, saldo=1000,kasa,x;
int main()

{

    cout << "Witam w banku Zachodnim WBK."<<endl;
    cout << "Prosze wprowadzic login: ";
    cin >> login;

    cout <<"Prosze wprowadzic haslo: ";
    cin >> haslo;

    cout << "Prosze wprowadzic PIN: ";
    cin >> PIN;

        if ((PIN=="2222") && (haslo=="nguyen") && (login=="tony"))
    {
        cout<<"Poprawne dane"<<endl;
        cout<<"Saldo konta wynosi: "<<saldo<<endl;
        cout<<"ile pieniedzy chcesz wyplacic?:";
        cin>>kasa;
        if(kasa<=1000)
        {
            x=saldo-kasa;

        cout<<"na twoim koncie zostalo "<<x<<"zl";
        }
        else if(kasa>1000)
            {
                while(kasa>1000)
                {
                    proby--;
                        cout<<"nie masz tyle pieniedzy na koncie\nSproboj ponownie\nZostalo ci "<<proby<<" proby:";
                        cin>>kasa;
                        if(kasa<=1000)
                            {
                                x=saldo-kasa;
                                cout<<"na twoim koncie zostalo "<<x<<"zl";
                            }
                            else if(kasa>1000)
                            {
                                proby--;
                                cout<<"nie masz tyle pieniedzy na koncie\nSproboj ponownie\nZostalo ci "<<proby<<" proby:";
                                cin>>kasa;
                            }
                              if(proby==1)
                                    {
                                        cout << "Zostalo ci 0 prob\nNiestety skonczyly ci sie proby\nKonto zostalo zablokowane";
                                        getchar();
                                        return 0;
                                    }
                }
            }

    }
    else
    {
        while((PIN!="2222") && (haslo!="nguyen") && (login!="tony"))
        {
            liczba_prob--;
            cout<<"Niepoprawne dane"<<endl;
            cout<<"Pozostalo "<<liczba_prob<<" proby." << endl;
            cout << "Prosze wprowadzic login: ";
            cin >> login;

            cout <<"Prosze wprowadzic haslo: ";
            cin >> haslo;

            cout << "Prosze wprowadzic PIN: ";
            cin >> PIN;
                 if ((PIN=="2222")&&(haslo=="nguyen")&&(login=="tony"))
                {
                    cout<<"Poprawne dane"<<endl;
                    cout<<"Saldo konta wynosi: "<<saldo;
                    cout<<"ile pieniedzy chcesz wyplacic?:";
                    cin>>kasa;

                     if(kasa<=1000)
                {
            x=saldo-kasa;

        cout<<"na twoim koncie zostalo "<<x<<"zl";
        }
        else if(kasa>1000)
            {
                while(kasa>1000)
                {
                    proby--;
                        cout<<"nie masz tyle pieniedzy na koncie\nSproboj ponownie\nZostalo ci "<<proby<<" proby:";
                        cin>>kasa;
                        if(kasa<=1000)
                            {
                                x=saldo-kasa;
                                cout<<"na twoim koncie zostalo "<<x<<"zl";
                            }
                            else if(kasa>1000)
                            {
                                cout<<"nie masz tyle pieniedzy na koncie\nSproboj ponownie\nZostalo ci "<<proby<<" proby:";
                                cin>>kasa;
                            }
                                if(proby==1)
                                    {
                                        proby--;
                                        cout << "Zostalo ci 0 prob\nNiestety skonczyly ci sie proby\nKarta zostala zablokowana";
                                        getchar();
                                        return 0;
                                    }
                }
            }
                }

            if(liczba_prob==1)
            {
                cout << "Zostalo ci 0 prob\nNiestety skonczyly ci sie proby\nKarta zostala zablokowana";
                getchar();
                return 0;
            }
        }
    }

    return 0;
}

Ktoś tu nie czyta faq :) https://forum.pasja-informatyki.pl/faq Punkt nr 1 czyli gdzie umieszczamy kod.

3 odpowiedzi

+1 głos
odpowiedź 8 września 2015 przez NoName Mądrala (5,640 p.)
1. Wklej kod w odpowiednim formatowaniu, bo to jest nieczytelne
2. Pobieranie danych zrób od razu w jednym while, po co ten if na początku?
Wkleisz kod odpowiednio, to na pewno znajedziemy błąd ;)
komentarz 8 września 2015 przez veryhotshark Obywatel (1,620 p.)
juz poprawiłem miejsce tekstu

ale ze while ma byc przed tym if na poczatku? jaki argument byly w srodku?

while(login!=tony ; haslo!=nguyen ; PIN !=2222) taki argument?
komentarz 8 września 2015 przez NoName Mądrala (5,640 p.)

Można to prosto zrobić za pomocą pętli do while;

na szybko:

do{

pobieranie danych;

licznik prób--;

}

while(warunek)

tutaj już jesteś zalogowany poprawnie wiec tutaj cała reszta obsługi konta

 

+1 głos
odpowiedź 8 września 2015 przez NoName Mądrala (5,640 p.)
        PIN = "";
		haslo = "";
		login = "";
		
		while ((PIN != "2222") && (haslo != "nguyen") && (login != "tony"))
		{

Zrób coś takiego przed whilem i będzie działało. Jest to rozwiązanie na szybko.
Proponuje pomyśleć jak ulepszyć ten kod, czy na pewno kopiowanie tego samego kilkakrotnie jest dobrym pomysłem?
Jak pisałem wyżej, zamiast tego ifa, wystarczy jeden dobry while ;)

 

EDIT: Kod ogólnie lekka masakra, bo jeszcze wśrodku while sprawdzającego poprawność danych masz następnego ifa, który robi to samo... można to rozwiązać zdecydowanie lepiej ;) na pewno sam jesteś w stanie poprawić ten kod, powodzenia ;)

komentarz 8 września 2015 przez veryhotshark Obywatel (1,620 p.)
dziekuje za wytykanie błędów dopiero zaczynam z programowaniem przygode i takie rady są mi potrzebne dziękuje :D i czemu jest ze PIN rowna się " " co to daje?
komentarz 8 września 2015 przez NoName Mądrala (5,640 p.)
bo coś już do pinu wpisałeś tak, samo do loginu i hasła i żeby to skasować ustawiasz na puste, ale to nie jest zbyt dobre... po prostu szybki pomysł, przebuduj cały ten kod, a nie będziesz musiał kombinować :)
0 głosów
odpowiedź 8 września 2015 przez Sedi Stary wyjadacz (10,200 p.)
Dzięki za zapytanie, domyślam się, że pewnie wpisujesz zamiast cyfr do tego PINU, litery i wtedy komputer musi wywalać błędy. PS. Na przyszłość użyj czegoś w stylu wklej.org, tam lepiej się przegląda kod :)

Pozdrawiam
komentarz 8 września 2015 przez NoName Mądrala (5,640 p.)
PIN ma jako stringa, więc może wpisywać litery ;)
komentarz 8 września 2015 przez Sedi Stary wyjadacz (10,200 p.)
Rzeczywiście :) Przepraszam za możliwe wprowadzenie w błąd i dziękuje za poprawkę :)

 

Pozdrawiam
komentarz 8 września 2015 przez veryhotshark Obywatel (1,620 p.)
nie znam wklej org ale sprawdze

czy probowal pan kod ? wklei go pan i wyproboje i mnie pan zrozumie:D

Podobne pytania

0 głosów
1 odpowiedź 219 wizyt
pytanie zadane 30 czerwca 2015 w C i C++ przez Pixel040 Gaduła (3,100 p.)
+1 głos
3 odpowiedzi 518 wizyt
pytanie zadane 11 czerwca 2015 w C i C++ przez Shiro Stary wyjadacz (10,300 p.)
0 głosów
2 odpowiedzi 1,074 wizyt
pytanie zadane 14 listopada 2019 w C i C++ przez MaczugaPierd Nowicjusz (140 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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!

...