• 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

VPS Starter Arubacloud
0 głosów
774 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,890 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,890 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,890 p.)

Spoko yes

Podobne pytania

0 głosów
0 odpowiedzi 1,141 wizyt
+1 głos
2 odpowiedzi 825 wizyt
pytanie zadane 16 października 2018 w C i C++ przez Drax Użytkownik (630 p.)
0 głosów
2 odpowiedzi 659 wizyt
pytanie zadane 17 grudnia 2015 w C i C++ przez varazand Początkujący (320 p.)

92,454 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...