• 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
144 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,690 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,690 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,690 p.)

Spoko yes

Podobne pytania

0 głosów
0 odpowiedzi 152 wizyt
+1 głos
2 odpowiedzi 173 wizyt
pytanie zadane 16 października 2018 w C i C++ przez Drax Użytkownik (630 p.)
0 głosów
2 odpowiedzi 232 wizyt
pytanie zadane 17 grudnia 2015 w C i C++ przez varazand Początkujący (320 p.)
Porady nie od parady
Publikując kody źródłowe korzystaj ze specjalnego bloczku koloryzującego składnię (przycisk z napisem code w edytorze). Nie zapomnij o ustawieniu odpowiedniego języka z rozwijanego menu oraz czytelnym formatowaniu kodu.Przycisk code

62,481 zapytań

108,647 odpowiedzi

226,823 komentarzy

36,500 pasjonatów

Przeglądających: 145
Pasjonatów: 15 Gości: 130

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.

...