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

question-closed Bankomat Kod- Błąd

0 głosów
109 wizyt
pytanie zadane 4 listopada 2018 w C i C++ przez Szarp Początkujący (270 p.)
zamknięte 5 listopada 2018 przez Szarp
#include <iostream>
#include <windows.h>
#include <time.h>
#include <stdio.h>
#include <cstdio>
#include <cstdlib>
#include <conio.h>
#include <sstream>
#include <fstream>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>


using namespace std;

string PIN;
int liczba_prob=3, saldo, i,x ;
int main()

{
    fstream plik;
     plik.open("dane.txt", ios::out|ios::app);
     plik.open("dane.txt", ios::in);


     HANDLE hOut;
   hOut = GetStdHandle( STD_OUTPUT_HANDLE );

        SetConsoleTextAttribute( hOut, FOREGROUND_BLUE );

    cout << "Witam w banku";
        SetConsoleTextAttribute( hOut, FOREGROUND_RED );
    cout<<" AmberGold SA."<<endl;
        SetConsoleTextAttribute( hOut, FOREGROUND_BLUE );
    cout << "Prosze wprowadzic PIN: ";
        SetConsoleTextAttribute( hOut, FOREGROUND_GREEN );
    cin >> PIN;
system("cls");

        if ((PIN!="1111"))
    {


     for(PIN=="1111";){
            if(liczba_prob==0){
                cout<<"Karta zostala zablokowana. Zyce milego dnia ;-)"<<endl;
            }

            else{
                SetConsoleTextAttribute( hOut, FOREGROUND_RED );

            liczba_prob--;
             cout<<"Niepoprawne dane"<<endl;
             cout<<"Pozostalo "<<liczba_prob<<" proby.";

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


            }







                }


        else if(PIN=="1111")

            while((PIN=="1111"))
        {

                    SetConsoleTextAttribute( hOut, FOREGROUND_INTENSITY );
                    cout<<"[";
                for(int ladowanie=0; ladowanie<=20; ladowanie++){
                    cout<<"|";
                    Sleep(100);

                }
                cout<<"]"<<endl;
                system("PAUSE");
                system("cls");

                    SetConsoleTextAttribute( hOut, FOREGROUND_GREEN );

             cout<<"Poprawne dane"<<endl;


             for(int i;i=5;) {
                            cout <<endl;
            cout<<"  MENUE GLOWNE" <<endl;
                   SetConsoleTextAttribute( hOut, FOREGROUND_INTENSITY );
            cout<<" ---------------- "<<endl;
            cout<<left<<"|";
                    SetConsoleTextAttribute( hOut, FOREGROUND_RED );
            cout<<"  AmderGold SA.";
                     SetConsoleTextAttribute( hOut, FOREGROUND_INTENSITY );
            cout<<" |"<<endl;

            cout<<" ---------------- "<<endl;
                    SetConsoleTextAttribute( hOut, FOREGROUND_GREEN );
            cout<<" 1. Stan kata" <<endl;
            cout<<" 2. Wplac pieniadze" <<endl;
            cout<<" 3. Wyplac pieniodze" <<endl;
            cout<<" 4. Zmiana PIN'u " <<endl;
            cout<<" 5. KONIEC" <<endl;

            cout<<endl;
            i=getch();

            switch(i)
            {
                case '1':
                        cout<<"Masz aktualnie  "<< saldo-x <<" ziko"<<endl;

               system("PAUSE");
               system("cls");
               break;
                 case '2':
                        cout<<"Ile chcesz wplacic"<<endl;
                        cin>>saldo;
                        system("cls");
                break;
                 case '3':
                        cout<<"Ile chcesz wyplacic"<<endl;
                        cin>>x;
                        system("cls");
                break;
                 case '4':
                        cout<<"Podaj stary PIN: ";
                        cin>>PIN;
                        cout<<"Podaj nowy PIN: ";
                        system("cls");
                break;
                    case '5':
                        exit(0);

                break;




                system("cls");
                }

            }
            system("cls");
            return 0;
        }

}

Cześć mam problem z dwiema rzeczami

1. Pętla for() mi nie działa.

2. Jeśli podam najpierw niepoprawny a później poprawny PIN program się wyłącza.

PS Jeśli dam while() lub do..while() program zachowuje się jak tak ja w punkcie 2

komentarz zamknięcia: Problem został rozwiązany

1 odpowiedź

+1 głos
odpowiedź 5 listopada 2018 przez bilaw Bywalec (2,080 p.)
wybrane 6 listopada 2018 przez Szarp
 
Najlepsza

Cześć, nie przejrzałem dokładnie twojego kodu, ale odpowiem na pierwsze pytanie.
Pętla for nie ma prawa Ci zadziałać, bo nie zachowałeś odpowiedniej składni do tej instrukcji.
 

for(start; warunek; działanie) 
{
  // instrukcje do wykonania
}

start to polecenie, które zostanie wykonane przed rozpoczęciem działania pętli;
warunek to poprostu warunek sprawdzany przed każdym obiegiem. Jeżeli jego wartość jest równa 0 - pętla zostaje przerwana;
działanie (iterator) to polecenie wykonywane po każdym obiegu pętli;

popraw pętle
linia 45 for(PIN=="1111";) brak startu i działania
linia 93 for(int i;i=5;) brak działania 

Jeżeli uczysz się z kursu p. Zelenta to powtórz sobie odcinek o pętlach

Źródło

komentarz 5 listopada 2018 przez Szarp Początkujący (270 p.)
Wielkie dzięki lecz Nie działa nie tylko petla z 45 linijki .
komentarz 5 listopada 2018 przez bilaw Bywalec (2,080 p.)

Nie mam żadnego IDE w robocie więc nie dam rady ogarnąć tego poza wizualną obserwacją kodu. Od linii 41 do 70 w instrukcji wyboru IF zdaje mi się że masz jedną klamrę zamykającą za mało ;) tylko teraz nie ogarniam jak to rozgryźć 

if ((PIN!="1111"))
        {
            for(PIN=="1111";)
                {
                    if(liczba_prob==0)
                        {
                            cout<<"Karta zostala zablokowana. Zyce milego dnia ;-)"<<endl;
                        }
 
                    else
                        {
                            SetConsoleTextAttribute( hOut, FOREGROUND_RED );
                            liczba_prob--;
                            cout<<"Niepoprawne dane"<<endl;
                            cout<<"Pozostalo "<<liczba_prob<< " proby.";
         
                            cout << " Prosze wprowadzic PIN: ";
                            cin >> PIN;
                        }
        }

Pisz proszę czytelniejszy kod, bo odstraszasz chętnych do pomocy. Sam jestem początkujący, ale się staram ;)

1
komentarz 5 listopada 2018 przez Szarp Początkujący (270 p.)

Dzięki wielkie za pomocwink 

komentarz 6 listopada 2018 przez bilaw Bywalec (2,080 p.)

Spoko yes

Podobne pytania

0 głosów
0 odpowiedzi 137 wizyt
+1 głos
2 odpowiedzi 153 wizyt
pytanie zadane 16 października 2018 w C i C++ przez Drax Początkujący (420 p.)
0 głosów
2 odpowiedzi 220 wizyt
pytanie zadane 17 grudnia 2015 w C i C++ przez varazand Początkujący (320 p.)
Porady nie od parady
Komentarze do pytań nie służą do odpowiadania, od tego jest wydzielona sekcja odpowiedzi. Funkcją komentarzy jest natomiast możliwość uzyskania dodatkowych informacji na temat samego posta.Komentarze

59,248 zapytań

104,670 odpowiedzi

216,616 komentarzy

31,668 pasjonatów

Przeglądających: 254
Pasjonatów: 19 Gości: 235

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...